使用uniflash加载三个固件,并且成功下载,但是IWR6843运行的是最后一个固件,前两个固件被覆盖了,请问如何给每个固件设置不同的下载地址,防止前面的固件被覆盖。
Chris Meng:
你好,
不清楚你的具体应用。但在uniflash里有4个可以烧写的image输入,就是放置不同的地址的。
Chris Meng:
回复 Chris Meng:
你好,
相关地址如下:
– META IMG1(SDF offset – 0x0)
– META IMG2(SDF offset – 0x80000)
– META IMG3(SDF offset – 0x100000)
– META IMG4(SDF offset – 0x180000)
user6428140:
回复 Chris Meng:
你好,我是把boot固件放在IMG1,工厂固件放在IMG3,但是烧写后,IMG1固件不运行,直接运行IMG3
Chris Meng:
回复 user6428140:
你好,
如果只烧写boot固件,可以正常启动么? 我怀疑是boot固件有问题。
user6428140:
回复 Chris Meng:
只烧写boot是可以启动的,我直接用的是sdk里面的sbl那个固件
user6428140:
回复 Chris Meng:
你好,我发现我的固件大小超过了512K,是不是这个原因导致的?还有6843的固件是由DSP+ARM两个固件组成的,我怎么做可以每次只升级ARM的固件,DSP的固件不作修改,因为DSP+ARM的固件加起来太大了,超过512K,单个只有150K
Chris Meng:
回复 user6428140:
你好,
请问你的boot代码超过了512K?
sdk里面默认的sbl的app位置是256K。所以你的boot代码不是默认的sbl,所以只烧写默认sbl能启动不说明问题。
/*** @briefThis is offset in flash at which the application metaimage will be stored.*/
#define SBL_METAIMAGE_OFFSET(256U * 1024U)
user6428140:
回复 Chris Meng:
问题已经定位到,原因就是固件太大了,有没有办法修改uniflash的下载地址,现在uniflash是4个固定512K的分区,我想修改下分区以及下载地址,使工厂分区跟备份分区扩大,这样就可以使用了
Chris Meng:
回复 user6428140:
你好,
你说的这些参数在uniflash里是不能更改的。
user6428140:
回复 Chris Meng:
所以业务代码的固件最大只能512K是吗,如果使用SBL功能的话