基本介绍
启动文件由汇编编写,是系统上电复位后第一个执行的程序。
启动文件主要做了以下工作:
1、初始化堆栈指针 SP = _initial_sp
2、初始化程序计数器指针 PC = Reset_Handler
3、设置堆和栈的大小
4、初始化中断向量表
5、配置外部 SRAM 作为数据存储器(可选)
6、配置系统时钟,通过调用 SystemInit 函数(可选)
7、调用 C 库中的 _main 函数初始化用户堆栈,最终调用 main 函数
实践详解
栈空间开辟
栈主要用于存放局部变量,函数形参等,属于编译器自动分配和释放的内存,。如果程序出现了莫名其妙的错误,并进入了 HardFault 的时候,就要考虑是不是栈空间不够大,溢出了。