Other 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均可正常运行。
期待专家们的回复、
