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.

[参考译文] MSPM0G3519:UART1 存在问题

Guru**** 2895430 points

Other Parts Discussed in Thread: MSPM0G3519

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1625947/mspm0g3519-problem-with-uart1

器件型号: MSPM0G3519

您好:

我使用的是 MSPM0G3519 LaunchPad。 我正在进行基于 OTA 的固件升级。

我开发了自定义引导加载程序、通过在 10 秒内按 SW2、它将等待新固件、然后我将使用 docklight 以十六进制字节形式发送新固件、我正在正确接收新固件、我的 fimware 正在升级。  

但我的要求是进行基于 OTA 的固件升级。 为此、我在 uart1 处使用蓝牙模块、因此当我启用 uart1 并刷写代码时、闪存中的代码未运行。 我需要按下复位按钮。 但每次给 uart0 加电时、闪存中的代码都开始运行。 添加 uart1 后、为什么会发生此问题。 请帮助我解决这个问题。

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

    尊敬的 Dibyarekha:

    您的意思是、每次升级固件时、更新的程序都不会运行、并且只有在您按下重置按钮后、程序才能正常运行、我的理解是正确的吗?

    您可以尝试在通过 DL_SYSCTL_resetDevice () 更新固件后手动进行软件复位。

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

    您好、

    我使用的是自定义引导加载程序、我的引导加载程序代码闪存为 32KB、我运行的是引导加载程序代码、当我按下 S2 时、它应该等待新固件、新固件存储在 0x00058000 中。 收到完整固件后、我将收到的固件复制到 0x00008000。 然后我进行重置、新固件将运行。  

    如果我不按 S2、则无论 0x00008000 中有什么固件、它都在运行。

    当我通过 Uart0 收到固件时、它们都工作正常。

    即使在关闭重复,重置,重新启动在所有情况下与 Uart0 它运行良好.

    我的目标是通过蓝牙接收固件、因此将 BLE 模块连接到 uart1。 现在我在调试中测试,我完全收到了固件,它也在升级,没有问题。  

    但当我打开电路板的电源时、意味着我将拔下 USB 电缆并再次连接到笔记本电脑、那么无论有什么代码、它都无法运行。 当我按下复位按钮时、只有它开始运行。

    当我发送固件时按 S2、它不是在升级。 我不理解正在发生的事情。 使用 Uart0 接收固件时、不会发生这种情况。  

    我尝试将 BLE 模块连接到 Uart0、但它没有接收任何数据、只有使用 Docklight 通过编程电缆接收数据。

    如果我正在调试、那么它就可以正常工作。  

    只是我打开,调试,然后每次我重置,它的工作正常。

    只有在关闭电源的情况下才会工作  

    请帮帮我。

    我无法理解在开机时发生了什么  

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

    您好、

    我已经删除了  

    NVIC_EnableIRQ (UART_0_INST_INT_IRQN);从我的代码中、代码在上电时运行。
    但在开机时、当我进行固件升级时、它无法正常工作。
    但当我使用 Uart0 时、每次加电时固件升级都正常工作。
    使用 uart1 时、仅在调试模式下可以进行固件升级。
    现在区别是什么、如何解决该问题。
    我正在接收固件、但 jump_to_application() 不工作。 在调试模式和上电模式下、相同的代码使用 uart0。 但使用 uart1 时、只能在调试模式(不是上电模式)下正常工作
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    您将哪些引脚用于 UART1 TX 和 RX 引脚?

    请注意、PA18 是默认的 BSL 调用引脚、如果在 MCU 上电时检测到 PA18 为高电平、则 MCU 将进入 ROM 引导加载程序代码、而不会跳转到应用程序代码。 因此、如果 PA18 用作任何其他外设功能、您可以参考 MSPM0 设计流程指南(修订版 D)的第 7.3 节 来禁用 PA18 BSL 调用函数。

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

    PA8 和 PA9

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

    谢谢、我的问题得到了解决。 在开机时,我收到垃圾数据,这就是为什么它不工作。 我发现了这个问题。

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

    您好、

    DL_FlashCTL_eraseMemory 不起作用。 在调试模式或上电情况下、第一次只能写入、之后无法写入。 相同的字节写入是有效的、但不同的字节写入是无效的。

    请提出建议。 我被卡住了

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

    您好、

    我正在刷写代码、发送固件后、新固件正常工作。 我再次重新启动电路板并发送另一个固件、其一些字节与之前的固件相同、只有这些字节正在写入、新字节不会写入。 我正在擦除存储器并写入、但我怀疑存储器没有被擦除。  

    调试它的工作情况。 在调试模式下、默认存储器为 0xFF。 新数据正在写入。 但一旦数据被写入、下次我要擦除和写入它不起作用。 任何设置更改,我需要做它或正在发生什么. 为什么擦除无法正常工作? 请帮帮我