当前位置:文档之家› 带你一步步了解STM32启动代码

带你一步步了解STM32启动代码

带你一步步了解STM32启动代码
对于熟悉电脑的伙伴们来说,BIOS(那个蓝色的界面)可能不会太陌生吧,这货就是电脑的启动代码。

没有BIOS的电脑,那注定是一块板砖!BIOS主要是做一些开机前的准备工作,例如系统时间设定、启动顺序。

扯远了
其实电脑本身就是从单片机而来,那么单片机也是有启动代码的,只是我们绝大部分情况不去关心它。

启动代码究竟都干了些什么工作,为何需要它?想想你在c语言中用到了什么东西,而这些东西却是拿来就可以用的?堆、栈!没错,就是他们。

我们知道堆和栈是内存中划分出的一块区域,那为什么我们没有亲自划分呢,因为启动代码帮了你的忙!!!再想想单片机工作的时候,有哪些配置被我们忽略了,而它却可以用?时钟,就是这货,我们可以不配置时钟,而你发现它竟然有默认值!还是启动代码帮了你
接下来仔细研究一下stm32的启动代码,首先要知道启动代码藏在哪里:一个叫做startup 的汇编文件。

启动代码是对硬件的一个最初级的配置,它必须用汇编语言来实现,汇编是真正的硬件编程语言。

从上到下解读启动代码
1、定义栈大小
2、定义堆大小
3、中断向量地址
ps:Cortex-M4内核要求内存的第一个地址是栈指针,第二个地址开始为中断向量。

而中断向量的第一个必须是复位,因为代码是从上到下执行,开机首先遇到的就是复位
4、复位中断处理函数
ps1:仔细那看有两个东西需要注意:“SystemInit”这个是时钟初始,“__main”这一句代。

相关主题