SD卡实现IAP升级。mini板中完美通过。
iap 功能其实很实用。
工作之前还不知道有iap这个东东,后来工作了。公司用的就是这技术,
每次发给客户的软件都是bin文件让客户升级MCU软件。
过程是这样的,给bin文件客户,放入sd卡中,开机,升级。
免除了拆卸机器,烧录MCU这样繁琐的过程,并且客户没有烧录器,可以挂在网上,然客户自行下载升级。
很方便,可是我公司却将iap功能打包了。看不见源码。
这技术我觊觎很久了。
有幸网络认识原子大哥,投身mini大营,有了一个研究平台,
并且大哥开源高水准的代码,让我获益匪浅。
SD卡读取应用程序,很爽不是。
嘎嘎。 代码是移植原子哥的。
操作过程: 1、烧录bootloader中的HEX文件,作为引导程序
2、将程序通过MDK 生成BIN文件(修改成stm32.bin)
fromelf.exe 是MDK自带的HEX->BIN 程序, 查看你们的MDK安装位置,自行改成fromelf.exe的路径
3、修改程序烧录ROM的位置
0x5000之前装的是boderloader引导升级程序
4、修改向量表(跟ROM一致,一定要改)
5、编译
将生成的STM32.bin 放入SD卡中插在MINI板上,开机就可以升级了。
6、升级OK,直接进入应用程序。
程序思想:上电检测SD卡,FAT初始化,检查stm32.bin文件。OK,进入升级。否则进入应用程序。
升级成功,自动进入应用(该应用程序是原子哥的,就该了改ROM位置以及向量表)
iap例程中,两个应用都是原子哥的,仅仅改了ROM和向量表。。
上面的定义是基本的函数指针啊
---------------------------------
函数指针。比较基础 。 typedef void(*pVoid) (void) ; 这种写法是常见的,给你demo一个最基础的用法
定义一个函数指针 pVoid pFunction;
void function(void)
{
printf("xx");
}
pFunction=fuction;
(*pFunciton)();
楼主请教一下,电脑怎么升级,也要存到SD卡吗?用什么样的接口啊,我不太懂多少 。
这个技术我也研究了很久,因为用ISP和JILING烧程序很不方便,产品做出去要留升级接口。
一周热门 更多>