Advertisement

stm32系列启动文件解析(KEIL编译环境)

阅读量:

基于stm32f103c8t6芯片的启动文件进行分析。

启动文件对于嵌入式芯片开发具有不可或缺的作用。其文件后缀通常是.s格式,并且通常需要将该工程包含进编译流程。它的应用涉及以下几个方面:

  1. 分配栈和堆的内存空间。
    2. 建立中断向量表的初始配置。
    3. 通过调用SystemInit函数实现时钟初始化。
    4. 通过调用库函数__main来初始化用户栈,并将程序控制流程转至C空间。

启动文件采用汇编语言进行编码,在具备一定了解汇编语言基础的情况下,则能够较为容易地理解其运行机制;而如果未能掌握汇编语言基础,则特别针对那些在启动文件中使用的汇编指令将详细说明其具体工作原理。

1.启动文件使用到的汇编指令

指令名称 作用
EQU 给数据常量起一个符号名,相当于C语言的#define
AREA 汇编一个新的代码段或者数据段
SPACE 分配内存空间
PRESERVE8 告诉编译器,指定当前文件的堆按照8字节对齐
THUMB 表示后面指令兼容THUMB指令。
EXPORT 声明一个标号具有外部属性,可在外部文件使用
DCD 以字节为单位,按照4字节对齐,并要求初始化这些内存
PROC 定义子程序,与ENDP成对使用,表示子程序结束。
WEAK 编译器指令(不同的编译器有差异),弱定义一个

全部评论 (0)

还没有任何评论哟~