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.

[参考译文] RTOS/TM4C129ENCPDT:关于引导加载程序

Guru**** 2442090 points
Other Parts Discussed in Thread: LMFLASHPROGRAMMER, UNIFLASH, EK-TM4C1294XL

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/626004/rtos-tm4c129encpdt-regarding-bootloader

器件型号:TM4C129ENCPDT
主题中讨论的其他器件:LMFLASHPROGRAMRUNIFLASHEK-TM4C1294XL

工具/软件:TI-RTOS

您好!

我们使用"TM4C129ENCPDTT3"构建了 USR 物联网、上周获得了装配电路板、我们正在准备好该电路板。 由于此 IC 附带初始 ROM 引导加载程序、我们希望通过将 UART0连接到 minicom/HyperTerminal 在屏幕上显示一些消息、但未找到任何消息。

在我们开始调试电路板之前、我们有几个问题、  

1.串行终端上是否会打印任何引导消息?

2.如果是,您可以向我发送任何快照以供参考吗?

参考链接、

e2e.ti.com/.../2127932

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

    您好、南迪什、

     是的、基于 ROM 的引导加载程序将使用 UART0。 但串行终端上没有打印引导消息。  

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

    您好、Charles、

    感谢您的澄清。  

    由于 UART0上没有消息、如何评估 IC 是否正常启动以及如何对电路板进行初始编程或验证?

    使用 LMFlashProgrammer?

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

    南迪什、

    您需要在 PC 上编写外部应用程序(甚至使用其他 ARM 器件、例如基于 Launchpad)、这将管理将固件发送到您的全新 IC。

    如果您阅读了引导加载程序手册的第3.3章、您将看到可以发送多条命令、目标将使用记录的答案进行回复。

    www.ti.com/.../spmu301d.pdf

    此致

    布鲁诺

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

    您好、南迪什、

     Bruno 是否回答了您的问题? LM 编程器可用于将固件发送到您的 MCU。 您将在配置选项卡中配置串行(UART)接口。 指定您的 COM 端口和波特率。 在"Program"选项卡中、指定要传输到 MCU 的二进制文件、然后点击"Program"按钮。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    查尔斯
    在我们讨论该主题时、我注意到后来的 Uniflash 没有该串行端口选项。 更新的 SmartRF Uniflash2确实如此、但似乎不接受 TM4C 系列成员。
    在这方面、LMFlash 是否有"降级"?
    我还想说一点:一旦您通过串行/引导加载程序对原始 MCU 进行编程、假设它将标记这些控制字节以指示它现在具有固件、那么说通过串行/引导加载程序上载固件对于该芯片不再是一个选项是正确的吗?
    此致
    布鲁诺
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Bruno、
    我永远不记得 Uniflash 能够通过串行端口下载代码。 因此、我不认为这是降级。 对于另一个 MCU、我使用了一个基于 PC 的单独程序、该程序是为了与引导加载程序通信而编写的。 LM 程序将所有内容捆绑在一起、为用户带来极大的便利。

    对于第二个问题、如果您有基于闪存的 UART 引导加载程序、则仍可以通过串行端口下载/上传。 但对于基于 ROM 的引导加载程序、它将不起作用、因为0x0和0x4已使用非 F 值进行编程。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好、Charles 和 Bruno、

    感谢您提供相关信息。  

    我们将尝试使用 LMFlashprogrammer 编程简单的 LED 闪烁程序、如 Charles 所述。  

     我们将 LED 连接到 PH1和 PM1、任何可直接用于测试的示例二进制文件都将非常有用。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、南迪什、
    您可以在 Tivaware 中找到 hello 或 project0等简单示例、这两个示例都将切换 LED、但您需要稍微进行修改以配置 PH1/PM1、而不是在示例中使用不同的引脚。 在下方检查 /examples/boards/ek-tm4c1294xl
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Charles、

    感谢您的支持。 我们成功地闪存了示例 LED 闪烁应用、并且工作正常。

    想知道我们是否可以使用 UART 端口擦除闪存?

    我们是否必须在每次重新编程时擦除闪存?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    基于 ROM 的引导加载程序将检查地址0x4是否全部为 F 或 BOOTCFG 的 EN 位是否为零。 如果两者都为 true、则引导加载程序将与 LM 编程器交互以重新加载新的应用程序映像。 如果 EN 位为1且0x4处的闪存位置已经不是 F、则引导加载程序不会重新加载应用程序映像。 您将需要首先擦除闪存。 有关详细信息、请参阅数据表中的 BOOTCFG 寄存器。