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.

[参考译文] MSP430F5328:如何根据 MSP430F5229源代码定制 MSP430F5328 BSL、以及如何在使用 BSL 脚本程序时知道 BSL 的安全密码

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1176716/msp430f5328-how-to-customize-msp430f5328-bsl-according-to-msp430f5229-souce-code-and-how-to-know-the-security-password-of-bsl-while-using-bsl-scripter

器件型号:MSP430F5328
主题中讨论的其他器件: MSP430F5229MSP430F5529

尊敬的 TI 团队:

我正在尝试定制 MSP430F5328 BSL 参考 MSP430F5229源代码、目前我不确定我所制作的包含 MSP430F5328存储器分配的代码是否正确。 我下载了 BSL 脚本程序进行测试、但我得到了如下错误 ACK、UART 似乎无法正常工作。 我不确定是因为 BSL 密码文件不正确还是不正确、目前密码位全部为0xFF。 我可以知道在哪里可以获得  MSP430F5328的正确 BSL 密码? 如何知道 BSL 脚本编写程序的编程成功与否? 非常感谢。

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

    您好 Kathy、

    这里有一些东西需要清除。 MSP430F5328默认配备 UART BSL、因此、如果您只想使用该 BSL、则无需进行任何修改。 如果您需要重新刷写默认 UART BSL、则可以在 CustomBSLSW 下载 文件夹中找到这些映像。  

    现在、就上述 BSLScripter 而言、您要将 RAM_USB_BSL 映像加载到没有 USB 的器件中、并希望它在 UART 上进行通信。 这没用。 您只需要调用 UART BSL。 此示例脚本可在 PC 上的 BSL 脚本编辑器文件夹中找到。 请查看[installpath]/BSL-SCRIPTER/ScriptExampleWindows/543x_uart 。  现在、该示例适用于 MSP430F543x、但过程相同。

    希望这对您有所帮助!

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

    尊敬的 Jace:

    感谢您的回复。

    实际上、MSP430F5328的默认 BSL 对我来说无法正常工作。 因为我的硬件使用另一个 UART 端口进行通信、所以我需要将 UART 端口更改为另一个端口。 这意味着我需要为 MSP430F5328定制 BSL。 目前、我使用 MSP430F5529 BSL 源代码来执行修改。 我刚刚将 lnk_msp430f5529.cmd 文件替换为 lnk_msp430f5328.cmd、并将文件 BSL_Device_File.h 中的 UART 引脚更改为另一个 UART 引脚 我想知道、在使用 MSP4305529源代码为 MSP430F5328定制 BSL 时、我还需要做任何其他事情。

    对于 BSL Scripter、实际上我 没有直接使用 USB 脚本编写器、我已经在5xx_USB 文件夹中制作了自己的 UART 脚本编写器。

    //下载闪烁 LED 应用程序
    //通过 UART BSL 传输到器件
    //
    日志
    ////////////////////////////////////////////////////////////////////////////
    //将 RAM UART BSL 写入器件
    ////////////////////////////////////////////////////////////////////////////
    模式5xx UART COM55
    //提供错误的密码
    //内存中的批量擦除
    RX_PASSWORD pass32_wrong.txt
    RX_PASSWORD pass32_default.txt
    //RX_DATA_BLOCK_FAST RAM_BSL_USB.txt
    //set_PC 0x2504
    延迟3000
    ////////////////////////////////////////////////////////////////////////////
    //启动 RAM UART BSL 应用程序
    //下载闪烁应用程序
    ////////////////////////////////////////////////////////////////////////////
    模式5xx UART COM55
    RX_PASSWORD .\pass32_default.txt
    RX_DATA_BLOCK .\blinkLED_f5328.txt
    SET_PC 0x4400

    但这种脚本仍然不起作用。 我知道我的脚本有什么问题吗? 非常感谢。

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

    Kathy、

    如需定制 BSL、请阅读完整的定制 BSL 应用手册、因为需要进行更多修改。 出于向后兼容性的原因、大多数"UART" BSL 实际上是基于计时器的 UART (而非(e) USCI)。  我建议从 IAR_v6_CC430F614x_USCI_UART 或 IAR_v6_MSP430F552x_TA_UART 源开始。 第一个用于 USCI 实现、第二个用于与目标器件同一系列的器件。 第二、您需要做的主要事情是更改 PI。  

    首先 、我将加载默认 MSP430F53xx USRT 映像、并将您的电路板跳至默认引脚、以便测试您的脚本并执行 BSL 事务。 一旦该功能已知且稳定、我将继续执行您的定制 BSL。 至于您的脚本、最好从6xx_UART 文件夹下的示例开始。 只需将目标编程映像更改为 F5328即可。 取消 CRC 校验、并确保更新 SET_PC 命令以启动器件的闪存、当然还有您实际连接到的 COM 端口。  

    如果您在完成 BSL 后只重置器件、我发现 BSL 更新运行得更顺畅。 我通常手动执行此操作、但您可以通过对无效的存储器空间执行 SET_PC 命令来执行此操作、这会导致复位。  

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

    尊敬的 Jace:

    感谢您的回复,您答对了,使用相同的系列源代码示例更容易定制,问题是没有相同的 MSP430F5328系列源代码示例:-)感谢您的建议,我将以  IAR_v6_MSP430F552x_TA_UART 源代码为例继续。 顺便说一下、我之前从未接触过 IAR、我是否应该为 MSP430安装 IAR IDE? 我应该购买 许可证吗? 我是否可以知道在没有 IDE 的情况下如何读取 IAR_v6_MSP430F552x_TA_UART 源代码? 非常感谢。

    现在、我在执行 BSL 脚本编写器测试时遇到问题、我认为复位后无法使器件在 BSL 停止。 这意味着无法设置 UART 通信。 您知道如何在重新启动后使其在 BSL 停止吗? 我尝试将 SET_PC 命令设置为无效的内存空间、似乎仍然无法正常工作。 非常感谢。

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

    Kathy、

    我无法评论 IAR 许可证和价格。 我相信他们有一个代码大小受限的 Kickstart 版本。 这对于 BSL 来说应该足够了。 过去、IAR 一直用于 BSL 编译、因为其编译器在大小方面比 CCS 更优化。  

    创建定制 BSL 并对其进行调试时、请采纳 CustomBSL 应用手册中的建议、并将代码放置在典型的应用闪存区域中、以便您可以实际调试代码。 完成所有内容并使其正常工作后、您可以将代码放置在 BSL 区域中。

    对于 BSL 脚本编写器问题、您必须先调用 BSL、然后才能开始与 BSL 进行通信。 如果您只是重置器件、它将正常启动。