初级会员

- 积分
- 90
- 金钱
- 90
- 注册时间
- 2019-10-1
- 在线时间
- 16 小时
|
APP应用正常放在0x08000000运行,bootloader放到0x08070000启动;
操作流程是,APP接受bin文件内容后写入flash:0x080350000, 每次写入最大1024,分多次写入;
写入完成后跳转到IAP,进行更新,每次读取1024字节,写入0x08000000开始的位置;然后复位;
现在现象是:4K/7K的bin文件能正常更新成功; 11k及以上的程序再更新完后复位,就不运行 更新的新程序了;
备份bin文件的代码:
- STMFLASH_Write(FLASH_APP_BIN_SAVE_ADDR+((RecevieBinPackageQuantity-1) * 0x400),(u32 *)packBinDataRECEVIE->stuBinData, 256);
复制代码 RecevieBinPackageQuantity:第几次写入
packBinDataRECEVIE->stuBinData:写入的数据
更新flash代码:
- for(tmpCnt = 0;tmpCnt < SAVE_FLASH.RecevieBinPackageQuantity;tmpCnt++)
- {
- STMFLASH_Read(BackUpAPPAddr+(tmpCnt*0x400) ,(u32 *)BinData,256); //±ØDëêÇ4μı¶êy---¶á衱¸·YμÄAPP
- STMFLASH_Write(APPAddr+(tmpCnt*0x400) ,(u32 *)BinData, 256);
- }
复制代码 SAVE_FLASH.RecevieBinPackageQuantity:分几次读出
BackUpAPPAddr:备份地址0x08035000
APPAddr:APP地址0x08000000
求救..............
|
|