你好,
我已经用DA14583芯片设计了自己的定制板,现在是生产线。
我使用SmartSnippestTool刻录。hex/.bin到我的设备使用OTP。我按照以下步骤将OTP图像刻录到DA14583中,
1) # undef CFG_DEVELOPMENT_DEBUG
2) #定义CFG_BOOT_FROM_OTP
3) # undef CFG_INITIALIZE_NVDS_STRUCT
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