This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CC2530:如何从 D51生成十六进制? (由于通过 A51生成十六进制时出现无法识别的错误)。

Guru**** 2466550 points
Other Parts Discussed in Thread: CC2530

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/1114294/cc2530-howto-generate-hex-from-d51-due-to-unidentifiable-bug-when-generating-hex-through-a51

器件型号:CC2530

太多的 CC2530器件在现场发生故障-系统因某种原因锁定。  我无法使用常规流程。


在检查所有选项后、所有这些选项都归结为使用"针对 C-SPY 的调试信息"生成代码。
我尝试禁用优化等。 非常强烈、该选项确实可以实现。
我通过将故障器件中的闪存内容读取到十六进制文件来检查这一点、然后在每次部分闪存更新之前将该文件重新加载到器件中、其中保护 NV 存储器和内部信息不被覆盖(闪存页120及以上(理论上、122及以上就足够了)。
一旦启用了"C-SPY 的调试信息"、错误行为就会消失。
与此同时、这是一个鸡肉和鸡蛋问题-当 C-SPY 被禁用时、我无法进行详细调试、而当启用 C-SPY 时、这个问题消失了。  它看起来像是嵌入式软件的 Heisenberg 原则。

无论如何、我希望继续自动生成十六进制文件。

我尝试了"Extra Output"选项卡、也可以在其中选中 tickbox、但不会生成"...A51"文件(项目名称已留空)。  当启用"具有运行时控制模块"时、无法选择该模块、但如屏幕截图所示、它仍然显示"次级输出:(对于所选格式、无)。  因此、这可能是一种 IDE 临界情况、即使"额外输出"实际上并不适用、也可以对其进行配置。

我目前看到的唯一替代方法是以交互方式对器件进行编程、然后将内容读回十六进制文件、清理该十六进制文件并将其用于对其他器件进行编程。  这需要几个手动干预:使用 IAR IDE 进行编程、使用闪存编程器进行回读、以及 PD 手动清理(/最终为此创建脚本)。

欢迎提出任何其他建议。

额外输出设置:

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Mario、

    我很高兴听到 您成功解决了您的问题。  我对"用于 C-SPY 的调试信息"如何改变行为或使用 d51文件生成十六进制图像的能力没有任何见解。  我建议 您联系 IAR 、进一步了解他们的链接器和可用选项。

    此致、
    Ryan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    似乎没有保存最后的工作区设置、A51文件与 D51文件同时生成。

    我现在需要验证这个十六进制文件是否可以包含 NV 闪存内容;-)。