一、将APP程序从SD卡搬运到MCU中 然后复制程序文件到MCU中,每次搬运2K字节 二、通过MD5校验搬运到MCU中的程序 二、校验成功执行跳转 三、注意点
首先从sd卡通过FAFTS文件操作系统打开程序文件,然后记录下复制开始地址和程序文件大小fileOperionResult = f_open(&updateProgFile,buf,FA_READ); //只读类型打开文件 myfree(buf); //释放缓存 if(fileOperionResult!=FR_OK) //文件打开失败 goto ERROR; i=updateProgFile.fsize; progWriteAddr=SAVE_PROGRAM_ADDR;
while(1) { if(i<2048) { fileOperionResult = f_read (&updateProgFile, &readBuf,i, &br); //读取文件 if(fileOperionResult!=FR_OK) //文件打开失败 goto ERROR; iap_write_appbin(progWriteAddr,readBuf,i); //更新FLASH代码 break; } else { fileOperionResult = f_read (&updateProgFile, &readBuf,2048, &br); //读取文件 if(fileOperionResult!=FR_OK) //文件打开失败 goto ERROR; iap_write_appbin(progWriteAddr,readBuf,sizeof(readBuf)); //更新FLASH代码 i-=2048; progWriteAddr+=2048; } }
主要原理将搬运到MCU中的程序读出来然后计算MD5,然后将计算得到的MD5和给定的MD5比较。get_bin_md5(SAVE_PROGRAM_ADDR,progFileSize,buf); //校验程序MD5值
rt_enter_critical(); //进入临界区 __disable_irq(); //关闭所有中断 iap_load_app(SAVE_PROGRAM_ADDR);//执行FLASH APP代码
在sd卡中要新建一个目录,然后放入程序文件和信息文件。
信息文件的格式为#版本号$程序文件字节数@MD5&
,MD5可以在线计算,参考网站:https://www.metools.info/other/o21.html
四、完整工程
完整工程
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算