你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

IAP更新内部和外部两个Flash遇到的问题

[复制链接]
kokoromi 提问时间:2019-9-3 10:21 /
项目中用到外部NorFlash,用来存放图形和字体等内容,内部Flash存储应用程序,更新固件使用的是IAP的方式。其中应用程序存放在内部 0x800 0000开始的地址区域中,图形库存放在外部 0x9000 0000开始的地址空间中。现在遇到个问题,就是使用IAR生成的Bin文件如果遇到地址不连续的情况会产生一个巨大的文件(GB级别)。如何设置IAR生成两个bin文件,一个应用程序的,一个库的,这样我用IAP更新的时候可以灵活更新(更新其中一个或者全部)。有大神知道该怎么做吗?
收藏 评论13 发布时间:2019-9-3 10:21

举报

13个回答
tgw860910 回答时间:2019-9-3 10:44:48
生成bin文件估计是不行的,生成HEX,然后在上位机做一下处理会好一点
す疯Ⅱ恒す 回答时间:2019-9-3 10:46:55
IAR直接生成APP的bin文件就可以了,库文件可以用图形原文件。这样bin文件的大小就正常了。至于需要更新APP还是图片库,由通讯协议定义,发过去的命令要更新app就更新app,接下来IAP收到的数据就更新到APP去,反之亦然。
回答时间:2019-9-3 10:58:25
图形库时单独的库吧,烧写文件的时候,选择烧写地址写入图形库即可。我用字库的时候时这样写的。或自己写一个程序吧两个bin文件合成一个文件即可。
kokoromi 回答时间:2019-9-3 11:03:14
す疯Ⅱ恒す 发表于 2019-9-3 10:46
IAR直接生成APP的bin文件就可以了,库文件可以用图形原文件。这样bin文件的大小就正常了。至于需要更新APP ...

谢谢回复。我这图片比较多,现在是直接定义成数组到外部Flash中(icf中配置了9000 0000开始的区域,引用时直接使用数组名,外部flash开启了内存映射模式),想的是可以直接生成一个库文件的bin,但是如果用原文件,一个是数量太多了,还有如果直接放在外部Flash中,我程序里如何去引用这些图片呢?
kokoromi 回答时间:2019-9-3 11:04:33
tgw860910 发表于 2019-9-3 10:44
生成bin文件估计是不行的,生成HEX,然后在上位机做一下处理会好一点

生成hex得需要有专门的软件去提取分割才行吧...要不没法直接烧写,毕竟有一些附加信息什么的。
kokoromi 回答时间:2019-9-3 11:11:08
安 发表于 2019-9-3 10:58
图形库时单独的库吧,烧写文件的时候,选择烧写地址写入图形库即可。我用字库的时候时这样写的。或自己写一 ...

我现在是把所有字体和图形都定义成字节数组的方式到外部存储器(0x9000 0000开始),使用时GUI直接引用数组名,因为外部Flash开启了内存映射,可以直接访问。但是生成bin文件时就很大了。不知怎么处理。
你说的这种方式,如果要引用这些库里的图形或字体该如何引用呢?
tgw860910 回答时间:2019-9-3 11:18:04
kokoromi 发表于 2019-9-3 11:04
生成hex得需要有专门的软件去提取分割才行吧...要不没法直接烧写,毕竟有一些附加信息什么的。 ...

HEX文件解析起来挺简单的,自己做一个解析、转换、分割的小软件应该也很快。
先用IAR生成整个工程的HEX文件,再用自己做的小软件把HEX文件解析出来,并且根据地址分割成两个bin文件

点评

又要自己写小软件...搞单片机的真是苦,啥都得会。  发表于 2019-9-3 11:20
奏奏奏 回答时间:2019-9-3 11:42:28
tgw860910 发表于 2019-9-3 11:18
HEX文件解析起来挺简单的,自己做一个解析、转换、分割的小软件应该也很快。
先用IAR生成整个工程的HEX文 ...

赞成这个解决方案
刚解析过HEX烧录文件

楼主要搞清楚哪些工作是MCU能做,哪些工作是MCU擅长做的。
回答时间:2019-9-3 13:45:19
ST的很简单,编译器都是支持生成BIN文件的。同时图形库肯定时固定的。比如1M的FLASH,就建立一个1M的缓冲区按照指定地址写入数据即可。在读取库时,用指着读取就可以了。我用字库都是这么做的。会用c#或者VB写个简单的应用程序,对自己也有好处。方便自己对数据的处理。万事能不求人,坚决不求人。
12下一页

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版