大家好,
我已经用DA14583芯片设计了自己的定制板,现在是生产线。
我正在使用SmartSnippestTool使用OTP将.hex/.bin刻录到我的设备。我按照以下步骤将OTP映像刻录到DA14583中,
1) #未定义CFG_开发#u调试
2) #从OTP定义CFG_引导_
3) # undef CFG_INITIALIZE_NVDS_STRUCT
4)连接我的定制设备和开发工具包,包括跳线设置
5) 从智能Snippest工具中选择UART/SPI选项
6)然后我首先烧毁了OTP头文件
7) 完成步骤6后,尝试刻录OTP图像文件。
但在图像文件的刻录过程中,我得到了错误。我已附上错误屏幕截图,请帮助我解决问题。
我急需帮助。
感谢和问候
罗希特
设备:

嗨Rajapurerohit,
DA14583的OTP从0x40000开始,到0x47FFF地址(大小0x8000)结束。根据对话框用户手册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。
谢谢,下午好
你好,下午对话,
感谢您的快速回复,
我强烈建议你把二进制数缩小到24320字节,
意思是怎么做?我已经试过了,但仍然面临同样的问题。
而且我已经阅读了UM-B-012用户手册,我没有从文档中得到清晰的图片。
如果你能帮助我理解并解决我的问题,这将对我非常有帮助。
在“OTP内存中的偏移量”字段中要设置的偏移量是多少?默认值是0x2000。
此外,我正试图加载。十六进制文件可能是十六进制文件有点大,所以我面临的问题。
你能帮我把。hex转换成。bin文件吗?在SDK 5.0.4中我没有得到任何工具来执行
感谢和问候
罗希特
嗨Rajapurerohit,
我的意思是尽量减少您的应用程序代码,所以当您构建代码时,输出的二进制/十六进制图像应该少于24320字节。这取决于您的应用程序,因此请尝试删除未使用的代码段并优化代码。没有任何可用的应用程序可将十六进制文件转换为bin文件,但请注意,您可以将十六进制文件或bin文件加载到SmartSnippets工具箱中,转换将自动完成。
谢谢,下午好
你好,下午对话,
谢谢你的回复,
我已经删除了所有未使用但仍面临问题的代码段。
如果我想烧掉.bin文件,我从哪里得到它?
因为对于所有的SDK项目和我的自定义项目,我只得到了。十六进制为什么?
我在哪里可以得到hextobin实用程序?
感谢和问候
罗希特
嗨Rajapurerohit,
正如我在上一篇文章中提到的,SmartSnippets工具箱支持十六进制和BIN文件,以便刻录OTP/SPI闪存。我们不提供任何将二进制转换为十六进制的应用程序。Keil IDE生成十六进制文件,但如果您想使用BIN文件,您可以搜索一个在线应用程序,它可以做到这一点。请注意,将固件下载到OTP时,十六进制文件不会有问题。如果您更新的固件的大小小于24320字节?
谢谢,下午好
你好,下午对话,
感谢您的快速回复,
是的,我们减少了代码片段,但我仍然面临同样的错误。
"所选文件的数据大小加上偏移量不应超过地址0x47000 "
我把它附在了第一个帖子上。
感谢和问候
罗希特
嗨Rajapurerohit,
我无法复制您的问题,因此在您尝试将更新的固件下载到OTP时,能否提供Smart Snippets的屏幕截图?缩小图像的大小是多少?
谢谢,下午好
你好,PM_dialog,
我已经分享了我的代码片段,请注意下面的链接。
https://drive.google.com/open?id=1Jy3CQlrmL1jXnAFUf5gGoQQWTm8OZ_0q
并附上错误信息图片。请帮我解决我的问题。
很紧急。
感谢和问候
罗希特
嗨Rajapurerohit,
正如我在之前的文章中提到的,在OTP中编写固件的可用区域是24320字节。我运行并构建了您的项目,二进制映像是25900字节,这比可用区域长,所以您的固件将覆盖OTP头。请尽量减小你的固件的尺寸。如果减少二进制映像,那么如果您希望为高级引导加载程序引导,则应该将0x12345ABC值存储到OTP的x47F10地址中。请参见UM-B-012用户手册中的表1。但首先,你应该缩小二值图像。
谢谢,下午好