基于stm32f103c8t6芯片的启动文件进行分析。
启动文件在嵌入式芯片开发是必不可少的,其文件后缀是.s,通常需要加入工程参与编译。它的的用包括一下几点:
- 开辟栈、堆的空间。
- 初始化中断向量表。
- 调用外部SystemInit函数,初始化时钟。
- 调用C库函数__main初始化用户栈,调用main函数转到C世界。
启动文件使用汇编语言编写,如果熟悉汇编语言,那么很容易理解它;如果不熟悉汇编语言,针对启动文件里用到的汇编指令,下面会一一介绍。
1.启动文件使用到的汇编指令
指令名称 |
作用 |
EQU |
给数据常量起一个符号名,相当于C语言的#define |
AREA |
汇编一个新的代码段或者数据段 |
SPACE |
分配内存空间 |
PRESERVE8 |
告诉编译器,指定当前文件的堆按照8字节对齐 |
THUMB |
表示后面指令兼容THUMB指令。 |
EXPORT |
声明一个标号具有外部属性,可在外部文件使用 |
DCD |
以字节为单位,按照4字节对齐,并要求初始化这些内存 |
PROC |
定义子程序,与ENDP成对使用,表示子程序结束。 |
WEAK |