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.

[参考译文] MSP430FR5962:固件更新问题

Guru**** 2439710 points
Other Parts Discussed in Thread: CC3200, MSP430FR5962

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1005847/msp430fr5962-firmware-update-issue

器件型号:MSP430FR5962
主题中讨论的其他器件:CC3200

各位专家、您好!

我正在尝试通过在链接器文件中创建分离存储器来实现固件更新。 对于应用程序存储器、我有一个是固定的、对于下载固件、我有一个固定的位置。

我开发了一款产品、该产品使用与 MSP430的射频通信与 WiFi 模块(CC3200)进行数据交换。 MSP430还与无线射频模块连接、以无线方式发送数据。

我所做的是在 CC3200中的用户位置刷写更新后的 txt 文件、并使用射频通信读取该文件并发送 OTA 数据和中断矢量数据。

我的链接器文件如下所示

//-P (code) boot_MEM=40A0-5FFF
//-P (code) app_MEM=6000-EFFF
-P (代码)代码=4000-FF7F、10000-23FF7
-P (code) copy_firmware=1D000-1D05E
-P (code) copy_backup=1D06E-1D136
-P (code) code_overwrite=1D146-1D20E
-P (代码) FRAM=1C106-1C156
-P (代码) FRAM_READ=1C158-1C1A8
//-P (code) download_memory=10000-1607F
//-P (code) backup_memory=16084-1C104
-Z (code) code_pad

从 WiFi 模块接收到的数据是正确的、我在写入应用程序区域后在定义的应用程序区域中写入了数据、我将跳转到应用程序区域的起始地址、但程序计数器或光标指向未知位置。 有人能解决我现在面临的这个问题吗?

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

    Manish、您好!

    让我看看我们是否可以在这个问题上获得一些帮助。

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

    您好 Dennis Lehman、

    是否有关于我的帖子的任何更新或您有任何建议? 如果您有任何建议、请告诉我。

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

    Manish、您好!

    很抱歉耽误你的时间。  我正在努力跟踪能够就这个问题提供指导的人。

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

    Manish、您好!

    要帮助隔离问题:

    1.是否跳转到复位矢量@ 0xFFFE 或代码入口点的实际地址?

    2.如果执行下电上电、代码是否正常工作?

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

    您好 Dennis、

    答案1 ----我将跳转到我的代码地址的入口点

    答案2:--不,如果我执行下电上电,我的代码将不起作用。

    我想再问一个问题,如果你认为我没有详细说明这个过程,请让我知道,以便我能更清楚地告诉你。

    无论如何,我认为我的帖子是描述性的,而且是这样。

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

    Manish、您好!

    我假设您正在执行与 "MSP430FRBoot -主存储器和 OTA 更新"中所述类似的操作。

    那么、您的系统是这样的吗?

    我需要更详细一点、例如、在跳转之后、您如何才能看到程序计数器的内容?

    您是否曾尝试通过临时替换仅切换 GPIO 引脚(禁用所有中断)的简单代码路由来确认跳转到正确的位置、并且当代码执行跳转时、您会看到 IO 引脚切换?

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

    您好 Dennis、

    您已正确假设、但我想添加一些更多详细信息。 我们已通过 GPIO 将一个射频模块连接到 CC3200、MSP430FR5962也是如此。 我们能够接收数据、并且我已经在调试模式下检查了我正在 MSP 的正确位置跳转的数据。 无论如何、我已经解决了这个问题、我已经在 IAR IDE 的编译器用户指南中进行了检查。我发现、如果我们在-z 中定义存储器位置、它将采用顺序方式、并且通过在链接器文件中进行更改来完成固件更新。 之前我通过放置-P 来分配内存、而不是通过放置-Z 来分配内存 感谢您的帮助和时间。

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

    Manish、您好!

    很高兴您能找到解决方案。