求助:stm32 用内部flash虚拟u盘进行IAP

2019-12-11 18:39发布

求助:stm32 用内部flash虚拟u盘进行IAP

现在我虚拟出来了(stm32f103c8t6) iap程序8k 虚拟出来是52k,格式化后32k(1024字节)
转跳程序.png (16.48 KB, 下载次数: 0) 下载附件 转跳程序 2014-8-21 21:14 上传
iap_load_app(0x08008000);        无法转跳,直接进入IAP
iap_load_app(0x08008800); 死机



我直接将app程序强制写进0x08008000,iap转跳成功(IAP设置转跳地址为08008000)..

求助..为啥直接放bin不能转跳.bin不是直接可以读取的文件?我找到bin真地址转跳不就行了?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
95条回答
yuangaoping
1楼-- · 2019-12-17 12:09
你使用的是WIN8系统吧?

引用的这篇文章是我写的,之前这种方式做过大量的测试了,只有WIN8的系统没有测试,win8系统底层操作有很多奇葩的地方。

你分析的很仔细,如果真如你分析的,起始地址成了5800,那也没关系,把APP程序中偏移量修改为0x8800就可以了:
        NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x8000);
修改为
        NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x8800);
qdyuyan
2楼-- · 2019-12-17 14:47
这个要好好学习一下,方法很好!估计以后的芯片都会采用这种方式。
FlandreUNX
3楼-- · 2019-12-17 17:51
yuangaoping 发表于 2014-10-15 12:09
你使用的是WIN8系统吧?

引用的这篇文章是我写的,之前这种方式做过大量的测试了,只有WIN8的系统没有测试 ...

遇到作者了...这个文档看了很久..
不过有一点就是FAT是连续页的.如果改成其他页没试过.很久没试过了..当然希望能最大限度的压缩IAP体积
FlandreUNX
4楼-- · 2019-12-17 20:56
yuangaoping 发表于 2014-10-15 12:09
你使用的是WIN8系统吧?

引用的这篇文章是我写的,之前这种方式做过大量的测试了,只有WIN8的系统没有测试 ...

毕竟U盘地址和ROM内部地址不一样.上位机控制FAT写入的位置更加奇葩.
散装805
5楼-- · 2019-12-17 22:41
 精彩回答 2  元偷偷看……
LVmcu
6楼-- · 2019-12-18 02:28
楼主厉害!!

一周热门 更多>