IAP更新操作说明 第一个文件夹:bootloader程序 第二个文件夹:上位机下载程序源码 第三个文件夹:需要更新下载的代码 第四个文件:下载工具可执行文件 第五个文件:生成的pbdr.bin文件,用于更新。 一、硬件设计:升级下载程序采用外部硬件触发的方式。 PB-20M4硬件板 预留一个IO口处理代码下载及更新的功能。 功能简介:开机前若将 PB4接口与GND用杜邦线(改进硬件后可用跳帽)短接, LED6闪烁状态,即可进入固件下载功能程序,然后等待串口输入接收APP程序(.bin文件,生成方法见后面说明、分段接收每包2K数据,进行CRC校验),在接收完APP程序包后,断开PB4与地线的连接即可进入用户程序。 用到的资源: - 指示灯DS6
- 一根短接线,优化硬件后 可用跳帽
- 串口(共地)
图一 硬件指示图 图二 串口连接
二、软件设计总共涉及三部分代码:1、Bootloader;2、Flash App;3、上位机程序 1.Bootloader; 主函数进行任务判断,以及IAP更新和跳转等各项操作。串口中断中运行数据处理,数据检测,与上位机及握手校验等任务。Bootloader大小仅16K左右。 2、Flash App; 需要下载的程序,设置flash起始地址偏移量,由bootloader串口中断中写到flash中去。在初始化的时候执行跳转,运行该代码程序。 3、上位机发送校验程序 协议如下: /*--------------------------------------------------------------------- protocol-----|#|remainSend|#|length|data[]|CRC_check ---------------------------------------------------------------------*/ IAP不是一下子把所有BIN文件都接收过来写入FLASH,而是根据自己硬件的RAM空间,把BIN文件分成若干包,如每1K,2K等传送一次,传送当中加上帧头,帧尾,CRC,及总共多少包,及这是第几包等信息封装好的数据包,每接收一包写相应FLASH,下一包对应的FLASH地址++,如此完成固件更新。
三、上位机设计:打开应用程序IAP_Download_USART\IAP_Download_USART\obj\Debug中exe文件。 或直接打开附件中IAP_Download_USART.exe应用程序 运行界面 烧录过程: 开发环境如下: VS2013上用C#设计的简单的串口应用程序,基于.net4.5。 主要代码: 详见附件。
|