跳过主要内容

SmartBond PLT-尝试将自定义数据写入内存时,严重的错误/行为不当

DA14530和DA14531

7个月前

发表尼尔55分 4个答复
0个投票

我们的固件图像取决于生产线上提供的配置数据。配置数据旨在写入图像的“ .constdata”部分。例如。。“通用” .bin映像包含来自0-0x4000的代码/数据,我们希望根据扫描生产线上的条形码在0x3800处编写16个字节部分。

PLT软件(SmartBond生产线工具v_4.4.2)将 *出现 *支持这一点...它允许编写固件图像和“自定义内存数据”部分。

Unfortunately when both of these options are selected, the PLT appears to skip writing the firmware completely even though the tool claims the tests have passed!(这是基于使用CLI工具回读OTP内容的基础。)

这是相关的配置设置。

CFG1

CFG2

这种行为有解决方法吗?也许该工具无法应对重叠的内存部分,我只需要硬编码配置数据即可在地址的顶部远离固件图像?(我希望它足够聪明,可以合并不同的部分,但也许不是....)

7个月前

pm_dialog

嗨,尼尔。马克穆伦,

感谢您在线发布。让我检查这个问题……同时。您可以hare params.xml文件吗?

谢谢,pm_dialog

7个月前

尼尔 55分

当然 - 请参阅附件

附件 尺寸
params.zip 6.87 kb

7个月前

尼尔 55分

作为参考,我还将运行生产工具并提供“ A987654”作为条形码输入后获得的IBEACON_531.bin文件和内存转储(MEM_READ)。您可以看到PLT已在0x3C2C上编写条形码数据,但完全忽略了图像和标题。

不幸的是,我目前没有“空白”设备,但下周应该能够进行更多测试。

附件 尺寸
binfiles.zip 11.62 kb

7个月前

尼尔 55分

经过更多的实验,这是一些结论...

1)PLT软件不允许编程重叠的图像和“自定义内存”部分到OTP。这似乎是可以理解的限制(根据定义,OTP中的每个地址只能写一次),但是鉴于“个性化”具有自定义数据的单元是如此普遍,因此大多数生产系统都能在编程之前合并重叠区域的内容。PLT软件报告“成功”的事实,即使显然未能执行请求的操作更令人担忧。

2)解决方法是在图像箱文件的边界之外移动“自定义内存”部分。这需要对配置进行一些其他调整,这些调整在您查看数据表中的引导序列时更有意义(图20)...

- “燃烧图像长度为OTP标头(OTP DMA长度)需要不受控制,并且需要手动设置DMA长度以覆盖additonal自定义内存部分。尽管并不明显,但“ DMA长度”框位于Hex和Hex and and and and and和接受14531的最大值为“ 1ff0”。(尝试使用更大的值会导致编程时 *运行时 *错误:-()

- 我最终为所有部分设置了“无检查”选项 - 不确定这是否是必要的。

另一条评论 - 很烦人的是,da14531启动序列无法执行OTP内容,而没有编写“应用程序标志”,因为这使得不可能回复OTP的内容以验证它们是正确的,而它们是正确的。还允许应用程序运行。如果可以在标志中放置一个不同的“魔术”值,这将导致OTP在启动步骤6之后选择执行,这是可取的。