STM32CbueMX之 USB下载更新固件Download Firmware Update(DFU)之一BootLoader程序编写https://blog.csdn.net/sudaroot/article/details/102549606
STM32CbueMX之 USB下载更新固件Download Firmware Update(DFU)之二APP编写及烧录升级https://blog.csdn.net/sudaroot/article/details/102743141
STM32CbueMX之 USB下载更新固件Download Firmware Update(DFU)之三Leave DFU mode会卡死https://blog.csdn.net/sudaroot/article/details/102746505
STM32CbueMX之 USB下载更新固件Download Firmware Update(DFU)之四FreeRTOS跳转运行失败https://blog.csdn.net/sudaroot/article/details/102800541
写一个最简单LED闪烁的程序。
进入设置,把代码的起始地址 0x8000000 改成0x8010000(上一节有解释); 空间大小0x0100000改成0xFFFFF
打开system_stm32f4xx.c文件修改中断向量表的偏移地址。我们APP相对flash起始地址偏移了64KB即0x10000.
#define VECT_TAB_OFFSET 0x10000
main.c
#include <stdio.h>
int fputc(int ch, FILE* FILE)
{
HAL_UART_Transmit(&huart1, (uint8_t*)&ch, 1, HAL_MAX_DELAY);
return ch;
}
int main(void)
{
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_USART1_UART_Init();
while (1)
{
HAL_GPIO_TogglePin(RUN_LED_GPIO_Port, RUN_LED_Pin);
HAL_Delay(1000);
}
}
编译。
生成固件:
找到hex文件,打开Dfu file manager是把bin文件或者hex文件生成 .dfu后缀的文件, .dfu后缀的文件就是我们的固件。
升级烧录:打开DfuSeDemo软件,板子usb连接电脑
断电重启或者点击Leave DFU mode直接运行APP。
全篇完。
本人是一个嵌入式未入门小白,博客仅仅代表我个人主观见解,记录成长笔记。
笔记是以最简单的方式,只展示最核心的原理。
若有与 大神大大 见解有歧义,我绝对坚信 大神大大 见解是对的,我的是错的。
若无积分等无法下载源码,可加入QQ群657407920下载交流经验。感谢~!