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.

[参考译文] MSP430F5529:解码输出文件以创建自定义固件更新功能

Guru**** 2529560 points
Other Parts Discussed in Thread: UNIFLASH, MSP430F5529, MSPBSL

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1084846/msp430f5529-decoding-the-out-file-to-create-custom-firmware-update-function

部件号:MSP430F5529
《线程》中讨论的其他部件:UNIFLASHMSPBSL

您好,

最近,我使用 UNIFLASH 能够在主内存闪存中刷新引导加载程序/最小映像,并同时刷新另一个主应用程序映像,同时能够在主内存和主应用程序中使用中断来实现 USB。

为此,我使用 了 TI 提供的实用程序来生成主内存引导加载程序项目,并相应地修改了这些项目,然后使用 UNIFLASH 来刷新主应用程序映像和引导加载程序映像(从 CCS 生成的文件中删除)。 但为了使其正常工作,我必须选中“替换写入的内存位置,保留未写入的内存位置”选项,以便在我刷新引导加载程序时主应用程序映像保持闪存(我还必须确保最后刷新引导加载程序, 因此 PC 入口点从引导加载程序位置启动)。

但是,我计划将文件上传到云服务器,让服务器远程刷新现场的设备, 因此,云需要能够解码输出文件,以了解需要向哪些地址写入数据以及需要写入哪些值。

如何格式化输出文件,使 UNIFLASH 工具知道要写入的内存位置? 例如,我希望使用 JavaScript 或 Python 对输出文件进行解码,但我无法找到有关输出文件格式的详细信息。

谢谢!

尼古拉

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

    您好,

    TI-TXT 格式输出是您所需要的。 您可以从 CCS 为您的两个项目生成此信息。 您只需在“项目”->“属性”中启用 MSP 十六进制实用程序,然后在 MSP430十六进制实用程序子菜单中选择输出格式。

    您是否知道 MSP430F5529在默认情况下附带了 BSL (启动加载程序)? 这可以自定义,因为 BSL 写入闪存的特殊区域? 如果您的引导加载程序小于2K,则您可以将其放置在该区域以简化您的操作。  您可以在 www.ti.com/tool/MSPBSL 上的“步骤#:自定义您的 BSL”下找到更多信息 

    否则,如果要继续当前路径,请参阅上述同一 MSPBSL 页上的 MSPBoot 解决方案。 这是一个主要的内存引导加载程序解决方案,因此它将提供一些有用的信息。  

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

    好了,那么 TI-TXT 十六进制文件包含可以写入闪存区域开头的实际指令/操作代码? 我不必执行任何解码?

    谢谢

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

    尼古拉

    TI-TXT 文件的位置地址后跟数据。 假定数据是连续的。 如果有跳转,则会有另一个位置地址。 查看 CUSTOMBSL 软件下载中包含的二进制文件以获取示例。