【OTA】STM32新能源汽车OTA技术ymodem协议PC串口升级过程
文章目录
- 前言
- 一、实验工具
- 1.串口USB线——烧录APP2生成的BIN文件
- 2.STLINK——烧录BOOT代码和APP1代码
- 3.烧录工具——将BIN文件烧录到单片机中
- 4.FLYMCU——清除芯片FLASH
- 二、硬件绘制
- 1.原理图
- 2.PCB
- 三、软件配置
- 1.BOOT代码
- 2.APP1代码
- 3.APP2代码
- 四、实验结果
- 1.烧录BOOT程序
- 2.烧录APP1程序
- 3.串口通过Ymodem协议bin烧录APP2程序
- 五、参考文章
- 总结
前言
【OTA】如何用STM32实现OTA升级?
提示:以下是本篇文章正文内容,下面案例可供参考
一、实验工具
1.串口USB线——烧录APP2生成的BIN文件
2.STLINK——烧录BOOT代码和APP1代码
3.烧录工具——将BIN文件烧录到单片机中
4.FLYMCU——清除芯片FLASH
二、硬件绘制
1.原理图
2.PCB
三、软件配置
1.BOOT代码
//ͨ¹ýÅжÏÕ»¶¥µØÖ·ÖµÊÇ·ñÕýÈ·(ÊÇ·ñÔÚ0x2000 0000 - 0x2000 2000Ö®¼ä)À´ÅжÏÊÇ·ñÓ¦ÓóÌÐòÒѾÏÂÔØÁËif (((*(__IO uint32_t*)ApplicationAddress) & 0x2FFE0000 ) == 0x20000000){BspTim2Close();__disable_irq() ; //ÌøתÖÁÓû§´úÂëJumpAddress = *(__IO uint32_t*) (ApplicationAddress + 4);Jump_To_Application = (pFunction) JumpAddress;//³õʼ»¯Óû§³ÌÐòµÄ¶ÑÕ»Ö¸Õë__set_MSP(*(__IO uint32_t*) ApplicationAddress);Jump_To_Application();SerialPutString("OK\r\n\n");}else{SerialPutString("no user Program\r\n\n");}
2.APP1代码
int main()
{SCB->VTOR = FLASH_BASE | 0x3000;__enable_irq();LED_Init();delay_init();OLED_Init();KEY_Init();uart2_Init(115200);while(1){keynumber=KEY_Scan(); if(keynumber==1) //B1°´ÏÂ{}if (keynumber==2)//ûÓа´ÏÂ{}LED1=1; // ÁÁdelay_ms(1000);LED1=0; // mieMenu_Display(Menu_Page,Level);u2_printf("{Waiting}$"); delay_ms(500);}
}
3.APP2代码
与其他步骤不同,这一步需要生成BIN文件,因此需注意!!不同芯片对应的编译器生成方式不同!
int main()
{SCB->VTOR = FLASH_BASE | 0x3000;__enable_irq();LED_Init();delay_init();OLED_Init();KEY_Init();uart2_Init(115200);while(1){keynumber=KEY_Scan(); if(keynumber==1) //B1°´ÏÂ{}if (keynumber==2)//ûÓа´ÏÂ{}LED1=1; // ÁÁdelay_ms(200);LED1=0; // mieMenu_Display(Menu_Page,Level);u2_printf("{OTA_OK}$"); }
}
四、实验结果
1.烧录BOOT程序
上位机蓝牙串口2打印,此时程序里没有APP1也没有APP2,没有进行外部OTA升级动作
2.烧录APP1程序
此时LED灯闪烁,OLED显示字符串,上位机由原来的BOOT引导程序的打印,跳转到APP1的应用程序,打印的数据也变为了waiting,表示APP1已烧录成功
3.串口通过Ymodem协议bin烧录APP2程序
选择APP2生成的BIN文件
先点开始下载,再按下核心板上的复位按键!!
绿色进度条加载完成之后,会显示下载成功
此时,LED闪烁频率比之前更快,OLED显示OTA_OK,上位机串口打印OTA_OK,说明APP2的应用程序已经通过Ymodem协议bin烧录成功
实验结束
五、参考文章
STM32程序的常用的两种烧录方式
ARM 代码烧录方案与原理详解 — SWD/JTAG + Bootloader + OTA (ICP + ISP + IAP)
总结
本文仅仅简单介绍了【OTA】STM32新能源汽车OTA技术ymodem协议PC串口升级过程方面,评论区欢迎讨论。