文档详情

《STM32启动代码分析正》.doc

发布:2016-09-12约1.06万字共7页下载文档
文本预览下载声明
STM32启动代码分析[转] ?? 启动代码文件名是STM32F10X.S,它的作用先总结下,然后再分析。启动代码作用一般是:1)堆和栈的初始化;2)向量表定义;3)地址重映射及中断向量表的转移;4)设置系统时钟频率;5)中断寄存器的初始化;6)进入C应用程序。 ?? (1)按启动代码的次序,先看堆和栈的初始化: Stack_Size????? EQU???? 0????? ;定义Stack_Size为0??????????????? AREA??? STACK, NOINIT, READWRITE, ALIGN=3?? ;定义栈,可初始为0,8字节对齐 Stack_Mem?????? SPACE?? Stack_Size?????? ;分配0x200个连续字节,并初始化为0 __initial_sp?? ;汇编代码地址标号 ? Heap_Size?????? EQU???? 0??????????????? AREA??? HEAP, NOINIT, READWRITE, ALIGN=3 __heap_base Heap_Mem??????? SPACE?? Heap_Size __heap_limit ??????????????? PRESERVE8?;指定当前文件堆栈8字节对齐 ??????????????? THUMB???? ;告诉汇编器下面是32为的Thumb指令,如果需要汇编器将插入位以保证对齐 ??(2)中断向量表定义 AREA??? RESET, DATA, READONLY ;定义复位向量段,只读 ??????????????? EXPORT? __Vectors?? ;定义一个可以在其他文件中使用的全局标号。此处表示中断地址 __Vectors?????? DCD???? __initial_sp????????????? ;?给__initial_sp分配4字节32位的地址0x0 ??????????????? DCD???? Reset_Handler???????????? ; 给标号Reset Handler分配地址为0??????????????? DCD???? NMI_Handler?????????????? ; 给标号NMI Handler分配地址0??????????????? DCD???? HardFault_Handler???????? ; Hard Fault Handler ??????????????? DCD???? MemManage_Handler???????? ; MPU Fault Handler ??????????????? DCD???? BusFault_Handler????????? ; Bus Fault Handler ??????????????? DCD???? UsageFault_Handler??????? ; Usage Fault Handler ??????????????? DCD???? 0???????????????????????? ;?这种形式就是保留地址,不给任何标号分配 ??????????????? DCD???? 0???????????????????????? ; Reserved ??????????????? DCD???? 0???????????????????????? ; Reserved ??????????????? DCD???? 0???????????????????????? ; Reserved ??????????????? DCD???? SVC_Handler?????????????? ; SVCall Handler ??????????????? DCD???? DebugMon_Handler????????? ; Debug Monitor Handler ??????????????? DCD???? 0???????????????????????? ; Reserved ??????????????? DCD???? PendSV_Handler??????????? ; PendSV Handler ??????????????? DCD???? SysTick_Handler?????????? ; SysTick Handler ??????????????? ; External Interrupts ??????????????? DCD???? WWDG_IRQHandler?????????? ; Window Watchdog ?????
显示全部
相似文档