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.

[参考译文] EK-TM4C1294XL:LM 闪存编程器通过 UART 进行检测

Guru**** 2482105 points
Other Parts Discussed in Thread: EK-TM4C1294XL

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/712510/ek-tm4c1294xl-lm-flash-programmer-coonection-via-uart

器件型号:EK-TM4C1294XL

大家好、

我现在再次进行了科学研究、我现在打开并使用了示例 boot_demo1。 此示例当前在套件 EK-TM4C1294XL 中运行。

我通过 UART 与 LM 闪存编程器实用程序连接时遇到问题、请检查图像、并建议解决错误的方法。

设置 UART 的示例代码、在我的计算机中、我将套件作为 COM10端口。

void
SetupForUART (void)
{
//
//我们需要确保 UART0及其关联的 GPIO 端口为
//在我们将控制权传递给引导加载程序之前启用。 串行引导
//加载程序不会为我们启用或配置这些外设
//通过其 SVC 矢量输入它。
//
ROM_SysCtlPeripheralEnable (SYSCTL_Periph_UART0);
ROM_SysCtlPeripheralEnable (SYSCTL_Periph_GPIOA);

//
//将 GPIO PA0和 PA1设置为 UART。
//
ROM_GPIOPinConfigure (GPIO_PA0_U0RX);
ROM_GPIOPinConfigure (GPIO_PA1_U0TX);
ROM_GPIOPinTypeUART (GPIO_Porta_base、GPIO_PIN_0 | GPIO_PIN_1);

//
//将 UART 配置为115200、n、8、1
//
ROM_UARTConfigSetExpClk (UART0_BASE、g_ui32SysClockFreq、115200、
(UART_CONFIG_PAR_NONE | UART_CONFIG_STOP_ONE |
UART_CONFIG_WLEN_8));

//
//启用 UART 操作。
//
ROM_UARTEnable (UART0_BASE);
} 

谢谢你。

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

    您正在尝试通过 LMFlash 连接到串行引导加载程序、因此它需要能够正确访问引导加载程序。 但是、我看不到根据您的有限代码片段、您可以在哪里进入引导加载程序。

    您需要使用 boot_serial 示例、而不是 boot_dem1、或者您需要将其添加到示例中、而不仅仅是初始化 UART 端口。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Ralph、

    我使用的是 boot_demo1示例中的原始示例和代码、用于该错误。

    现在、我要看 boot_serial 示例、我不知道。 我认为该示例中的引导加载程序仅为"空"、我如何添加一些自己的代码、如闪烁闪存或如何使用此示例?

    谢谢你

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

    您需要 boot_serial 和 boot_dem1来完成目标。

    BOOT_serial 是基于闪存的引导加载程序、必须编程到器件上。 它的部分编程是指定应用程序起始地址、即 BL_CONFIG 中的 APP_START_ADDRESS。 这允许引导加载程序在调用后返回到应用程序更新后。

    那么 boot_demo1是您的应用程序代码。 此代码运行特定于应用的代码、例如使 LED 闪烁等 在 boot_demo1示例中、还可以使用方法重新进入串行引导加载程序。 您可以通过按下按钮(我认为 SW1)从 boot_demo1应用程序调用引导加载程序。

    因此、您需要做的是:

    1) 1)将具有适当设置的 boot_serial 加载到您的 LaunchPad
    2)修改 boot_demo1以处理您的应用程序要求、包括这是否意味着保留使用其中的引导加载程序调用的方法
    3) 3)也将 boot_demo1加载到 LaunchPad
    4) 4)启动 LMFlash 编程器
    5) 5)按 SW1、直到闪烁的 LED 和/或其他应用程序进程停止、这表示引导加载程序处于活动状态
    6) 6)连接到 UART 端口、并通过串行引导加载程序使用新映像对器件进行编程
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Ralph、

    感谢您提出这个想法。 如果我这么做、在第6)点中、我在连接方面有相同的错误。  我想、当我将 CCS 与 boot_serial 一同使用并通过 Debug 将其发送到套件时、有什么不好的主意? 然后我调试 boot_dem1并删除 boot_serial、第二个是 boot_dem1?

    如何通过 CCS 发送?

    谢谢你。

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

    1)通过 LM 闪存编程器设置 Quickset - tm4c1294xl launchpad
    2) 2)擦除整个闪存
    3)在 CCS 中、我运行 debug boot_serial start 并将其退出
    4)在 LM 闪存编程器中设置手册- UART 并选择 boot_demo1的一个 bin 并设置地址0x00004000、然后选中复位 MCU 复选框
    5) LaunchPad 开始闪烁 LED、按下按钮->停止闪烁
    6) 6)在 LM 闪存编程器中、我选择具有更快闪烁的修改后的 boot_dem1的 bin、并使用 LM 闪存编程器和地址0x00004000中的手动配置发送它
    7) 7)开始更快地闪烁

    有趣的是、我现在将尝试了解它。 工作原理。

    感谢 Ralph 的帮助。