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.

[参考译文] CCS/MSP430F6779A:定制引导加载程序设计帮助

Guru**** 2535750 points
Other Parts Discussed in Thread: MSP430F6779A, MSPBSL

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/767246/ccs-msp430f6779a-custom-boot-loader-design-help

器件型号:MSP430F6779A
主题中讨论的其他器件: MSPBSL

工具/软件:Code Composer Studio

您好!

我正在尝试根据   CCS 中的 MSPBSL_CustomBSL430 1_01_00_00源代码为 MSP430f6779a 器  件构建自定义引导加载程序(版本:7.4.0.00015)。 在 BSL430_Low_level_Init.asm 中,我对 BSL 保护功能进行了必要的修改,以根据引脚 P2.2将控制器切换到 BSL 模式(请确认我是否可以这样写)。 遗憾 的是、BSL 未按预期工作。此外、还注意到.JTAGLOCK_KEY 段未放置在输出文件中。

如需参考、请附加 zip 文件、其中包含 BSL430_Low_Level_Init.asm、BSL_lnk_msp430f6779a.cmd、output.map 和 output .txt 文件。 请帮助。

此致

Sreenekanth MKe2e.ti.com/.../1401.BSL.zip

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

    你好,Sreenekanth MK,

    关于 BSL 的问题未按预期工作

    我根据 P2.2检查您的 BSL 保护功能、它是否正确使用。 而.cmd 文件是正确的。

    您能给我更多 有关 MCU 运行情况的现象吗?  

    2.关于.JTAGLOCK_KEY 不会放置在输出文件中

    请检查您的代码 中是否使用了预编译指令:#pragma DATA_SECTION (JTAGLOCKKEY、".JTAGLOCK_KEY");

    您可以在随附的文件中找到它、也  可以在我们的示例 code.e2e.ti.com/.../BSL430_5F00_API.c 中找到该文件

    伊斯天

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、伊斯天、
    感谢您的回复和确认 BSL 保护功能。
    关于 BSL 的问题未按预期工作
    加载 BSL 后、我加载了 LED 闪烁 PGM。 但在输入引脚(P2.2)的所有条件下、它将使程序闪烁(不保持在 BSL 中)。

    2.关于.JTAGLOCK_KEY 不会放置在输出文件中
    是的、这样就解决了这个问题。 但仍不会将 BSL 签名放在输出文件中。 如果您看到低级 init.asm 文件、则会在其中定义 BSLSIG 的段(.sect ".BSLSIG")。 那么、为什么链接器跳过其放置?? 这是否与 TI 编译器/链接器有关?

    我更喜欢使用 CCS (免费版)。 如果您看到 IAR 版本链接器输入文件、您可以看到其中定义了一个带有不同复位矢量的段复位。
    -Z (code) reset=FFAE-FFF 为什么会这样??

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

    你好,Sreenekanth MK,

    关于 BSL 的问题未按预期工作

    您可以从图片中看到、有两个分支、程序将跳转到用户代码。 即使 BSL 函数正常也是如此。 请先检查。

    2.关于你的单词“是的,解决了这个问题。”

    什么解决了什么?   

    2.关于-Z (code) reset=FFAE-FFF 为什么会这样??

    我需要稍后检查。 我打开另一个不同的示例代码、它是:-Z (代码) reset=FFFE-FFFF

    3.我的建议:

    请使用 TI 示例代码检查您的其余代码、以确保您只更改 BSL 保护函数。

    您希望 实现什么功能? 为什么不考虑主存储器中的自定义引导加载程序

    4.我的问题:

    BSL 代码保存区域为2K。 从.map 文件中、我们可以看到使用 CCS 编译的代码大小超过2K。 因此、当您下载用户代码时、如果您不更改.cmd 文件、它可能涵盖 BSL 代码的一部分。

    我建议您在调试时从存储器中查看以下三个方面:

    1.下载新代码时是否更改 BSL 代码。

    2. BSL 函数是否根据我们的应用手册跳转。

    3.用户代码是否涵盖 BSL 代码。  

    此致

    伊斯天

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

    你好 ,Sreenekanth MK,

    此问题是否得到解决? 如果是、请单击  此已解决我的问题 按钮 

    伊斯天

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

    2) 2)是... 意味着在 c 文件中定义的段被放置在输出文件中的相应段中  

    #define JTAGLOCKKEY_SIZE (4)
    #pragma DATA_SECTION (JTAGLOCKKEY、".JTAGLOCK_KEY");
    const unsigned char JTAGLOCKKEY [JTAGLOCKKEY_SIZE]={0xFF、0xFF、0xFF、0xFF};
    #pragma RETAGLOCKKEY (JTAGLOCKKEY); 

    问题是在 lleowvelinit.asm 文件中定义的段。 存在 ELF 条件链接。 以显式放置段

    ;.retain;覆盖 ELF 条件链接
    ;并保留当前部分。
    ;.retainrefs;并保留所有具有的段
    ;对当前段的引用。

    指令。

    它解决了问题。

    感谢帮助。

    4)。 我已经谈到了这一点。 IAM 为我的程序定义了我的自定义链接器文件、因此我的程序不会接触用于 BSL 存储器的主存储器中使用的闪存区域。

    此致

    Sreekanth MK