【OTA】STM32新能源汽车OTA技术ymodem协议PC串口升级过程
【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; // mie Menu_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; // mie Menu_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串口升级过程方面,评论区欢迎讨论。
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!




















