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.

[参考译文] TM4C123BE6PM:如何加载串行闪存加载程序或正确配置的引导加载程序以对 TM4C123BE6PM 进行编程?

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1390879/tm4c123be6pm-how-to-load-the-serial-flash-loader-or-properly-configured-bootloader-to-program-tm4c123be6pm

器件型号:TM4C123BE6PM
主题中讨论的其他器件: EK-TM4C123GXLUNIFLASH

工具与软件:

尊敬的团队:

我在定制设计的电路板中使用 TM4C123BE6PM Tiva-C 系列微控制器。

我可以使用 JTAG 连接器加载程序、现在我想利用控制器的 UART 来对芯片进行编程。

该板包含 FTDI FT231 IC。

以下是我尝试使用 LM 闪存编程器执行编程时遇到的错误

请指导我了解如何为基于串行端口的编程加载引导加载程序并解决上述问题?

此致、

Aditya Mhatre

嵌入式硬件设计工程师

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [报价用户 id="612997" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1390879/tm4c123be6pm-how-to-load-the-serial-flash-loader-or-properly-configured-bootloader-to-program-tm4c123be6pm "]

    我可以使用 JTAG 连接器加载程序、现在我想利用控制器的 UART 来对芯片进行编程。

    该板包含 FTDI FT231 IC。

    [报价]

    我有一些问题和反馈。

     -使用的 UART 是什么? 如果您使用的是基于 ROM 的串行引导加载程序、则只能使用 UART0。 则无法使用 UART1、UART2等其他 UART 实例、

     -确保在 LM Flash 程序员上指定正确的 COM 端口。 您可以从 Windows 设备管理器中找到什么 COM 端口。 此外、要确保 PC 和 UART 在波特率、停止位和无奇偶校验方面的 COM 端口设置相同。

     -如果您不使用基于 ROM 的串行引导加载程序,那么我假设您打算使用基于闪存的引导加载程序。 在本例中、您是否有基于闪存的引导加载程序、它是一个从0x0开始的小程序。 检查您的闪存内容、查看0x0处是否有基于闪存的引导加载程序。  

     -如果您不熟悉基于闪存的引导加载程序,那么在 TivaWare SDK 中有一些示例。 请参阅 C:\ti\TivaWare_C_Series-2.2.0.295\examples\boards\ek-tm4c123gxl\boot_serial 和 C:\ti\TivaWare_C_Series-2.2.0.295\examples\boards\ek-tm4c123gxl\boot_deme1。 请注意、boot_serial 是基于闪存的引导加载程序、必须首先通过 JTAG 加载、位于0x0。 加载并运行示例应用程序后、它将加载示例应用程序(boot_deme1)。 加载应用程序后、会闪烁 LED。

     -我强烈建议您首先尝试一下 LaunchPad 上的示例并了解它是如何工作的。 如果您可以在 LaunchPad 上成功运行这些示例、那么接下来的操作是在您的定制板上运行相同的示例、然后再更改为您自己的应用。  

     -我还强烈建议您运行一个简单的 hello 程序,以便通过 COM 端口和您的  FT231 IC 在终端窗口中成功地输出'hello'消息。 这是为了确保  为串行传输枚举了 FT231 IC。  

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

    尊敬的 Charles:

    感谢您的答复。

    1.使用哪个 UART? 如果您使用的是基于 ROM 的串行引导加载程序、则只能使用 UART0。 则无法使用 UART1、UART2等其他 UART 实例、

    回答:我仅在您提到基于 ROM 的串行引导加载程序时使用 UART0、然后请告诉我如何加载基于 ROM 的串行引导加载程序、或者 tm4c123be6m 是否已包含基于 ROM 的串行引导加载程序?

    2.确保在 LM Flash 程序员上指定正确的 COM 端口。 您可以从 Windows 设备管理器中找到什么 COM 端口。 还要确保 PC 和 UART 之间的 COM 端口设置在波特率、停止位和无奇偶校验方面相同。

    答案:根据设备管理器中的信息(我将波特率保持为115200)、在 COM 端口中选择为 FTDI 芯片检测到的端口。

    3.  如果您不使用基于 ROM 的串行引导加载程序、那么我想您打算使用基于闪存的引导加载程序。 在本例中、您是否有基于闪存的引导加载程序、它是一个从0x0开始的小程序。 检查您的闪存内容、查看0x0处是否有基于闪存的引导加载程序。  

    回答:请求您指导我如何理解我的 IC 中使用的引导加载程序。 以下是我的芯片的存储器映射。

    下图显示了 CMD 复位和解锁序列后的存储器映射:

     

    下面的图片显示了加载闪烁 LED 程序后的存储器映射:

    4. 如果您不熟悉基于闪存的引导加载程序、那么 TivaWare SDK 中提供了一些示例。 请参阅 C:\ti\TivaWare_C_Series-2.2.0.295\examples\boards\ek-tm4c123gxl\boot_serial 和 C:\ti\TivaWare_C_Series-2.2.0.295\examples\boards\ek-tm4c123gxl\boot_deme1。 请注意、boot_serial 是基于闪存的引导加载程序、必须首先通过 JTAG 加载、位于0x0。 加载并运行示例应用程序后、它将加载示例应用程序(boot_deme1)。 加载应用程序后、会闪烁 LED。

    回答:由于必须从 uniflash 或 LM 闪存编程器中完成这一操作、您能否详细说明此过程?  

    当我尝试通过 LM Flash Programmer 加载时、我面临"无法找到目标:错误"。 请在下面找到 LM 闪存编程器的设置

    5.  我强烈建议您首先尝试一下 LaunchPad 上的示例并了解它是如何工作的。 如果您可以在 LaunchPad 上成功运行这些示例、那么接下来的操作是在您的定制板上运行相同的示例、然后再更改为您自己的应用。

    回答:我们没有 LaunchPad/评估板、我想说的是、我们可以在定制板中执行和加载很少的程序、例如闪烁等。但我们可以通过 JTAG、现在只有目标是通过使用 USB 转 UART 板载 FTDI 芯片的串行 UART 实现。

    6. 我还强烈建议您运行一个简单的 hello 程序,以便通过 COM 端口和  FT231 IC 在终端窗口中成功输出"Hello"消息。 这是为了确保  为串行传输枚举了 FT231 IC。  

    答案:我已经通过在 FT231的 UART 侧执行循环来验证 FT231的操作。

     

    很抱歉有这么多的问题,但要求你也支持...

    此致、

    Aditya R. Mhatre

    嵌入式硬件设计工程师

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

    您好!

    [报价 userid="612997" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1390879/tm4c123be6pm-how-to-load-the-serial-flash-loader-or-properly-configured-bootloader-to-program-tm4c123be6pm/5321486 #5321486"]

    回答:我仅在您提到基于 ROM 的串行引导加载程序时使用 UART0、然后请告诉我如何加载基于 ROM 的串行引导加载程序、或者 tm4c123be6m 是否已包含基于 ROM 的串行引导加载程序?

    [报价]

    TM4C123已在 ROM 中预加载了引导加载程序和外设驱动程序。 您可以选择是使用基于 ROM 的引导加载程序还是使用基于闪存的引导加载程序。  

    [报价 userid="612997" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1390879/tm4c123be6pm-how-to-load-the-serial-flash-loader-or-properly-configured-bootloader-to-program-tm4c123be6pm/5321486 #5321486"]

    回答:由于必须从 uniflash 或 LM 闪存编程器中完成这一操作、您能否详细说明此过程?  

    当我尝试通过 LM Flash Programmer 加载时、我面临"无法找到目标:错误"。 请在下面找到 LM 闪存编程器的设置

    [报价]

    请参阅以下说明来使用基于闪存的引导加载程序、在使用哪个 UART 实例方面您可以更灵活。 对于 ROM 引导加载程序、它必须是 UART0、但对于基于闪存的引导加载程序、可以使用 UART0、UART1等、但库存的基于闪存的 TivaWare 引导加载程序示例使用的是 UART0。 它可以根据需要更改到其他 UARTx。 我强烈建议您阅读引导加载程序用户指南以了解其中的概念。  https://www.ti.com/lit/pdf/spmu301

     1使用 CCS 或 LM 闪存编程器或 Uniflash 通过 JTAG 将 boot_serial 加载到闪存。 加载 BOOT_SERIAL 与加载闪烁程序没有不同。

      2.运行 boot_serial 程序。  

      3.在 LM 闪存编程器中更改为手动模式以选择 UART 引导加载。 请确保您选择了正确的 COM 端口。 转到 Windows 设备管理器以确定枚举了哪个 COM 端口。 另一个重要的事情是要确保在您的 Windows COM 端口的端口设置中、它具有匹配的波特率(115200)、无奇偶校验和1个停止位。 下面的 COM11用于我的机器。 您的计算机将具有不同的 COM 端口。  

     4转到"程序"选项卡。 提供 boot_demo1.bin 文件的路径、并确保输入正确的偏移地址0x1800。 点击 PROGRAM 按钮、您将看到传输开始并完成底部的传输字节数。  

    5.可按板上的复位按钮。 您应看到 LED 在闪烁。 该示例适用于 LaunchPad。 如果您的定制电路板的指定引脚上没有 LED、则您将看不到 LED 闪烁。 读取 boot_demo1.c 文件、该文件非常简单。 如果您在不同的引脚上有 LED、则可以对其进行修改。

    6.按下 SW1。 LED 应停止闪烁、因为它已跳转到引导加载程序。 同样、这取决于您的定制板是否有开关、因为这是为具有用户开关的 LaunchPad 构建的示例。

    7.再次转到步骤4、然后点击"Program"按钮以加载另一个程序、例如 boot_demo2  

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

    您好、Charles、

    感谢您提供详细的过程...

    我按照您在步骤中提到的方法进行了尝试、在步骤4中提到、在点击编程按钮后我会遇到以下错误:

    此时未出现"target not found error"(未找到目标错误)。

    请告诉我有关错误以及如何克服它。

    Aditya Ravindra Mhatre

    嵌入式硬件设计工程师

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

    我有一些问题。

    -您是否在0x0加载了闪存引导加载程序? 从0x0开始的闪存的"Memory Browser"窗口显示什么?  

    -您能运行 hello 示例项目吗? 您能否看到通过 COM 端口发送到终端窗口的"Hello"消息。 我知道您已经在 FT231上运行了一些环回测试。 但这并不能保证所有发送和接收都在您的 PC 端正确无误。 如果您在终端窗口上看不到"Hello"消息、这将是首先调试的操作。

    -您可以探测 UART0的 TX 和 RX 引脚吗? 你在这两个引脚上看到任何信号了吗?

    -您可以尝试其他 PC 吗? 您是否看到相同的问题?

    -我强烈建议您购买 LaunchPad。 它是一款低成本开发板、价格为16.99美元。 您可以使用 LaunchPad 轻松开发和调试软件、然后再将其移植到最终电路板。  https://www.ti.com/tool/EK-TM4C123GXL