你好,我只是选择了da14850中的bootloader,它从eeprom启动就很好。但当我OTA设备后重新启动引导程序是得到一个错误在以下代码
如果(image1_encryption && !AES_ENCRYPTED_IMAGE_SUPPORTED)= crc32(0,(uint8_t*)SYSRAM_BASE_ADDRESS, codesize1))返回1;
我错过了什么?如何调试这个问题?
谢谢Mohit
嗨mohit3112,
我认为错误是在loadActiveImage()函数中的辅助引导加载程序代码中。您可以检查这两个条件中哪一个返回true,检查您从flash/eeprom上传的图像是否支持加密,以及图像的crc是否与当前计算的crc有效。
由于MT_dialog
调试这个问题,我做了一个像这样的全局变量探测
Int32_t探测__attribute__(((section(“retention_mem_area0”),zero_init));
我试着
探测= image1_encryption;然后probe = crc32(0,(uint8_t*)SYSRAM_BASE_ADDRESS, codesize1);
两者都返回0,如果这是真的,那么为什么返回-1是执行的我已经附上了调试的图像,请看一看,我认为编译器正在优化的代码和造成的问题
经过更多的调试,我发现在OTA后,我的产品头签名pProductHeader->签名[1]从0x52改变到0x10,为什么这是发生的?有什么建议吗? ?
我使用SDK 3.0.10.1
用OTA更新你的软件后,产品标头将签名更改为0x10是什么意思?你是如何制作你的图像的,你遵循AN-B-010.pdf ?也许你遗漏了什么。SUOTA不会改变PRODUCT_HEADER_SIGNATURE2,您可以转储您的spi,并检查它是否是SUOTA事务之后的更改。如果您的产品标头被更改,辅助引导加载程序将加载任何图像。
我使用了以下步骤1.我做了fw_1。img, fw_2。mkimage.exe single fw_1.bin fw_version_1.h fw_1.img2.运行命令——mkimage.exe multi eeprom fw_1。img 0 x8000 fw_2。img 0x13000 0x1F000 multi_part.bin3.在eeprom的偏移量0中加载multi_part.bin——带有选项make_eeprom_bootable = no(它出现在按下刻录按钮后弹出)4.secondary_bootloader燃烧。十六进制的otp5.烧otp头应用标志1 ---- yes应用标志2 ---- yes重新映射标志——Otp为0DMA长度---- 0x1FC0JTAG启用标志
我检查十六进制转储后燃烧的图像文件从smartsnippets这是不正确的,是的,它确实改变了产品头签名后ota。我已经附加的图像smartsnippets屏幕截图。
嗨,mohit,
当我说SUOTA不改变产品头部签名是,在SUOTA应用程序中没有代码将改变或改变产品头部,在多部分图像后,它停留在那里,SUOTA只改变图像。另外,在你上传的图像中,我看到了产品头部上方的数据,这些数据是什么,也许你重写了一些eeprom,你发送的数据重叠产品头部。我已经测试了SUOTA与eeprom和引导加载程序运行,尽管jtag头保持不变,因为它应该是。
嗨mohit3112,
我认为错误是在loadActiveImage()函数中的辅助引导加载程序代码中。您可以检查这两个条件中哪一个返回true,检查您从flash/eeprom上传的图像是否支持加密,以及图像的crc是否与当前计算的crc有效。
由于MT_dialog
调试这个问题,我做了一个像这样的全局变量探测
Int32_t探测__attribute__(((section(“retention_mem_area0”),zero_init));
我试着
探测= image1_encryption;
然后
probe = crc32(0,(uint8_t*)SYSRAM_BASE_ADDRESS, codesize1);
两者都返回0,如果这是真的,那么为什么返回-1是执行的
我已经附上了调试的图像,请看一看,我认为编译器正在优化的代码和造成的问题
谢谢
Mohit
经过更多的调试,我发现在OTA后,我的产品头签名pProductHeader->签名[1]从0x52改变到0x10,为什么这是发生的?
有什么建议吗? ?
我使用SDK 3.0.10.1
谢谢
Mohit
嗨mohit3112,
用OTA更新你的软件后,产品标头将签名更改为0x10是什么意思?你是如何制作你的图像的,你遵循AN-B-010.pdf ?也许你遗漏了什么。SUOTA不会改变PRODUCT_HEADER_SIGNATURE2,您可以转储您的spi,并检查它是否是SUOTA事务之后的更改。如果您的产品标头被更改,辅助引导加载程序将加载任何图像。
由于MT_dialog
我使用了以下步骤
1.我做了fw_1。img, fw_2。mkimage.exe single fw_1.bin fw_version_1.h fw_1.img
2.运行命令——mkimage.exe multi eeprom fw_1。img 0 x8000 fw_2。img 0x13000 0x1F000 multi_part.bin
3.在eeprom的偏移量0中加载multi_part.bin——带有选项make_eeprom_bootable = no(它出现在按下刻录按钮后弹出)
4.secondary_bootloader燃烧。十六进制的otp
5.烧otp头
应用标志1 ---- yes
应用标志2 ---- yes
重新映射标志——Otp为0
DMA长度---- 0x1FC0
JTAG启用标志
我检查十六进制转储后燃烧的图像文件从smartsnippets这是不正确的,是的,它确实改变了产品头签名后ota。我已经附加的图像smartsnippets屏幕截图。
谢谢
Mohit
嗨,mohit,
当我说SUOTA不改变产品头部签名是,在SUOTA应用程序中没有代码将改变或改变产品头部,在多部分图像后,它停留在那里,SUOTA只改变图像。另外,在你上传的图像中,我看到了产品头部上方的数据,这些数据是什么,也许你重写了一些eeprom,你发送的数据重叠产品头部。我已经测试了SUOTA与eeprom和引导加载程序运行,尽管jtag头保持不变,因为它应该是。
由于MT_dialog