本文以STM32F407为例,介绍STM32的启动文件。如有解释不正确的地方,还请大家留言评论。
由于启动文件中涉及到一些汇编的知识,所以在讲解的过程中会补充一些汇编的知识。
一般而言,系统上电后第一个执行的是由汇编所编写的启动文件,其主要工作为以下三部分:
(1)初始化堆栈指针SP
(2)初始化中断向量表
(3)初始化PC指针,令其=Reset_Handler配置系统时钟
调用C库函数_main初始化用户堆栈,从而最终调用main函数进入C的世界
一.初始化堆栈指针

上图就是初始化堆栈指针的代码,最上面的那段英文的大体意思就是说你可以根据你应用的需要来配置相应大小的堆栈空间。
(1)初始化栈指针(SP)

这段代码的意思就是将栈大小设为0x0000 0400(1KB),栈名为STACK,不初始化,可读可写,8(2^3)字节对齐。最后的__initial_sp表示栈的结束地址,即栈顶地址,因为栈是由高地址向低地址生长。栈的主要作用是用于局部变量、函数调用以及

最低0.47元/天 解锁文章

2143

被折叠的 条评论
为什么被折叠?



