当前位置: 首页 > news >正文

单片机BootLoader是咋回事?

BootLoader的定义:

        CPU进入APP之前运行的一小段程序代码就叫做BootLoader。它是由程序员编写的,作用是更新应用程序。这也就说明了只有BootLoader的单片机才可以升级。有的产品有升级的需要就需要BootLoader了。

单片机的启动过程可以这么叙述:start→stack→data→Vactor→main;

单片机一上电,PC指针指向0x00000000地址所在的一块内存,加载一个需要跳转的地址,这个地址可以是应用程序的地址,也可以是BootLoader的地址,是哪个地址根据开发阶段的不同有所不同。

一般来说一个完整的操作流程是,从初始地址开始跳转到boot里去检测需不需要升级,需要的话就会停在boot里,不需要的话就跳转到应用程序里。

看一下下图,右边两个hex文件分别是烧录到左图中的两个区域的,也就是单片机里,实际工程项目中这两个hex文件是在一起的,这里为了区分划分成了两个hex文件。

说明一下应用程序的首地址是这个应用程序的一个启动函数,启动函数是一个工程启动文件,相信学32单片机的时候都接触过有一个叫做启动文件的东西,有堆栈的建立,静态数据的存储,向量表的建立,这些基础工作做完,才会跳转到这个main函数,执行的才是用户自己的代码。

 补充:如果需要升级的话,上面说到会停在boot里,然后根据诊断仪的引导,完成app黄色区域的擦除和写入,当app程序下载完成后,软件自动复位,此时程序就更新完成了,不再有升级需求,boot就会直接跳转到应用程序。

http://www.lryc.cn/news/247276.html

相关文章:

  • python与机器学习1,机器学习的一些基础知识(完善ing)
  • 移动应用开发介绍及iOS方向学习路线(HUT移动组版)
  • vue+uniapp校园寻物失物招领平台 微信小程序1f6z5
  • Linux内核--内存管理(三)物理内存分页机制--kmalloc及slub机制
  • Shell - cron_protect.sh 监控 Python、Streaming 程序
  • MSB3541 Files 的值“<<<<<<< HEAD”无效。路径中具有非法字符。
  • 【赠书第9期】巧用ChatGPT高效搞定Excel数据分析
  • 会声会影2024旗舰版系统配置要求及格式支持
  • 【部署运维】docker:入门到进阶
  • 鸿蒙开发学习——应用程序框架
  • Linux dd命令详解:如何从标准输入或文件中读取、转换并输出数据(附实例教程和注意事项)
  • Python——常见内置模块
  • JAVA毕业设计112—基于Java+Springboot+Vue的宠物领养社区小程序(源码+数据库)
  • golang log模块使用
  • 软件开发中的抓大放小vs极致细节思维
  • java文件上传以及使用阿里云OSS
  • 相关性分析和作图
  • AlphaFold的原理及解读
  • 【ChatGLM3-6B】Docker下快速部署
  • 两部手机数据传输后备忘录不见了怎么回事
  • 【Unity入门】LayerMask小结
  • mysql按年、季度、月,统计
  • Python的换行和转义:深入理解代码排版与字符串处理
  • dart多线程双向通信的案例----【小学4年级课程】
  • 每日一练:简易计算器
  • Jmeter和Testlink自动化测试框架研究与实施
  • MethodArgumentNotValidException 与 ConstraintViolationException
  • 【数学】旋转矩阵
  • Python与设计模式--中介者模式
  • 后台管理系统开源项目