大家好,
我已经用DA14583芯片设计了自己的定制板,现在是生产线。
我正在使用smartsnippesttool,使用OTP将.hex / .bin刻录到我的设备。我遵循以下步骤将OTP图像刻录到DA14583中,
1)#undef cfg_development_debug
2)#define cfg_boot_from_otp
3)#undef cfg_initialize_nvds_struct
4)连接我的定制设备和开发工具包,包括跳线设置
5)来自Smart Senippest工具的选定UART / SPI选项
6)然后我首先烧毁了OTP头文件
7)完成步骤6后尝试刻录OTP图像文件。
但在燃烧的图像文件期间,我收到错误。我附上了错误屏幕镜头请帮我解决这个问题。
迫切需要帮助。
感谢和问候
rohit.
设备:
嗨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标题的一部分。因此,我强烈建议您尝试将Binary更小或等于24320字节,然后尝试使用您已经提到的程序加载到OTP中的更新固件。为了获取有关辅助引导加载程序和高级引导加载程序的详细信息,请从我们的支持页面检查对话框用户手册UM-B-012。
谢谢,PM_DIALOG.
嗨pm_dialog,
感谢你的快速回复,
我强烈建议你把二进制数缩小到24320字节,
意味着怎么办?我试过但仍然面临同样的问题。
而且我还经历了UM-B-012用户手册,我没有从文档中获得清晰的图片。
如果您有助于我理解解决我的问题,这对我来说非常有帮助。
在“OTP内存中的偏移量”字段中要设置的偏移量是多少?默认值是0x2000。
我也试图加载.hex文件可能是十六进制文件有点较大,所以我面临的问题。
你能帮我把。hex转换成。bin文件吗?在SDK 5.0.4中我没有得到任何工具来执行
感谢和问候
rohit.
嗨rajapurerohit,
我的意思是尝试减少应用程序代码,因此在构建代码时,输出二进制/十六进制图像应小于24320字节。这取决于您的应用程序,因此尝试删除您未使用的代码片段并优化代码。没有任何可用的应用程序将十六进制转换为bin,但请注意,您能够加载到SmartSnippets Toolbox中的HEX或BIN文件,并且将自动完成转换。
谢谢,PM_DIALOG.
嗨pm_dialog,
谢谢你的回复,
我删除了未使用但仍面临的所有代码片段。
如果我想刻录.bin文件,那么我在哪里得到它?
因为对于所有SDK项目和我的自定义项目,我只有.hex为什么?
我在哪里可以获得hextobin实用程序?
感谢和问候
rohit.
嗨rajapurerohit,
当我在上一篇文章中提到时,SmartSnippets Toolbox支持十六进制和BIN文件,以刻录OTP / SPI闪存。我们不提供任何应用程序将二进制文件转换为十六进制。keil IDE生成十六进制文件,但如果要使用BIN文件,可以搜索它可以执行此操作的在线应用程序。请注意,十六进制文件无法将固件下载到OTP中的问题。如果您更新的固件的大小少于24320字节?
谢谢,PM_DIALOG.
嗨pm_dialog,
谢谢你的快速回复,
是的,我们减少了代码片段,但我仍然面临同样的错误。
"所选文件的数据大小加上偏移量不应超过地址0x47000 "
我把它附在了第一个帖子上。
感谢和问候
rohit.
嗨rajapurerohit,
我无法复制您的问题,因此您可以在尝试将更新的固件下载到OTP中时提供智能片段的屏幕截图吗?哪个是缩小图像的大小?
谢谢,PM_DIALOG.
你好pm_dialog,
我已经分享了我的代码片段,请注意以下链接。
https://drive.google.com/open?id=1Jy3CQlrmL1jXnAFUf5gGoQQWTm8OZ_0q
还有附加错误消息图像。请帮我解决我的问题。
这非常紧急。
感谢和问候
rohit.
嗨rajapurerohit,
正如我在之前的文章中提到的,在OTP中编写固件的可用区域是24320字节。我运行并构建了您的项目,二进制映像是25900字节,这比可用区域长,所以您的固件将覆盖OTP头。请尽量减小你的固件的尺寸。如果减少二进制映像,那么如果您希望为高级引导加载程序引导,则应该将0x12345ABC值存储到OTP的x47F10地址中。请参见UM-B-012用户手册中的表1。但首先,你应该缩小二值图像。
谢谢,PM_DIALOG.