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.

[参考译文] MSP430F5438A:主存储器引导加载程序-程序代码之外的问题

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1439622/msp430f5438a-main-memory-bootloader---outside-of-program-code-problem

器件型号:MSP430F5438A

工具与软件:

大家好!

我正在尝试使用主存储器引导加载程序。

通过检查参考项目、我创建了"MSPBoot"和"MSPBoot" App_Simple。
首先、我将"MSPBoot"代码写入微控制器、然后我 App_Simple 使用差分下载方法将"MSPBoot"代码写入微控制器。

我可以使用 MSPBoot 运行一个简单的 LED 闪烁项目。
我也可以使用中断(矢量重定向按照预期工作)。
引导加载程序和应用程序可以成功一起运行。

但是、随着应用程序代码复杂性的增加、在某种程度上、应用程序代码将停止工作。
我收到错误:
"在没有可用调试信息或程序代码之外的地址"0xf0000"处中断。"
这里的地址是随机生成的。
有时操作以"在没有可用调试信息的地址"0xfcfc"或程序代码之外的中断"停止。
有时操作会因"地址"0xfd22"处的中断(没有可用的调试信息)或程序代码之外"而停止。

我能够确定问题发生的位置。
当闪存段使用32752字节时、APP 正常工作;但当闪存段使用32756字节时、APP 不工作。
只添加一行代码会将和增加4字节
我收到错误消息"在地址'0xXXXXX'处中断、没有可用的调试信息、或者超出了程序代码。"

可能是关于堆栈问题。  我们 应拆分 RAM 区域。
但是、在引用的 MSPBoot 和 App_Simple 项目中、RAM 区域不会拆分。
两个项目使用相同的 RAM 区域。

我无法同时运行应用软件和引导加载程序软件的原因可能是什么?
如果您能提供帮助、我将不胜感激。
谢谢。

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

    您可以首先调试应用代码吗? 您可以使用 PC 跳转到应用代码。 如果可以正常工作、那么 BSL+app 可能会有一些问题。

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

    下面是直接设置 PC 的步骤

    步骤1:直接更改 PC 值

    步骤2:按 Enter 键。 然后、它将跳转至相关地址

    若要查找应用代码主入口、您可以在.map 文件中找到:

    如果要同时调试 BSL 代码和应用代码、请:

    1.先下载 BSL 代码

    2.执行以下更改后的第二个下载应用程序代码。 然后、您可以同时保留 BSL 代码和应用代码。