求助: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真地址转跳不就行了?
引用的这篇文章是我写的,之前这种方式做过大量的测试了,只有WIN8的系统没有测试,win8系统底层操作有很多奇葩的地方。
你分析的很仔细,如果真如你分析的,起始地址成了5800,那也没关系,把APP程序中偏移量修改为0x8800就可以了:
NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x8000);
修改为
NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x8800);
遇到作者了...这个文档看了很久..
不过有一点就是FAT是连续页的.如果改成其他页没试过.很久没试过了..当然希望能最大限度的压缩IAP体积
毕竟U盘地址和ROM内部地址不一样.上位机控制FAT写入的位置更加奇葩.
一周热门 更多>