【STM32H7教程】第67章 STM32H7的系统bootloader基础知识

时间:2020-03-04 16:45:36   收藏:0   阅读:113

完整教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980

第67章       STM32H7的系统bootloader基础知识

本章为大家介绍STM32H7内置的系统bootloader的基础知识。

67.1 初学者重要提示

67.2 系统bootloader基础知识

67.3 进入系统bootloader的方法

67.4 退出系统bootloader的方法

67.5 系统bootloader的擦写管理

67.6 总结

 

 

67.1 初学者重要提示

  1.   本章主要为大家介绍系统bootloader的理论知识,下个章节为大家实战。
  2.   更多系统bootloader的基础知识看本帖的AN2606应用笔记:http://www.armbbs.cn/forum.php?mod=viewthread&tid=96573

67.2 系统bootLoader基础知识

STM32的系统存储区自带bootloader,此程序是ST在芯片出厂时烧录进去的,主要用于将用户应用程序下载到芯片内部Flash。支持USB,SPI,I2C,CAN,UART等接口方式下载。如果大家的应用程序打算采用这种接口方式进行升级,可以考虑采用系统bootloader,简单易用,无需用户自己写bootLoader了。

更重要的是,使用系统BootLoader可以不依赖硬件boot引脚,可以直接从应用程序跳转到系统BootLoader,这样灵活性就很大了。

67.2.1 系统bootLoader执行流程

下面是STM32H7的BootLoader程序执行流程,简单了解下即可:

技术分享图片 

关于这个执行流程,要特别注意一点:如果在进入系统BootLoader前就插入了USB线,会导致进入系统BootLoader后优先执行USB DFU,其它的接口方式将没有机会执行。

67.2.2 系统bootLoader使用的引脚

STM32H7的Bootloader使用到的引脚分配如下:

技术分享图片 

67.3 进入系统bootLoader的方法

STM32进入系统BootLoader主要有两种方法,一种是设置boot引脚,另一种是应用程序直接跳转到系统BootLoader。

67.3.1 设置硬件boot引脚进入系统bootLoader

H7的启动方式比较更灵活,只需一个boot引脚。但是一个引脚只能区分出两个状态,为了解决这个问题,H7专门配套了两个option bytes选项字节配置,如此以来就可以方便设置各种存储器地址了。

 技术分享图片

BOOT_ADD0和BOOT_ADD1对应32位地址到高16位,这点要特别注意。通过这两个选项字节,所有0x0000 0000到0x3FFF 0000的存储器地址都可以设置,包括:

设置了选项字节后,掉电不会丢失,下次上电或者复位后,会根据BOOT引脚状态从BOOT_ADD0,或BOOT_ADD1所设置的地址进行启动。也就是说是,H7可以从0x0000 0000到0x3FFF 0000所有地址进行启动,这点与F4完全不同,F4系列是固定从0x0000 0000启动的。

STM32H7的boot引脚设计:

技术分享图片 

使用BOOT功能,注意以下几个问题:

67.3.2 用户应用程序跳转到系统bootLoader

除了使用boot引脚控制运行系统BootLoader,也可以上电后跳转,跳转前注意以下问题:

 

具体实现会在下一章节为大家讲解。

67.4 退出系统bootLoader的方法

当前主要研究了USB DFU和串口IAP退出bootLoader。

当芯片工作在系统bootLoader的USB DFU模式,更新完毕程序后,不会自动退出USB DFU,需要重新复位芯片后才会退出。由于DFU模式会用到USB线,插拔USB线是难以避免的,所以是否支持自动退出,并不影响。

当芯片工作在系统bootLoader的串口升级模式,更新完毕程序后,可以自动退出。所以基于串口的组网设备,使用系统bootloader非常方便。

67.5 系统bootLoader的擦写管理

注:这部分知识点有个了解即可。

技术分享图片 

67.6 总结

本章节就为大家讲解这么多,更新相关的知识看ST的应用笔记AN2606。

 

原文:https://www.cnblogs.com/armfly/p/12410341.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!