了解基于ARM Cortex Mx的STM32Fx微控制器的Bootloader开发基础知识
- 为STM32Fx微控制器编写自己的自定义引导程序并测试
- 主机引导程序通信实现
- 自定义引导程序命令包
- STM32微控制器的不同引导模式
- 引导程序闪存处理实现:扇区擦除/程序/质量擦除
- 引导程序选项字节(OB )程序处理实现
- 启动加载Flash扇区保护状态处理实现
- 引导装载应用程序编程实现(IAP)
- ARM的矢量表皮层搬迁处理器的Mx
本课程旨在学习为ARM CORTEX Mx驱动的STM32Fx微控制器开发自定义的BootLoader。在本课程中,我将逐步指导您开发自己的BootLoader,我们将探索与BootLoader编程相关的许多内容。
我们将在本课程中开发的BootLoader具有以下功能
1)可以进行应用程序内编程(IAP)。您可以使用BootLoader刷新给定的应用程序二进制文件
2)读取微控制器特定的数据
3)闪存相关的配置,例如为不同的扇区设置读写保护
4)闪存扇区擦除
5)大规模擦除用户闪存
6)读取和显示闪存的保护状态
7)跳转到指定地址以执行代码
以及自定义BootLoader开发,您还将了解
1)微控制器的不同内存组织
2)内存别名和STM32的不同启动模式
3)如何上电后,MCU会启动
4)Arm cortex mx处理器的向量表映射和向量表重定位用例。
5)系统内编程(ISP)与应用程序编程(IAP)之间的区别
6)自定义引导加载程序设计流程图
7)主机和引导加载程序通信方法
8)不同引导加载程序命令的实现
您还可以通过以下方式扩展此BootLoader:完成课程后,将具有以下功能:
1)使用AES加密和解密主机发送的固件
2)通过连接WIFI或Zigbee模块进行空中编程
本课程中使用的硬件
在本课程中,将使用STM32F446RE Nucleo板。如果您有任何其他基于STM32微控制器的开发板,那么您也可以使用在此过程中开发的代码,而无需进行任何改动。
使用的软件:
1)Windows版KEIL-MDK-5
2)用于(WINDOWS / LINUX / MAC OS)的OpenSTM32 SystemWorkbench
总目录(7h31m)
- 介绍
- MCU内存,复位序列和启动配置
- 我们课程中使用的开发板
- 用于基于ARM Cortex M的MCU的KEIL-MDK-5 IDE设置
- 安装OpenSTM32 System-Workbench
- STM32CubeMX
- 探索STM32本机Bootloader
- 自定义Bootloader与HOST的通信
- 引导加载程序项目创建
- 引导加载程序UART测试
- 引导程序跳转到用户代码
- 引导加载程序从主机读取命令
- 实现BL_GET_VER命令
- 实施BL_GET_HELP_CMD
- 实施BL_GET_CID_CMD
- 实施BL_GET_RDP_LEVEL_CMD
- 实施BL_GET_GO_TO_ADDR_CMD
- 实施BL_FLASH_ERASE_CMD
- 实施BL_MEM_WRITE_CMD
- 选项字节和闪存扇区保护
- 探索HOST应用