首页 > 进口 > > 内容页

ARM处理器Bootloader底层流程

发表于: 2023-08-04 07:44:18 来源:面包芯语

Bootloader顾名思义就是引导加载程序,是在操作系统或应用程序运行之前的一段程序,是在系统上电后执行的一段程序代码。


(相关资料图)

Bootloader在手机、电脑、众多嵌入式系统中都存在,它的作用有很多,比如:初始化底层应用驱动、加载应用程序、更新应用程序等。

不同的设备,Bootloader可能差异很大,通常来说Bootloader比较依赖底层硬件和实际项目需求。

bootloader是一段引导加载程序代码,它更新用户的应用程序代码,可以使用很多硬件下载通道(例如USB、网络端口)获得新代码。

1. 确保CPU处于特权模式;

2. 禁用NVIC中所有启用的中断;

3. 禁用所有可能产生中断请求的使能外设,并清除这些外设中的所有未使用中断标志;

4. 清除NVIC中所有未使用的中断请求;

5. 禁用SysTick并清除其异常挂起位;

6. 如果引导加载程序使用了单个故障处理程序,请禁用它们;

7. 如果发现内核当前与PSP一起运行,则激活MSP(由于编译器可能仍在使用堆栈,因此在此之前需要将PSP复制到MSP);

8. 将用户应用程序的向量表地址加载到SCB-> VTOR寄存器中。确保地址符合对齐要求;

9. 最后一部分是将MSP设置为用户应用程序向量表中找到的值,然后将用户应用程序的重置向量值加载到PC中,也就是跳转功能。

再次说明bootloader与底层硬件和实际需求有关,以上代码仅供参考,主要是提供思路,方便大家理解。

如果还不能理解,建议结合bootloader实际项目进行理解,比如之前给大家分享过的:STM32官方IAP例程详细说明

标签:

Copyright ©  2015-2022 今日上海网版权所有  备案号:京ICP备2022022245号-14   联系邮箱:435 226 40@qq.com