STM32CubeIDE和MX是现在常用的开发STM32单片机程序的开发环境,其中官方提供的HAL库,提供了分层和抽象的思想,更是极大方便了程序的编写,给初学者做出了很好的示范。这里介绍基于HAL库的bootloader编写。
1. 编写简单的Bootloader
STM32提供了官方的通用的bootloader程序,叫做OpenBootLoader,基于CubeIDE的HAL库来编写的,支持串口等多种接口。
为了简化程序,熟悉boot过程,决定自行编写一个Bootloader以更灵活地控制IAP升级过程。
升级原理: 采用常见的boot在前主APP在后的FLASH存储分布,这种升级方案比较灵活好用,并且可可一定程度上避免升级失败后变砖。
2. 通信接口fdCAN
通信口采用CAN接口,涉及到CAN上位机编写,下位机CAN文件传输及控制信息传输协议编写。这部分在另外文章里介绍。