STM32CubeMx入门:在线升级OTA教程(1/4)- 基础与分区

55 下载量 191 浏览量 更新于2023-03-03 2 收藏 227KB PDF 举报
本篇文章系列讲述了在STM32CubeMx环境下进行在线升级(OTA)的基础知识,共分四部分:基础知识、BootLoader、App以及测试。首先,作者介绍了BootLoader的概念,它在STM32中扮演着启动应用程序的关键角色,类似于电脑上的引导程序,负责加载并运行用户应用程序。STM32程序通常存储在片内Flash中,开发人员编写的代码最终会被转换为二进制形式存入其中。 文章着重讨论了STM32F103RB-NUCLEO开发板上的Flash分区策略,该板子有128页,每页1KB,被划分为三个区域:BootLoader区用于存放启动代码,App1区存放主应用代码,而App2区则作为备份区,用于存放临时升级代码。当系统启动时,BootLoader会检查App2区是否存在更新,如有则将其复制到App1区,并将控制权交给新的应用。 由于BootLoader和App1的向量表不同,当从BootLoader切换到App1时,需要首先更新向量表以确保程序的正确执行路径。在应用程序中,开发者需要实现程序升级的部分,这部分包括接收新的升级程序并将其存放在App2区,待时机成熟时再替换App1区的代码。 整个过程涉及到的软件工具包括STM32CubeMX(版本5.4.0)和Keil MDK5(版本5.28.0.0),运行环境为Windows 10。通过这个系列教程,读者能够深入了解在线升级的原理、分区管理以及实际编程实现,对于想要开发支持OTA功能的STM32项目来说,这是非常实用的技术指南。