Part Number:AWR1642Other Parts Discussed in Thread:UNIFLASH
目前产品处于量产前夕,我们想把SBL和APP程序合并为一个新的.bin文件,但是发现合并过后,通过脱机烧录器烧录合并后的固件,程序不能正常运行。目前已做了如下验证
1、SBL和APP程序通过uniflash工具烧录,APP程序是可以正常运行的,一切没有问题。
2、SBL和APP程序合并为一个固件后,通过脱机烧录器烧写,SBL可以正常运行,APP无法被正常加载,显示错误为:Error: Meta header absent!!!
基于第二点,做了如下验证
2.1、在src\metaheader_parser.c里面读取metaHeaderStart的值为0xcccccccc。如果正确,应该为0x5254534d
2.2、把合并后的固件与APP和SBL做对比是完全一样的
2.3、基于上述第1点(一切正常的情况下),把烧录到程序的SBL和APP打印出来看,均与SBL.bin和APP.bin一样。
2.4、假设使用脱机烧录器将SBL烧写在0xc0000000(flash基地址)+0x00000000(地址偏移)地址处,APP烧写在0xc0000000(flash基地址)+0x00180000(地址偏移)地址处,程序无法正常运行。但是基于此,我们通过uniflash将任意一个固件烧写在image3这个区域。SBL和APP均可正常运行。
期待专家们的回复、
Chris Meng:
你好,
是否尝试过使用u你flash烧写APP,烧录工具烧写SBL,能否成功?调换呢?
是否有使用其他的烧录器也有类似的问题?
,
guopeng zhang:
你好,
非常感谢你的回复
使用uniflash烧写APP,使用烧录工具烧写SBL,试过的,还是不能正常运行APP。总结为:只要最后对芯片进行操作的是烧录器就不能运行,最后对芯片进行烧录的是uniflash就可以运行。
另外我们也换了两个烧录器来烧录,问题还是一样的。。
,
Chris Meng:
你好,
你们尝试的多个烧录器是不同品牌的吗?
SBL也是可以烧写APP的,也是没有问题。
,
guopeng zhang:
是的 烧录器是两个不同的品牌。
,
Chris Meng:
user5272169 说:SBL和APP程序合并为一个固件
请问你们是如何合并的? SBL和APP之间的空闲区域值是多少?
,
guopeng zhang:
SBL烧录在了flash 0x0处,Backupimage烧录在了Flash 0x00180000处。空闲区域填过0xff,0x00。
,
Chris Meng:
你好,
你们有尝试过使用sbl烧写app么?sbl烧写app的流程你都是看得到的。
,
guopeng zhang:
你指的是SBL引导升级APP吗?
我们在前期验证阶段,都是通过SBL烧写APP进行OTA升级的,也都是OK的。现在是量产的时候需要把SBL和APP合并在一起烧写,就出现了问题
,
Chris Meng:
你好,
SBL烧写app使用的qspi flash命令你都是看得到的,是可以成功的,说明烧写app和uniflash本身也是没有关系的。
请问烧写器使用的烧写命令有什么特殊么?