STM32F103 通过SD卡IAP升级程序,带MD5校验,(带源码)可在实际项目中使用
一、将APP程序从SD卡搬运到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;
然后复制程序文件到MCU中,每次搬运2K字节
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;}
}
二、通过MD5校验搬运到MCU中的程序
主要原理将搬运到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可以在线计算,参考网站:http://www.metools.info/other/o21.html
四、完整工程
完整工程
STM32F103 通过SD卡IAP升级程序,带MD5校验,(带源码)可在实际项目中使用相关推荐
- 微信小程序:修复图片音频全新升级带特效喝酒神器源码
这是一款全新升级带特效喝酒神器小游戏微信小程序源码 小编发现很多喝酒神器小程序都不带特效和音效的 感觉差了那么一点意思而且感觉也不炫酷 所以小编今天给大家带来一款带特效,音效炫酷的喝酒神器 该款神器由 ...
- linux读取sd卡文件数据,Linux系统和SD卡读写部分程序.doc
Linux系统和SD卡读写部分程序 11.1.1 SD卡系统概念 Linux系统移植>第11章SD卡驱动移植,本章重点为SD卡协议介绍和SD卡驱动分析,后面也介绍SD卡驱动移植过程.随着SD卡存 ...
- 基于STM32的IAP升级程序
基于STM32的IAP升级程序 IAP介绍 功能设计 硬件设计 软件设计 软件设计流程如下 完整程序 具体实现 设计功能程序 IAP实现程序 主程序 后续 IAP介绍 IAP(In Applicati ...
- 完成MSP430的IAP升级程序(总结)
这几天测试写好的IAP升级程序,真是一个糟,能将程序下载进去,但无法运行. 经过各种测试,修改终于找到了问题的原因,现在大致总结下我在写IAP程序的时候 遇到的问题和解决方案.首先要实现单片机的IAP ...
- 绘制STM32最小系统电路原理图、STM32F103读取SD卡的数据
绘制STM32最小系统电路原理图.STM32F103读取SD卡的数据 文章目录 绘制STM32最小系统电路原理图.STM32F103读取SD卡的数据 1 AltiumDesigner 软件配置 2 A ...
- STM32F105实现U盘IAP升级程序
1.理论分析 理论依据很重要,这里稍微介绍一下原理和数据的操作过程.实际实现U盘的IAP升级一共分为两个部分,一部分是bootloader程序,这部分需要使用烧录器或者串口烧写进芯片.另一部分是用户的 ...
- wx超强随机短视频程序源码视频打赏自带视频+支付接口+源码自适应/安装教程
demo软件园每日更新资源,请看到最后就能获取你想要的: 1.wx超强随机短视频程序源码视频打赏自带视频+支付接口+源码自适应/安装教程 可以放wx号.点击+微信按钮时,自动++wx号并打开微信软件 ...
- 最新仿淘宝B站购物直播小程序+带货完整PHP源码下载
正文: 最新仿淘宝B站购物直播小程序+带货完整PHP源码下载,由于演示图太长了,所以我分别载图了两张,完整的演示图直接发压缩包了,有兴趣自行去查看. 当前版本已经修复直播间相关的一些BUG,还有商品新 ...
- 开源微信小程序自助建站系统源码 含精美的多行业模板和搭建教程
分享一个微信小程序自助建站系统源码,含各行各业的小程序模板和搭建教程,可一键切换模板,自由DIY,搭建属于你自己的小程序. 特色功能一览: 11.支持创建多个小程序!(没有数量限制,后续免费升级) ...
最新文章
- 两成开发者月薪超 1.7 万、算法工程师最紧缺! | 中国开发者年度报告
- iterator与iterable
- linux下基于内存分析的rootkit检测方法
- Anaconda环境下OpenCV的安装
- swoole 异步系统文件IO
- Django运维后台的搭建之一:使用model建立数据信息
- Linux 统计多个文件中 某字符串出现的行数
- ​TA们划重点的时候到了:什么是实例工作流?
- cocos2d-x之读取plist文件
- 办公自动化-world转pdf-0223
- Java 并发(入门梳理)
- 【CDH】ClouderaManager集群报警,堆转储目录/tmp 或日志目录/var/log 可用空间小于 5.0 吉字节
- ubuntu一些记录
- java zinterstore_Java架构之Redis系列:通过文章点赞排名案例学习Sortedset命令
- 深入浅出通信原理知识点1
- 汽车电子技术——传感器感知技术
- 博士申请——Research Proposal
- 全球资产定价之锚上行提速,科技股恐祸不单行?
- c++基础学习:输入cin、输出cout、换行endl
- 【OI做题记录】【BZOJ】【Usaco2008 Mar】土地购买
热门文章
- c语言读取cmos的原理,三步读懂CMOS图像传感器的工作原理
- 期刊信息管理list.php,科学网—【信管学人国际期刊投稿目录列表】-Journal List for Scholars in Info Mgt - 陈晓宇的博文...
- android7.1官方下载,Android系统7.1.2 Beta 2正式版
- 耐克鞋子---给兄弟的
- hibernate 的缓存使用问题 转
- 主流浏览器与CSS3
- 斗拱展开面积表_展开面积计算表格 梁
- Tarjan算法求割点与割边(python3实现)
- 数字信号处理(DTFT与DFT、DFS的详细讲解以及FFT算法)
- VS正在加载符号导致程序启动变慢