stm32 启动文件和汇编指令简析

以stm32fxxxx为例

一、启动文件,startup_stm32f40_41xxx.S

1.定义:启动文件由汇编填写,是系统上电复位后第一个执行的程序。

2.特征

(1)初始化堆栈指针SP=_initial_sp

(2)初始化PC指针=Reset_Handler

(3)初始化中断向量表。

(4)配置系统时钟。

(5)调用c库函数_main初始化用户堆栈,从而最终调用main函数去到c的内容。

二、汇编指令

启动文件使用ARM汇编指令汇总

EQU   给数字常量取一个符号名,相当于c语言define。

AREA  汇编一个新的代码段或数据段。

SPACE  分配内存空间。

PRESERVE8 当前文件堆栈需按照8字节对齐。

EXPORT  声明一个标号具有全局性,可被外部文件使用。

DCD 以字为单位分配内存,要求4字节对齐,并要求初始化这些内存。

PROC 定义子程序,与ENDP成对使用,表示子程序结束。

WEAK 弱定义,如果外部文件声明一个标号,则优先使用外部文件定义的标号,如果外部文件没有定义也不会出错。要注意这个不是ARM指令,是编              译器的。

IMPORT  声明标号来自外部文件,跟c语言EXTERN关键字类似。

B  跳转到一个标志号。

posted @ 2021-02-13 09:20  是谁用了我的昵称  阅读(450)  评论(0)    收藏  举报