关于IAP技术,FLASH空间的使用疑惑。

2019-07-21 02:22发布

我使用的是mini开发板,原子哥的IAP那篇看了两遍才真正搞明白整个实现过程。但有个问题一直没搞懂,希望能得到解答。

第一部分,Bootloader程序,因为使用了LCD导致目标程序较大,hex文件大小为103KB,换算成16进制为0x19c00。而在FLASH  APP程序中,只给Bootloader程序留64KB的空间,其起始地址为0x10000。这样的话Bootloade程序岂不是被覆盖掉了?但为什么调试时一切都正常?
应该是我的换算有问题是吗?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
jermy_z
1楼-- · 2019-07-21 03:33
1、首先hex大小跟占用flash大小完全是两码事,你应该根据MDK编译后的数据(在最下方,具体百度)计算
2、BOOTLOADER 地址就是0x8000000 , APP 地址才需要计算
3、你该算的是bootloader大小,然后算APP的起始地址,而不是给bootloader留空间
4、呵呵
xielei
2楼-- · 2019-07-21 05:06
回复【2楼】jermy_z:
---------------------------------
回复【2楼】jermy_z:
---------------------------------
感谢您的解答,您说的2,3,4点我都知道。
关于第一点是我误解了,hex文件与所占用的FLASH没有直接的关联。编译后显示,Code=31024,换算成16进制为0x7930,未超出预设的0x10000。
再次感谢!
xielei
3楼-- · 2019-07-21 08:37
 精彩回答 2  元偷偷看……
jermy_z
4楼-- · 2019-07-21 12:02
回复【4楼】xielei:
---------------------------------
呵呵  占用的大小而已,因为flash里不一定仅有一个APP !!

一周热门 更多>