单片机固件和程序有什么区别源码程序

有关SIM32,是控制器还是处理器,一般把咜当成超级单片机用吗?固件库可不可以理解为虚拟BIOS层?

  • 1、BootLoader就是单片机启动时候運行的一段小程序这段程序负责单片机固件和程序有什么区别的更新,也就是单片机选择性的自己给自己下程序可以更新,也可以不哽新更新的话,BootLoader更新完程序后跳转到新程序运行;不更新的话,BootLoader直接跳转到原来的程序去运行
  • 2、BootLoader更新完程序后并不擦除自己,下次啟动后依然先运行BootLoader程序又可以选择性的更新或者不更新程序,所以BootLoader就是用来管理单片机程序的更新
  • 3、在实际的单片机工程项目中,如果加入了BootLoader功能就可以给单片机日后升级程序留出一个接口,方便日后单片机程序更新当然,这就需要创建两个工程项目一个为BootLoader工程,一个为APP工程
  • 4、BootLoader工程生成的.hex或者.bin文件通常下载到ROM或Flash中的首地址,这样可以保证上电后先运行BootLoader程序而APP工程生成的.hex或者.bin文件则下载到ROM或Flash中BootLoader後面的地址中。也就是说存在ROM/Flash中的内容是分为两部分的。
  • 5、要实现在同一个ROM/Flash中保存两段程序并且保证不能相互覆盖,则需要在下载程序时指定地址如在Keil下,可以进行如下的调整
  • 6、实际上,在STM32系列的单片机中Flash本身就是分扇区的,一个扇区16KB的样子具体可以查看手册。那么就可以用从第一个扇区的首地址开始下载BootLoader的程序而从第二个扇区的起始地址开始下载APP程序。如下为STM32F4系列芯片的Flash模块
  • 7、单片机上電之后开始执行BootLoader程序,这是单片机会检测用户是否有升级应用程序(APP)的请求具体表现有很多种,例如检测内存卡Nand Flash中是否包含升级文件,串口/I2C/SPI等外设接口是否传来升级文件据说还有使用GSM来升级的。
  • 8、所谓的升级就是将ROM/Flash中存储APP程序的扇区内容擦除并写入新文件。例如┅次固件升级的过程可以是:1、单片机上电执行BootLoader2、BootLoader查找升级文件,3、若找到文件擦除Flash中的部分扇区(存APP的),4、在擦除的扇区写入升級的文件5、写入完成,读取数据检验是否出错6、若数据一致,升级成功删除升级文件,7、BootLoader程序跳转到APP程序执行删除升级文件是为叻下次上电后不再进行升级。
  • 9、所谓的跳转可以理解程序指针的改变,变为指向APP程序扇区的起始地址

我要回帖

更多关于 单片机固件和程序有什么区别 的文章

 

随机推荐