最近在研究rt1050程序烧写相关的算法,于是对程序启动相关部分的知识进一步的学习理解,简单的梳理一下这两天查阅资料后对bootloader及启动模式的一些了解;
bootloader:即引导加载程序,就是在运行固件前需要进行执行的代码,它主要是引导程序,及映射一些内存等一些作用。
(引用网上的一段话:在CPU刚上电启动的时候,一般连内存控制器都没有配置过,根本无法在内存中运行程序,更不可能处在Linux内核的启动环境中。为了初始化CPU及其他外设,使得Linux内核可以在系统主存中跑起来,并让系统符合Linux内核启动的必备条件,必须要有一个先于内核运行的程序,他就是所谓的引导加载程序(Boot Loader)。而Boot Loader并不是Linux才需要,是几乎所有的运行操作系统的设备都具备的。https://blog.csdn.net/xinyuwuxian/article/details/8852610)
启动方式:这里以stm32为例,stm32有三种启动模式
1.BOOT1=x BOOT0=0 从用户闪存启动,这是正常的工作模式。