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.

[参考译文] MSP430FG4616:使用 CCS 编译器为 C 语言中的定制 BSL 例程分配绝对地址

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1226107/msp430fg4616-assigning-an-absolute-address-to-a-custom-bsl-routine-in-c-using-ccs-complier

器件型号:MSP430FG4616
主题中讨论的其他器件: MSP430F5529、MSP430F4619、 MSP430F5438A、MSP430G2553

。 我使用的是具有91k 闪存的 MSP430FG4616。 我想编写一个定制 BSL 例程、以下载始终位于上部闪存中的新固件。 设备有91K 的内存,但我只使用它的一小部分用于应用程序代码,约8K。 我想做的是从一个串行端口中读取新代码(8K)、将其写入闪存的一个未使用部分、比如说0xA000、然后我可以使用校验和等来检查整个新代码映像是否正确 最后、擦除位于较低存储器中的原始代码、并将其替换为存储在0xA000处的新映像。

如何指定自定义 BSL 代码地址来执行此操作。 我是在代码中执行还是在链接器指令中执行该操作。

谢谢

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

    Jerry、您好!

    请参阅此资源以了解自定义应用端 BSL --请在此页上查找 MSPBOOT: www.ti.com/tool/MSPBSL。   

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

    杰斯,

    非常感谢您的答复。 这是一项很棒的信息、也是我想要做的事情、但是、没有任何示例适用于 MSP4304xx 类型。 此外、主机示例还可用于其他 TI 处理器、如 MSP430F5529。 我的主机是一台 Windows PC。 我必须进一步查看它、看看我可以使用什么或是否可以使用它。

    我看到代码针对 BSL 代码例程使用了第二个 ISR 映射。 我还想知道如何将过程地址设置为绝对地址。 例如、如果我有一个过程;

    void myroutine (void) 并且我希望它驻留在特定的位置、例如0xA000、如何操作?

    谢谢

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

    大家好、除了上面的问题、我曾尝试编译名为 '4513F5438A_BSL'的定制 BSL 的示例代码。 我将属性中的目标更改为 MSP430F4619、但收到以下链接错误。 他们似乎是 SFR 的,我检查了430.h 文件,他们似乎是在他们的定义,所以我不知道为什么错误?

    我想做的是使用双映像自定义 BSL、该 BSL 将在 MSP430F4616-19 (大存储器)中运行、并使用使用使用 UCA0的 UART。  


    ****项目 MSP430F5438A_BSL ****的配置调试构建

    "C:\\ti\\ccs1011\\ccs\\utils\\bin\\gmake"-k all

    构建目标:"MSP430F5438A_Bsl.out"
    调用:MSP430链接器

    第一个引用了未定义的
    符号的输入
    ---------------- ----------------
    CRCDIRB_L
    CRCINIRES
    PADIR_L
    PASEL_L
    SYSBSLC ./BSL430_Low_level_Init.obj
    sysctl ./BSL430_Low_level_Init.obj
    TA0CCR0
    TA0CCR1
    TA0CCTL0
    TA0CCTL1
    TA0CTL
    TA0R
    UCSCTL0
    UCSCTL1
    UCSCTL2所示
    UCSCTL4
    UCSCTL5

    错误#10234-D:未解析的符号仍存在

    错误#10010:链接期间遇到错误;未生成"MSP430F5438A_BSL.OUT"
    gmake:***[MSP430F5438A_BSL.OUT]错误1
    gmake:由于错误、未重制目标"all"。

    ****构建完成****