嵌入式Linux八股完整文章目录
嵌入式Linux八股(一)——语言篇_嵌入式软件八股-CSDN博客
嵌入式Linux八股(二)——Linux_linux嵌入式的八股文有哪些-CSDN博客
嵌入式Linux八股(三)——计算机基础_嵌入式哪个八股比较好-CSDN博客
嵌入式Linux八股(四)——MCU&RTOS-CSDN博客
四、MCU&RTOS(更新中...)
01.MCU裸机
01.STM32启动模式
02.STM32启动流程
STM32启动文件由ST官方提供,在官方的固件包里。启动文件由汇编编写,是系统上电复位后第一个执行的程序。启动文件主要做了以下工作:
- 初始化堆栈指针SP=_initial_sp
- 初始化程序计数器指针PC=Reset_Handler
- 设置堆和栈的大小
- 初始化中断向量表
- 配置外部SRAM作为数据存储器(可选)
- 配置系统时钟,通过调用SystemInit函数(可选)
- 调用C库中的main函数初始化用户堆栈,最终调用main函数
【不是问题的问题】为什么STM32的Flash地址要设置到0x08000000 - STM32H7 - 硬汉嵌入式论坛 - Powered by Discuz! (armbbs.cn)
- M3,M4内核芯片上电复位后,要固定从0x0000 0000地址获取堆栈顶的地址,0x0000 0004获取复位中断服务程序地址。
- 获取复位中断服务程序的入口地址后,进入复位中断服务程序Reset_Handler
- 在复位时初始化系统(通过调用
SystemInit
函数)。 - 跳转到程序的主入口点
__main
,开始执行主程序逻辑。
; Reset handler
Reset_Handler PROCEXPORT Reset_Handler [WEAK]IMPORT __mainIMPORT SystemInitLDR R0, =SystemInitBLX R0 LDR R0, =__mainBX R0ENDP
FreeRTOS系统配置文件
使用INCLUDE_开头的宏用来表示使能或除能FreeRTOS中相应的API函数,作用就是用来配置FreeRTOS中的可选API函数的。
config开始的宏用来完成FreeRTOS的配置和裁剪