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.

[参考译文] MSPM0G3507:辅助 BSL -更改调用引脚/停用 GPIO 调用/更改为软件调用/boot_config.c/.h

Guru**** 2531950 points
Other Parts Discussed in Thread: MSPM0G3507, SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1414218/mspm0g3507-secondary-bsl---change-invoke-pin-deactivate-gpio-invoke-change-to-software-invoke-boot_config-c-h

器件型号:MSPM0G3507
主题中讨论的其他器件: SysConfig

工具与软件:

嘿!

我正在使用辅助 BSL (secondary_BSL_uart_lp_MSPM0G3507_nortos_ticlang)、因为我想将 UART-BSL 引脚从默认 UART0更改为 UART1。

可以使用我在"ti_msp_dl_config.h"中进行的修改。

现在我要更改调用引脚/停用 GPIO 调用/更改以进行软件调用。

我找到要修改代码的唯一位置是 boot_config.h (L.63-74)。

/* Defines for BSL UART and I2C interface pins */   // Werte werden im Typedef Struct BSL_Config BSLConfig gesetzt
#define DEF_UART_RXD_PAD                                                 (0x16)     // PINCM22
#define DEF_UART_RXD_MUX                                                  (0x2)     // PIN FUNCTION UART0_RX
#define DEF_UART_TXD_PAD                                                 (0x15)     // PINCM21
#define DEF_UART_TXD_MUX                                                  (0x2)     // PIN FUNCTION UART0_TX
#define DEF_I2C_SDA_PAD                                                   (0x1)
#define DEF_I2C_SDA_MUX                                                   (0x3)
#define DEF_I2C_SCL_PAD                                                   (0x2)
#define DEF_I2C_SCL_MUX                                                   (0x3)

#define DEFAULT_BSL_PIN_INVOCATION_DATA0                       ((uint8_t) 0xa8)     // 1010 1000 - BSLIVK_LVL = HIGH - BSLIVK_PAD_NUM = 40 (IOMUX PINCM register Wert)
#define DEFAULT_BSL_PIN_INVOCATION_DATA1                       ((uint8_t) 0x12)     // 0001 0010 - BSLIVK_GPIOPORT = Port A - BSLIVK_GPIOPIN = 18 -> PA18

但这一切都是关于默认 Configs。 尽管如此、我是否可以更改这些定义、或者是否有任何其他文件或位置需要我执行辅助 BSL 调用配置?

有一个完美的节点。 每次我构建项目时、文件"boot_config.c/.h"都将在"Debug"文件夹中重新生成、我的所有更改都将丢失。

如何防止这种情况发生?

提前感谢!

Matze

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

    boot_config.c 中没有以下代码(第80-83行):

        .interfacePins.UART_RXD_pad_num    = DEF_UART_RXD_PAD,
        .interfacePins.UART_RXD_PF_mux_sel = DEF_UART_RXD_MUX,
        .interfacePins.UART_TXD_pad_num    = DEF_UART_TXD_PAD,
        .interfacePins.UART_TXD_PF_mux_sel = DEF_UART_TXD_MUX,
    与我在 ti_msp_dl_config.h 中所做配置相同的配置(第49行-第56行)
    #define BSL_GPIO_UART_TX_PIN (22U)      // PB6          // PINCM23      Übergangs-Config
    #define BSL_GPIO_UART_RX_PIN (23U)      // PB7          // PINCM24
    #define BSL_GPIO_UART_TX (2U)
    #define BSL_GPIO_UART_RX (2U)
    /* Definitions for UART */
    #define BSL_UART (UART1)
    #define BSL_UART_INTERRUPT_NUM (UART1_INT_IRQn)
    对我来说、看起来我在两个文件中创建了相同的配置...

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

    尊敬的 Matze:

    1.要更改  UART-BSL 管脚、需要更改 Flash NOMAIN 区域的配置。 建议在 SysConfig 中调整 UART 引脚。  

    2. boot_config.c 和 boot_config.h 文件由 SysConfig 生成。 建议根据 SysConfig 配置其内容。 否则、您可能需要在 main.c 文件中重新定义相应的参数。

    boot_config.c/h 中的内容对应于闪存 NONMAIN 的配置、它决定了将选择的默认 BSL 接口。   ti_msp_dl_config.h/c 中的内容对应于特定的外设配置。

    4.有关 BSL 的更多详细信息、请参阅 MSPM0引导加载程序用户指南(TI.com)

    此致、

    Pengfei

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

    尊敬的 Pengfei:

    感谢您的回答!

    1. SysConfig 是我更改此配置的首选。 但 SysConfig 不允许我选择所需的引脚、因为我的配置需要 BSL 的 UART1引脚、从而使辅助 BSL 不可避免。 此外、据我所知、此示例工程(secondary_bsl_uart_lp_MSPM0G3507_nortos_ticlang)中停用了 SysConfig 文件生成。 我认为 secondary_Bsl.syscfg 中的此代码行:"ProjectConfig.genDisable = true;"
    2. 我希望上面提到的代码行会禁用 boot_config.c &.h 的生成:"ProjectConfig.genDisable = true;"
      1. 我如何在每次编译工程时防止覆盖/重新生成这些文件?
      2. 或者、是否可以使用辅助 BSL 引脚配置从 SysConfig 生成这些文件而不覆盖所有其他辅助 BSL 配置?
      3. "重新定义 main.c 文件中的相应参数"是什么意思?
    3. 只是为了确保我正确理解您:
      1. 您建议在 boot_config.c 和.h 中进行与辅助 BSL 配置相关的所有更改?
      2. Luke Ledbetter 在我之前的支持请求 MSPM0G3507中建议更改"ti_msp_dl_config.h"中 的 BSL UART 设置:BSL、LIN、UART0 - 他写的引脚选择重叠:
        1. "在 ti_msp_dl_config.h 中、将第48-59行更改为用于您的 UART 配置。"
      3. 那么、我应该选择哪种解决方案?
      4. 或者我必须在这两个文件中更改我的配置吗?
    4. 谢谢、我已经知道本文档、并在其中找到了许多有用的信息。 但似乎本文档没有全面介绍深入的特殊功能。 这是可以的、因为 TI 的支持者是非常乐于助人且乐于助人

    谢谢。此致

    Matze

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

    尊敬的 Matze:

    1、2。 若要禁止生成 boot_config.c/h 文件、请遵循以下说明。 如果启用了这些文件的生成功能、CCS 将首先删除原始文件并根据配置生成新文件。  

    3.如果 UART0适合您、您只需修改 boot_config.c/h 即可选择所需的引脚。 如果您要使用 UART1/2作为接口、则需要使用次级引导来更改 UART 接口配置。 boot_config.c/h 中有关 UART 的配置无效、因为调用了次级 BSL 例程。 并且该接口将在 ti_msp_dl_config.c/h 文件中进行配置。  

    因此、根据您的要求、您 只需要对 UART 配置更改 ti_msp_dl_config.c/h 文件。

    希望它对您有所帮助!

    此致、

    Pengfei

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

    大家好、感谢 Pengfei、

    1.,2.:啊,好的。。。 我认为这不会产生任何影响、因为无论如何都会禁用 SysConfig 生成。

    3、是的、我需要将 UART1用于 BSL、因为 LIN 需要 UART0。 但是、如何分别从 PA18获取 BSL 调用引脚配置、完全停用 GPIO BSL 调用并仅激活/使用软件 BSL 调用? 我需要将 PA18用于 BSL UART1_RX、但它由默认的 GPIO BSL 调用引脚功能占用。

    非常感谢您的帮助以及有关为何使用/修改"ti_msp_dl_config.c/h"而不是"boot_config.c/h"的背景信息。

    此致、

    Matze

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

    尊敬的 Matze:

    1、不是。 "ProjectConfig.genDisable = true;"这一句似乎只对产生影响 启动和链接器文件生成 . 这将阻止我们选中下面的框。 但是、每次构建工程时仍会生成 boot_config.c 和 h。 我的最后一个回复中显示了禁用它们生成的方法。

    2.您是否需要调用软件 BSL? 或者、由于 UART1_RX 被占用、您只想禁用 PA18的调用功能。 实际上、如果您只想将 PA18用于其他函数、则可以通过以下方式选择另一个 GPIO 调用引脚:

    此致、

    Pengfei

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

    大家好、感谢 Pengfei、

    1. 好的、谢谢!
    2. 是的、我的器件仅通过3根导线连接到 BSL 主机- UART RX、TX、GND。 因此、我无法使用 GPIO BSL 调用从主机到目标的固件更新。
    3. 我没有使用 SysConfig 生成、因为它已停用-我如何以及在哪个源文件可以更改为另一个 GPIO BSL 调用引脚、重新停用 GPIO BSL 调用并激活/使用软件 BSL 调用?

    谢谢。此致、

    Matze

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

    尊敬的 Matze:

    1.禁用 GPIO BSL 调用:

    要禁用 GPIO BSL 调用、您需要更改  NONMAIN 的 BOOTCFG1寄存器中字段的 BSL_PIN_INVOKE。 在源文件方面、它是 boot_config.c 文件的第52行(secondary_BSL_uart_lp_MSPM0G3507_nortos_ticlang 示例)。 注意、 CRC 需要根据上述寄存器值进行计算。  

    2.更改 GPIO BSL 引脚:

    保持启用 GPIO BSL 调用状态、并更改 boot_config.h 文件的第73-74行。 注意、  需要根据 BSL 调用引脚的变化计算 boot_config.c 中的 CRC。  

    对 NONMAIN 的任何修改都需要重新计算 CRC 寄存器值、如果该值不正确、则会生成错误、甚至使 MCU 处于锁定状态。 因此、我们建议您首先由 SysConfig 生成 boot_config.c 和 h。 如果稍后要调整这两个文件、可以关闭第1代底部。  

    3.软件/应用程序请求 BSL 调用:

    您可以参考 bsl_software_invoke_app_demo_uart_lp_MSPM0G3507_nortos_ticlang 示例。 并阅读 README.md 文件以了解软件 BSL 进度。 由于在您的情况下、PA18会重复用于其他函数、因此您需要首先禁用 GPIO 调用功能(根据步骤1)。

    此致、

    Pengfei

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

    尊敬的 Matze:

    这个线程还有其他问题吗? 我将首先关闭该主题、  如果您有任何其他问题、可以重新启动该主题。

    此致、

    Pengfei