STM32 keil mdk启动代码发分析
时间:11-10
来源:互联网
点击:
学习STM32,看了一堆乱七八糟的文档,准备写程序了,先分析了下STM32的启动代码,看着这堆鬼鬼的汇编代码,挺吓人的,看看帮助,查查网路,还是不那么难懂。
- ;//
StackConfiguration - ;//
StackSize(inBytes)<0x0-0xFFFFFFFF:8> - ;//
- Stack_SizeEQU0x00000200;//定义堆栈大小
- AREASTACK,NOINIT,READWRITE,ALIGN=3;//定义一个数据段按8字节对齐
- Stack_MemSPACEStack_Size;//保留Stack_Size大小的堆栈空间
- __initial_sp;//标号,代表堆栈顶部地址,后面有用
- ;//
HeapConfiguration - ;//
HeapSize(inBytes)<0x0-0xFFFFFFFF:8> - ;//
- Heap_SizeEQU0x00000020;//定义堆空间大小
- AREAHEAP,NOINIT,READWRITE,ALIGN=3;//定义一个数据段,8字节对齐
- __heap_base
- Heap_MemSPACEHeap_Size;//保留Heap_Size的堆空间
- __heap_limit;//标号,代表堆末尾地址,后面有用
- PRESERVE8;//指示编译器8字节对齐
- THUMB;//指示编译器为THUMB指令
- ;VectorTableMappedtoAddress0atReset
- AREARESET,DATA,READONLY;//定义只读数据段,其实放在CODE区,位于0地址
- EXTERNNMIException
- EXTERNHardFaultException
- EXTERNMemManageException
- EXTERNBusFaultException
- EXTERNUsageFaultException
- EXTERNSVCHandler
- EXTERNDebugMonitor
- EXTERNPendSVC
- EXTERNSysTickHandler;//声明这些符号在外部定义,同C
- ;//在××it.c中实现这些函数,中断就能自动调用了
- EXPORT__Vectors
- __VectorsDCD__initial_sp;TopofStack//Cotex-M要求此处为堆栈顶部地址
- DCDReset_Handler;ResetHandler
- DCDNMIException;NMIHandler
- DCDHardFaultException;HardFaultHandler
- DCDMemManageException;MPUFaultHandler
- DCDBusFaultException;BusFaultHandler
- DCDUsageFaultException;UsageFaultHandler
- DCD0;Reserved
- DCD0;Reserved
- DCD0;Reserved
- DCD0;Reserved
- DCDSVCHandler;SVCallHandler
- DCDDebugMonitor;DebugMonitorHandler
- DCD0;Reserved
- DCDPendSVC;PendSVHandler
- DCDSysTickHandler;SysTickHandler//一大堆的异常处理函数地址
- ;ExternalInterrupts
- EXTERNWWDG_IRQHandler
- EXTERNPVD_IRQHandler
- EXTERNTAMPER_IRQHandler
- EXTERNRTC_IRQHandler
- EXTERNFLASH_IRQHandler
- EXTERNRCC_IRQHandler
- EXTERNEXTI0_IRQHandler
- EXTERNEXTI1_IRQHandler
- EXTERNEXTI2_IRQHandler
- EXTERNEXTI3_IRQHandler
- EXTERNEXTI4_IRQHandler
- EXTERNDMAChannel1_IRQHandler
- EXTERNDMAChannel2_IRQHandler
- EXTERNDMAChannel3_IRQHandler
- EXTERNDMAChannel4_IRQHandler
- EXTERNDMAChannel5_IRQHandler
- EXTERNDMAChannel6_IRQHandler
- EXTERNDMAChannel7_IRQHandler
- EXTERNADC_IRQHandler
- EXTERNUSB_HP_CAN_TX_IRQHandler
- EXTERNUSB_LP_CAN_RX0_IRQHandler
- EXTERNCAN_RX1_IRQHandler
- EXTERNCAN_SCE_IRQHandler
- EXTERNEXTI9_5_IRQHandler
- EXTERNTIM1_BRK_IRQHandler
- EXTERNTIM1_UP_IRQHandler
- EXTERNTIM1_TRG_COM_IRQHandler
- EXTERNTIM1_CC_IRQHandler
- EXTERNTIM2_IRQHandler
- EXTERNTIM3_IRQHandler
- EXTERNTIM4_IRQHandler
- EXTERNI2C1_EV_IRQHandler
- EXTERNI2C1_ER_IRQHandler
- EXTERNI2C2_EV_IRQHandler
- EXTERNI2C2_ER_IRQHandler
- EXTERNSPI1_IRQHandler
- EXTERNSPI2_IRQHandler
- EXTERNUSART1_IRQHandler
- EXTERNUSART2_IRQHandler
- EXTERNUSART3_IRQHandler
- EXTERNEXTI15_10_IRQHandler
- EXTERNRTCAlarm_IRQHandler
- EXTERNUSBWakeUp_IRQHandler;//同上,
- DCDWWDG_IRQHandler;WindowWatchdog
- DCDPVD_IRQHandler;PVDthroughEXTILinedetect
- DCDTAMPER_IRQHandler;Tamper
- DCDRTC_IRQHandler;RTC
- DCDFLASH_IRQHandler;Flash
- DCDRCC_IRQHandler;RCC
- DCDEXTI0_IRQHandler;EXTILine0
- DCDEXTI1_IRQHandler;EXTILine1
- DCDEXTI2_IRQHandler;EXTILine2
- DCDEXTI3_IRQHandler;EXTILine3
- DCDEXTI4_IRQHandler;EXTILine4
- DCDDMAChannel1_IRQHandler;DMAChannel1
- DCDDMAChannel2_IRQHandler;DMAChannel2
- DCDDMAChannel3_IRQHandler;DMAChannel3
- DCDDMAChannel4_IRQHandler;DMAChannel4
- DCDDMAChannel5_IRQHandler;DMAChannel5
- DCDDMAChannel6_IRQHandler;DMAChannel6
- DCDDMAChannel7_IRQHandler;DMAChannel7
- DCDADC_IRQHandler;ADC
- DCDUSB_HP_CAN_TX_IRQHandler;USBHighPriorityorCANTX
- DCDUSB_LP_CAN_RX0_IRQHandler;USBLowPriorityorCANRX0
- DCDCAN_RX1_IRQHandler;CANRX1
- DCDCAN_SCE_IRQHandler;CANSCE
- DCDEXTI9_5_IRQHandler;EXTILine9..5
- DCDTIM1_BRK_IRQHandler;TIM1Break
- DCDTIM1_UP_IRQHandler;TIM1Update
- DCDTIM1_TRG_COM_IRQHandler;TIM1TriggerandCommutation
- DCDTIM1_CC_IRQHandler;TIM1CaptureCompare
- DCDTIM2_IRQHandler;TIM2
- DC
STM32keilmdk启动代 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)