|
项目中用到外部NorFlash,用来存放图形和字体等内容,内部Flash存储应用程序,更新固件使用的是IAP的方式。其中应用程序存放在内部 0x800 0000开始的地址区域中,图形库存放在外部 0x9000 0000开始的地址空间中。现在遇到个问题,就是使用IAR生成的Bin文件如果遇到地址不连续的情况会产生一个巨大的文件(GB级别)。如何设置IAR生成两个bin文件,一个应用程序的,一个库的,这样我用IAP更新的时候可以灵活更新(更新其中一个或者全部)。有大神知道该怎么做吗? |
微信公众号
手机版
谢谢回复。我这图片比较多,现在是直接定义成数组到外部Flash中(icf中配置了9000 0000开始的区域,引用时直接使用数组名,外部flash开启了内存映射模式),想的是可以直接生成一个库文件的bin,但是如果用原文件,一个是数量太多了,还有如果直接放在外部Flash中,我程序里如何去引用这些图片呢?
生成hex得需要有专门的软件去提取分割才行吧...要不没法直接烧写,毕竟有一些附加信息什么的。
我现在是把所有字体和图形都定义成字节数组的方式到外部存储器(0x9000 0000开始),使用时GUI直接引用数组名,因为外部Flash开启了内存映射,可以直接访问。但是生成bin文件时就很大了。不知怎么处理。
你说的这种方式,如果要引用这些库里的图形或字体该如何引用呢?
HEX文件解析起来挺简单的,自己做一个解析、转换、分割的小软件应该也很快。
先用IAR生成整个工程的HEX文件,再用自己做的小软件把HEX文件解析出来,并且根据地址分割成两个bin文件
点评
赞成这个解决方案
刚解析过HEX烧录文件
楼主要搞清楚哪些工作是MCU能做,哪些工作是MCU擅长做的。