你好,
我设计了使用DA14583芯片自己的定制板,现在是生产线。
我使用SmartSnippestTool刻录。hex/.bin到我的设备使用OTP。我按照以下步骤将OTP图像刻录到DA14583中,
1) # undef CFG_DEVELOPMENT_DEBUG
2) #定义CFG_BOOT_FROM_OTP
3)#undef cfg_initialize_nvds_struct
4)连接了我的自定义设备和Dev套件,包括跳线设置
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内存中的“OTP内存中”字段中的“偏移”字段是什么是填充0x2000的偏移值。
我也在尝试加载。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 vale存储到OTP的X47F10地址中。请从UM-B-012用户手册中查看表1。但首先,你应该减少二进制图像。
谢谢,PM_Dialog