STM32启动文件.s解析

文章目录

  • 基本介绍
    • 实践详解
      • 栈空间开辟
      • 堆空间的开辟
      • 中断向量表定义
      • 复位程序
      • 对于_main 函数的分析
      • 中断服务程序
      • 用户堆栈初始化
      • 系统启动流程


基本介绍

启动文件由汇编编写,是系统上电复位后第一个执行的程序。
启动文件主要做了以下工作:
1、初始化堆栈指针 SP = _initial_sp
2、初始化程序计数器指针 PC = Reset_Handler
3、设置堆和栈的大小
4、初始化中断向量表
5、配置外部 SRAM 作为数据存储器(可选)
6、配置系统时钟,通过调用 SystemInit 函数(可选)
7、调用 C 库中的 _main 函数初始化用户堆栈,最终调用 main 函数
STM32启动文件.s解析_第1张图片

实践详解

栈空间开辟

栈主要用于存放局部变量,函数形参等,属于编译器自动分配和释放的内存,。如果程序出现了莫名其妙的错误,并进入了 HardFault 的时候,就要考虑是不是栈空间不够大,溢出了。

你可能感兴趣的:(嵌入式STM32及操作系统,stm32,单片机)