你好,
我用DA14583芯片设计了我自己的定制板,现在是生产线。
我使用SmartSnippestTool刻录。hex/.bin到我的设备使用OTP。我按照以下步骤将OTP图像刻录到DA14583中,
1) # undef CFG_DEVELOPMENT_DEBUG
2) #定义CFG_BOOT_FROM_OTP
3) #未定义CFG_初始化_NVDS_结构
4) 已连接自定义设备和开发工具包,包括跳线设置
5)从智能剪辑工具中选择UART/SPI选项
6) 然后首先我已经烧掉了OTP头文件
7)完成第6步后尝试烧录OTP图像文件。
但在燃烧的图像文件,我得到的错误。我已经附上了错误截图,请帮我解决这个问题。
迫切需要帮助。
谢谢和问候
罗希特
设备:
嗨Rajapurerohit,
DA14583的OTP起始地址为0x40000,结束地址为0x47FFF(大小为0x8000)。根据Dialog User Manual UM-B-012的9.3章,次要引导加载程序被工厂在OTP中烧毁,并且它被放置在0x40000 - 0x41FFF(大小0x2000)中。此外,OTP报头的步长为OTP的0x47F00 - 0x47FFF地址(大小为0x100)。所以,可以写固件的区域是:
0x8000 - 0x2000 - 0x100 = 0x5700 = 24320字节
从你的截图中我可以看到,你的固件是25308字节> 24320字节,所以它比你可以写它的可用区域要大。您的固件将放置在辅助引导加载程序之后,所以如果大于24320字节,它将覆盖OTP头的一部分。因此,我强烈建议您尝试使二进制文件更小或等于24320字节,然后尝试使用您已经提到的过程将更新的固件加载到OTP中。要获得更多关于二级引导加载程序和高级引导加载程序的详细信息,请查看我们的支持页面上的对话用户手册UM-B-012。
谢谢,PM_Dialog
嗨PM_Dialog,
谢谢你的快速回复,
我没有得到确切的答案,我强烈建议您尝试将二进制文件缩小或等于24320字节,
意思是怎么做?我尝试过,但仍然面临同样的问题。
我也看过UM-B-012的用户手册,我没有从文件中得到清晰的图片。
如果你能帮我理解解决我的问题,那将对我很有帮助。
在“OTP内存中的偏移量”字段上设置的偏移量值是多少?默认情况下,该字段用0x2000填充。
我也在尝试加载。hex文件可能是hex文件更大一点,所以我面临的问题。
你能帮我把.hex文件转换成.bin文件吗。我没有在SDK 5.0.4中执行任何工具
谢谢和问候
罗希特
嗨Rajapurerohit,
我的意思是尽量减少应用程序代码,因此在构建代码时,输出的二进制/十六进制图像应该小于24320字节。这取决于您的应用程序,因此尽量删除您没有使用的代码片段并优化您的代码。没有任何可用的应用程序将十六进制转换为bin,但请注意,您可以将十六进制或bin文件加载到SmartSnippets工具箱中,并且转换将自动完成。
谢谢,PM_Dialog
嗨PM_dialog,
谢谢你的回复,
我已经删除了所有没有使用但仍然面临问题的代码片段。
如果我想刻录。bin文件,我从哪里得到它?
因为对于所有SDK项目和我的自定义项目,我只得到。hex,为什么?
我在哪里可以得到hextobin效用?
谢谢和问候
罗希特
嗨Rajapurerohit,
正如我在之前的文章中提到的,SmartSnippets工具箱支持HEX和BIN文件,以烧录OTP/SPI闪存。我们不提供任何将二进制转换为十六进制的应用程序。Keil IDE生成HEX文件,但如果您想使用BIN文件,您可以搜索一个在线应用程序,它可以做到这一点。请注意,十六进制文件不会是下载固件到OTP的问题。请问您更新的固件尺寸是否小于24320个字节?
谢谢,PM_Dialog
嗨PM_Dialog,
谢谢你的快速回复,
是的,我们减少了代码片段,但仍然面临相同的错误。
“选定文件的数据大小加上偏移量不应超过地址0x47000”
我已经在第一篇文章中附上了。
谢谢和问候
罗希特
嗨Rajapurerohit,
我无法复制您的问题,所以您能否在试图将更新的固件下载到OTP时,提供一个智能代码片段的截图?缩小后的图像的大小是多少?
谢谢,PM_Dialog
你好PM_dialog,
我已经分享了我的代码片段,请注意下面的链接。
https://drive.google.com/open?id=1Jy3CQlrmL1jXnAFUf5gGoQQWTm8OZ_0q
并附上错误信息图像。请帮我解决我的问题。
它很紧急。
谢谢和问候
罗希特
嗨Rajapurerohit,
正如我在上一篇文章中提到的,在OTP中写入固件的可用区域是24320字节。我运行并构建了您的项目,二进制映像为25900字节,比可用区域长,因此您的固件将覆盖OTP头。请尝试减小固件的大小。如果减少二进制映像,则如果要为高级引导加载程序引导,则应将0x12345ABC值存储到OTP的x47F10地址中。请检查UM-B-012用户手册中的表1。但是首先,你应该减少二值图像。
谢谢,PM_Dialog