程序启动BOOT理解

已经做嵌入式好几年了,现在才发现对芯片内部的事一概不知,真是少壮不努力,老大徒伤悲(郑重声明:我还是花季,正值年少呢),现在开始补这方面的知识,加油。

对于ARM芯片来说,芯片里面都有什么:
1、FLASH:大多数MCU都有,地址为0x00,一般我们下载调试程序的时候,都是将程序下载到了CPU的flash里面,然后上电就可以启动了。属于一级启动,就是直接可以运行。
2、ROM:也是BOOTROM,里面一般会存储bootload引导程序,作用就是让程序从其他地方启动,不从FLASH里面。可以实现两种功能:(一级启动)
1)这样bootload就可以做IAP升级,将外部的程序代码加载到内部FLASH里面,实现系统升级。
2)当我们不想运行FLASH里面的程序,或者这款MCU没有内部FLASH,怎么办?这时bootload可以实现从SRAM或者外部的存储器FLASH,加载程序启动。
3、SRAM:MCU拥有的一片内存,掉电丢失,因此一般在调试Debug时,程序就被下载到这里,bootload引导到这里执行,但是你对板子再次上电时,里面就没有程序来,所以板子启动不了。
不过一般使用外部存储器,会将存储在外部存储的程序先读到SRAM里面再执行。
4、外部存储器:看芯片支持哪种FLASH,将程序代码烧写进去,然后bootload开始引导,可以加载到sram或外部的SDARM中执行,也可以通过xip进行原地执行。
5、当有bootload和flash两种类型启动方式时,就需要boot mode的选择,一般是硬件的boot引脚决定。


这是自己的理解,刚刚开始,应该有些理解有误,大神们看见的话,再给我指点指点,普及普及,感恩。

  • 8
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值