一、通过STM32实现从Bootloader跳转至主程序
1.1 简介
- 在程序设计之前先划分内部flash区域
- 本文将boot区划分地址为: 0x08000000 ~ 0x0x08006FFF(可以根据需求自行划分),共28K(0x7000)
- 将主程序区划分地址为:0x08007000 ~ 0x0x08012FFF 共48K
- 本文根据串口打印信息判断跳转是否成功
- 注意事项: 控制Boot区程序不能超过28K大小,否则会损坏主程序
1.2 CubeMX配置



接下来即可生成工程
1.3 Bootloader程序
main.c
#include "stdio.h"
#define APPLICATION_ADDRESS 0x08007000 //跳转目标地址,主程序起始地址
typedef void (*pFunction)(void);
pFunction JumpToApplication;
uint32_t JumpAddresss;
/*printf 重定向*/
int fputc(int ch, FILE * f)
{
HAL_UART_Transmit(&huart3, (uint8_t *)

本文介绍了如何通过STM32的CubeMX配置生成工程,并实现从Bootloader到主程序的跳转。主要步骤包括划分Flash区域,编写Bootloader程序以检查和跳转到主程序的入口地址,以及确保主程序的正确烧录。在跳转过程中,使用了HAL库函数进行初始化和通信,并通过UART打印信息来验证跳转是否成功。

444

被折叠的 条评论
为什么被折叠?



