主题中讨论的其他器件: EK-TM4C1294XL、 DK-TM4C129X
我们需要适用于闪存引导加载程序的示例代码、而不是适用于 TM4C129X 开发板的 ROM 引导加载程序。 我们在设计中使用 TM4C129XNCZAD 控制器。
我使用 LM Flash 加载程序来练习使用 TM4C129X 电路板。
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.
我们需要适用于闪存引导加载程序的示例代码、而不是适用于 TM4C129X 开发板的 ROM 引导加载程序。 我们在设计中使用 TM4C129XNCZAD 控制器。
我使用 LM Flash 加载程序来练习使用 TM4C129X 电路板。
您好!
TivaWare 库中提供了多个闪存引导加载程序示例。
您可以在 C:\ti\TivaWare_C_Series-2.2.0.295\examples\boards\ek-tm4c1294xl 中找到这些示例。 boot_serial 和 boot_emac_flash 是引导加载程序、其余是要引导加载的应用程序。 有关详细信息、另请参阅引导加载程序用户指南。 www.ti.com/.../spmu301

如果您感兴趣的是 CAN 引导加载程序、还提供了一份包含示例的应用手册。
您好!
[引用 userid="477645" URL"~/support/microcontrollers/other/f/other-microcontrollers-forum/988101/tm4c129xnczad-example-code-for-tm4c129x/3650000 #3650000"]我已通过 LM 闪存加载程序转储 boot_serial @0x0000、并且修改后的 Bl_config.h 包含应用地址@ 0x4000
现在构建 一个应用程序@0x4000并通过具有 UART 选项的 LMFlash LODER 构建
[/报价]我只想在此澄清一些问题。 您说过您修改了 bl_config.h 并构建了您的应用程序。 您能否在 bl_config.h 文件中阐明您所做的更改?
您能否按原样尝试 TivaWare 示例? 请勿修改任何内容。 在 TivaWare 中、已经有一个 boot_serial (这是一个引导加载 程序)、并且有两个应用程序(boot_demo1和 boot_demo2)将由引导加载程序加载。 bl_config.h 已配置为通过 UART 进行引导加载。 如果您按原样尝试 TivaWare 示例、则无需修改任何内容。 您能不能尝试一下、您是否遇到了相同的问题? 您可以在 C:\ti\TivaWare_C_Series-2.2.0.295\examples\boards\ek-tm4c1294xl\boot_serial 中找到引导加载 程序、并在 C:\ti\TivaWare_C_Series-2.2.0.295\examples\boards\ek-tm4c1294xl\boot_demo1中找到该应用程序。 同样、无需修改任何内容。 这些示例已经过验证。 如果它们不能正常工作、则需要查看 PC 端。
您可以在另一台计算机上尝试吗?
您能向我展示您的设备管理器显示吗?
能否探测 UART0TX 和 UART0RX 引脚? 当 PC 将命令发送到 MCU 时、您应该在 UART0RX 引脚上看到一些活动吗? 你看到什么?
我已按照您的建议进行了尝试。
我再次安装 2.2.0.295软件包。
我已经通过 LM 闪存加载程序+ JTAG@0x0000 位置转储了上面软件包中可用的任何 boot_serilal.bin 文件。 成功
然后选择手动配置和波特115200+串行 UART 并转储 boot_demo1.bin @0x4000。成功
然后再次选择 手动配置和波特115200+串行 UART,并转储 BOOT_DEU2@ 4000 ,但收到相同的错误。 
我有 Stellaris LM3S9B96开发板。 我应用了相同的过程、例如 boot_serial、boot_demo1、boot demo2 (Stellaris 软件包提供的文件)及其与 stellearis 板的工作
但相同的过程不适用于 TM4C129X
TM4C129X 使用器件型号 TM4C129XCNzaD、您建议的文件夹是 tm4c1294xl。 这会产生任何差异吗?
您好!
抱歉、我以为您使用的是 EK-TM4C1294XL launchHpad。 看起来您使用的是 DK-TM4C129x EVM 板。 正确吗? 请确认您是否有 EK-TM4C129xXL Launchpad、您可以运行 boot_serial 和 boot_demo1/boot_demo2。 boot_demo1要求按下 LaunchPad 上的 SW1以启动加载另一个程序。 但是、LaunchPad 上的开关与 DK EVM 板不同。 您可以自己修改它、或者如果您只有 DK EVM 板、请参阅以下文章、其中 Ralph 提供了一个可在 DK EVM 板上运行的示例应用。
我将再次连接应用。
您好、Charles、
首先,我在 程序偏移量0x00处通过 LM 闪存加载程序转储 boot_serial.bin,JTAG。 成功。
我通过 LM Flash 加载程序在程序偏移量0x4000处使用手动配置+串行 UART 转储 boot_demo_uart_斜 杠代码
然后它运行"它在屏幕上显示位信息"。这意味着它运行。
现在、我已经通过 LM Flash 加载程序转储了我的代码、此加载程序具有手动+串行 uartat 程序偏移量0x4000。 已成功导入代码,但屏幕上未显示任何内容。
为了交叉检查、我 在程序偏移量0x0000处使用具有 JTAG 的 LMFLASH 转储我的代码、然后 内容显示在屏幕上。
问题出在哪呢?
偏移是否不匹配?
我在执行代码转储时所遵循的流程存在问题。
您好!
[引用 userid="477645" URL"~/support/microcontrollers/other/f/other-microcontrollers-forum/988101/tm4c129xnczad-example-code-for-tm4c129x/3657866 #3657866"]我通过 LM Flash 加载程序在程序偏移量0x4000处使用手动配置+串行 UART 转储 boot_demo_uart_斜 杠代码
然后它运行"它在屏幕上显示位信息"。这意味着它运行。
[/报价]很高兴它能正常工作。
[引用 userid="477645" URL"~/support/microcontrollers/other/f/other-microcontrollers-forum/988101/tm4c129xnczad-example-code-for-tm4c129x/3657866 #3657866">现在、我已经通过 LM Flash 加载程序转储了代码、手动+串行 uartat 程序偏移量0x4000。 已成功导入代码,但屏幕上未显示任何内容。这证明了引导加载程序的工作原理。 但您的应用可能有问题。 您是如何开发应用的。 您开发的应用程序代码是否以0x0或0x4000开头?
[引用 userid="477645" URL"~/support/microcontrollers/other/f/other-microcontrollers-forum/988101/tm4c129xnczad-example-code-for-tm4c129x/3657866 #3657866"]要进行交叉检查,请使用 程序偏移量为0x0000的 JTAG 转储我的代码,然后 在屏幕上显示内容。似乎建议您在0x0处开发应用。 你不能这么做。 您必须使用链接器设置来开发应用程序、该设置会将应用程序映像重定位在0x4000处。 查看 boot_demo_uart_flash 示例的链接器文件。 引导加载程序从0x0开始。 引导加载程序启动时、它会检查0x4000处是否有应用程序映像。 如果在0x4000处有一个映像、则引导加载程序将跳转到该映像以运行应用程序。 现在、您有一个应用程序"已编程"到0x4000、但该映像实际上从0x0而不是0x4000开始。
您好!
有关 CRC 功能的详细信息、请参阅引导加载程序用户指南。 https://www.ti.com/lit/pdf/spmu301。其理念是、如果在引导加载过程中断电、则只 能对固件进行部分编程。 当您再次加电或复位器件时、引导加载程序将检查您是否具有正确的 CRC 值。 否则、它将尝试再次启动加载固件。

这些帖子也可能有用。