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.

[参考译文] MSPM0G1507:用于禁用 SWD 的 BCR 配置以及用于配置 UART 波特率的 BSL 配置

Guru**** 2465900 points
Other Parts Discussed in Thread: MSPM0G3507, MSPM0G1507, UNIFLASH, SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1467989/mspm0g1507-bcr-configuration-to-disable-swd-and-bsl-configuration-to-configure-uart-baudrate

器件型号:MSPM0G1507
主题中讨论的其他器件:MSPM0G3507UNIFLASHSysConfig

工具与软件:

尊敬的 TI 专家:

我正在进行一个基于的项目 uart_echo_lp_MSPM0G3507_freertos_ticlang 、但我已将目标设备更改为 MSPM0G1507 并将链接器命令文件更新为 mspm0g1507.cmd .

项目详细信息:

  • 设备: MSPM0G1507
  • SDK 版本: 2.1.0.03.

目标:

  1. 更改 BSL UART 波特率 最终目的 115200 (使用引脚 PA10和 PA11 )。
  2. 禁用 SWD 同时确保安全 BSL 更新函数保持可用 .

我目前对 BSL 的理解:

  1. 我的项目(使用默认设置 mspm0g1507.cmd )可以使用进行更新 BSL_GUI_EXE 工具 .
  2. 内部引导 ROM 先运行、然后利用 BCR 和 BSL 配置设置 、可以进行配置。 它也可以参考 .vtable 虽然我不确定。
  3. BSL 相关示例工程包含 boot_config.c 、它定义了 BCR 和 BSL 配置 、每个项目都有 存储器布局布线 全部添加到链接器文件中。 请查看附图
  4. BCR 配置 可以选择使用 启用或禁用 SWD .
  5. 内部引导 ROM 确定是否执行 内置 BSL 或使用 BSL 插件 .
  6. BSL 插件 Init 函数 、可用于 配置 UART 波特率 .
  7. BSL 配置 允许指定 次级引导加载程序 可以绕过内置 BSL。

问题:

  1. 默认情况下、引导 ROM 是否完全独立运行? 如果没有、它依赖什么 .vtable ? 如果是、该函数如何访问矢量表、同时考虑不同的项目位置 .vtable 在不同的位置?
  2. 为什么不同的项目具有不同的 SRAM 起始地址(0x202000000x20000000)? 是什么决定了这一点?
  3. 更改 BSL UART 波特率 、是否需要使用 插件 Init 函数 ? 如果是、我是否还需要提供 Send、receive 和 Deinit 函数
  4. 我应该如何修改链接器命令文件 (.cmd)纳入上述要求?

非常感谢您对这些问题的见解。

此致、

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

    庄先生、您好!  
    请允许我就您的两个首要问题咨询我们的团队。 至于最后两项、我建议查看 我们的 SDK 中的 bsl_software_invoke_app_demo_uart_LP_MSPM0G3507_nortos_ticlang 示例、以获取更多参考。
    此致、
    Diego Abad

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

    尊敬的 Diego:

    感谢您的答复。

    查看该示例后、我的理解是它演示了如何实现 应用可以主动将芯片置于 BSL 模式 (例如、通过0x22 UART 接收或检测到按钮按压操作)。

    不过、我的主要问题是: 如何将默认 BSL 波特率从9600更改为115200?

    • 为了实现这一点、我认为需要对进行修改 链接器文件、BCR 配置和 BSL 设置 .
    • 您能否确认这种方法是否正确、并指导我进行必要的更改?

    提前感谢!

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

    庄先生、您好!
    我的理解是、 通过初始化模块可以更改 UART BSL 引脚的波特率。 但是、让我在星期一向我的团队确认这一点。

    此致、

    Diego Abad

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

    庄先生、您好!
    1. ROM 在 BOOTRST 之后运行。 您可以假定这种行为独立于器件的任何配置。

    2.这是由项目设置决定的。 0x2020是 SRAM 不受保护的部分、而0x2000是 SRAM 的默认部分。

    对于最后两个问题、您可以通过 更改波特率命令来更改波特率。 如需更多信息、我将附加 MSPM0引导加载程序用户指南MSPM0引导加载程序(BSL)实现(修订版 C)

    此致、

    Diego Abad

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

    尊敬的 Diego:

    感谢您的答复。

    我还有几个问题想澄清。 您能进一步解释一下吗?

    1. 代替1。 对于BSL_interface项目中的链接器文件提到矢量表必须符合内部 BSL 矢量表的原因、我仍然感到困惑。 您能解释一下吗?

    2. 您能解释为什么标准的 MSPM0G3507项目从开始0x20200000、而 BSL 相关项目使用的是 SRAM0x20000000 吗?

      • 实际物理 SRAM 的地址是什么 MSPM0G1507 MSPM0G3507
      • 此差异如何影响内存分配?

    我非常感谢您的见解!

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

    庄先生、您好!
    1.这只是您需要遵循的一项要求。 这是一种设计选择。
    原因是 BSL 始终要求在 SRAM 中使用0x2000地址(在清除该段后)。 如果未在该区域中使用、BSL 将无法按预期工作。 两个 G 器件的实际物理地址为 SRAM、如 表1-2所示。 "SRAM Region Memory Map"(SRAM 区域存储器映射 )。 一个地址与另一个地址之间的区别在于 应用于访问的完整性检查类型。
    此致、
    Diego Abad

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

    尊敬的 Diego:

    任何频率 更改 BSL 密码 示例。 在修改它并重新计算之后 新 CRC 我不能这样做 成功刷写 进行编程。

    要进行故障排除、我尝试刷新 BCR 和 BSL 部分采用默认值 、与工厂常量匹配。 但是、在刷写时 .txt 文件中 消息流 UniFlash (选中"Erase main and NONMAIN memory")、完成此过程 仍然失败 .

    我附上了供参考的屏幕截图。

    您能指导我如何正确处理吗 集成了 BCR 和 BSL 部分 我的项目中并正确插入 更改 BSL 密码

    其他信息:

    • 我使用的是 uart_echo_lp_MSPM0G3507_freertos_ticlang 示例项目 对此进行分析 不包含 SysConfig .

    期待您的建议。

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

    庄先生、您好!
    我建议将此问题发布为另一个 E2E 主题。  
    此致、
    Diego Abad

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

    谢谢 Diego