查看: 1339|回复: 1
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
沙发
发表于 2015-5-27 13:07:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求助:stm32 用内部flash虚拟u盘进行IAP

现在我虚拟出来了(stm32f103c8t6) iap程序8k 虚拟出来是52k,格式化后32k(1024字节)

放点小文档txt往里面写点东西.重新读取出来后提示文件损坏,但是放上些较大的文件又没事(右下图为U盘TXT地址)




接着就往u盘里放bin文件…可是死都不能转跳…

App程序地址设置成0x08008000
U盘开始地址0x08003000,3000-8000为电脑格式化化后的fat表..详细信息可以看看附件pdf

我用winhex查看u盘 发现bin文件不是从”u盘地址—5000(对应实际地址0x-8008000)”开始,而是5800(0x8008800)于是我尝试转跳地址设置成0x08008800,可是iap程序进入hault了


iap_load_app(0x08008000);        无法转跳,直接进入IAP
iap_load_app(0x08008800); 死机



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


回复

使用道具 举报

板凳
 楼主| 发表于 2015-5-27 13:07:59 | 只看该作者
分区表是上位机格式化时写进去的.自己下位机也可以写分区表..目前无论啥文件,除了System Volume Information这个文件夹和文件(0x0005000以前),其余都是从u盘地址0x005800开始写入..
按照我设置的U盘空间开端是STM32内部FLASH的0x08003000,加上U盘地址0x005800就是0x08008800...
转载
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入因仑

本版积分规则

快速回复 返回顶部 返回列表