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.

[参考译文] MSP430F2619:在 CCS 的代码中、我们可以找到加载了复位处理程序中存储的地址(应用代码地址或自定义引导加载程序地址的地址)的 PC 的位置。

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1476449/msp430f2619-where-in-the-code-in-ccs-we-can-find-the-pc-getting-loaded-with-address-of-application-code-address-or-custom-bootloader-address-which-resides-in-reset-handler

器件型号:MSP430F2619
主题中讨论的其他器件:UNIFLASH

工具与软件:

此处我们使用 CCS、 输出文件格式为 Intel Hex 格式。 在这种情况下、我们使用自定义引导加载程序代码(.hex 文件)下载应用程序代码。 使用 uniflash 软件下载引导加载程序代码。

使用 Uniflash 下载引导加载程序代码后、我们使用 UART 协议将应用程序代码十六进制文件发送到引导加载程序代码。 因此、在对应用代码进行编程之后、一旦应用代码启动

持续更新。 如果我们复位 MCU、在复位引导加载程序代码或应用程序代码后、将运行哪个代码? 换句话说、从代码中我们可以发现加载了引导加载程序或应用程序代码的 PC

存储器地址。

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

    复位向量指向类似"_c_int00"的符号 "、您应该能够在.map 文件中找到它。 [实际上(我刚刚尝试过)在 CCS v12.6中、全名被指定在.map 文件的开头(我以前从未注意到)。]

    在调试器中、我通常通过执行"硬复位"(功能区图标看起来有点像 IC)来找到它、然后看看它会带我去哪里。

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

    您的应用程序代码(和十六进制文件)将包括要写入向量的数据。 这是一个问题。 这样做、引导代码永远不会再次运行。 因此、引导代码必须决定如何处理这些数据。

    它必须至少保存应用程序复位矢量(0xfffe)、以便能够启动应用程序。 它无法将其存储在0xFFFE 处、否则应用程序代码将在复位时运行。

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

    大家好、

    复位后 PC 将跳转到的位置取决于编写自定义引导加载程序和应用代码的方式。 以我的经验为例、通常当您编写了自定义引导加载程序后、您会将其放入包含自己的矢量表的闪存中。 然后、通过 BSL 刷写需要的应用程序代码后、您可以将矢量表转发到由应用程序代码定义的表。  

    正如 Bruce 提到的、如果您已经有一些此代码、并且需要找到复位后跳到的位置、那么您可以连接调试器并单击 CCS 中的复位按钮、看看跳到的位置。 您也可以检查复位矢量中的值。