本帖最后由 tkyl01 于 2015-12-2 09:56 编辑
环境:103c8t6,项目是中途接手的,不知道前辈怎么想的没留下升级程序的接口,有一个micro usb,可是,只能充电,最D疼的是,PA11,PA12没有连接,想用USB更新程序也是不可能的了,每次一有问题都要拆壳子
后来想到了产品上有蓝牙,那就串口IAP吧,可是这是C8T6,SRAM只有20K,庙太小了,容不下我的程序啊!!!PS:之前的IAP都是 串口助手发送程序 存放到SRAM中 后再写入到FLASH,但是SRAM要足够大
没办法了?NO!得亏俺会点 WIN32 SDK,自己写个loader吧,思路就是->把程序分包发送,下位机每接收一包,就写入FLASH一次,待程序写入完成后执行jump,这样程序就直接写入flash了,SRAM大小只要够存下一包数据就可以了
(为什么不串口边接收边写入FLASH呢?没试过的可以试试)
上图:
界面虽然有点丑,大家不要见怪哦,
PS:暂时未加入校验,但留有CRC16功能,有心的可以自己把校验功能加上,程序就更可靠了,不过我用了几十块了,没出现问题,此程序经过修改可以应用任意无线设备 更新程序,我现在用的蓝牙。
无偿提供:
上位机源码:
STM32IAPLoader.rar
(2.61 MB)
(VC6.0) 可执行程序:
STM32IAPLoader.rar
(67.85 KB)
下位机程序:
IAPBootLoaderV1.0.rar
(3.16 MB)
(KEIL 4)
:handshake下位机程序部分用了 原子 的程序。
此程序还很不完善,上有源码,有心之人可以完善一下,也为想写上位机的童鞋提供一个范例。
|