主题中讨论的其他器件: TM4C123、 ENERGIA
我有自己的定制板、其设计基于 TM4C1294NCPDT。 我想使用 UART 和引导加载程序升级定制板的固件。 我不知道怎么做。
我们非常感谢您提供的任何意见/见解/分步指南。
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.
我有自己的定制板、其设计基于 TM4C1294NCPDT。 我想使用 UART 和引导加载程序升级定制板的固件。 我不知道怎么做。
我们非常感谢您提供的任何意见/见解/分步指南。
您好!
为什么不尝试几件事看看它是否连接、 回忆一下带 JTAG 的 LM 是无用的。
感谢 Ralph 的回复!
[引用 user="Ralph Jacobi"]您需要将 PC 连接到板级 UART 端口,确保 PC 识别 UART (具有 COM 端口),然后使用 LM Flash 连接到该 COM 端口以加载.bin 文件。
我要将 PA0和 PA1的 UART0引脚连接到 USB 到 TTL 板、并将其连接到我的 PC、然后在 LM 闪存编程器中选择"手动"连接和"串行端口"以转储.bin 文件。
我想问的第二个问题是 boot_demo1示例也是基于闪存的引导加载 程序(我记得我在注释中已经阅读过它)。我需要一个基于串行/UART ROM 的引导程序。 正如我在另一本串行引导加载程序指南中所述、该指南演示了如何将 TM4C123用作编程器器件、并将 TM4C1294NCPDT 用作目标器件。 现在我还不知道:我是否应该在 boot_demo1示例中包含我的固件代码? 或者、我应该先运行它们、然后再运行固件代码吗?
在 "boot_serial"示例中、只有 bl_config.h 选择 UART 端口与引导加载程序通信。 介绍了如何使用 firmware...please 运行该 boot_serial 示例。
此外、在引导加载程序指南中、UART 还有特定的自定义协议命令...如果还使用基于串行 ROM 的引导加载程序、则还需要此命令和数据包构建?
谢谢
[引用 user="Techinspired"]我不明白为什么您说过[/引用]
过去尝试将 XDS100 (JTAG 接头)与 LM3S 一起用于写入 MAC 用户寄存器不 受支持。 TMC123板 有 一个板载 ICDI 仿真 (JTAG)控制引脚 进入目标、并通过 Windows 中的 USB CDM 器件驱动程序传输固件或写入闪存。 这与使用 LM 闪存 尝试 通过 定制 PCB 的 JTAG 接头连接 XDS100/200 JTAG 仿真器的情况不同、因为任何普通人 在 XDS 仿真器上花费大量资金后都会尝试这样做。
我不同意使用过于复杂的 TMC123方法 对远程目标 TM4C129x 进行编程。 因此、 您似乎不知道 CCS 可以通过 JTAG 仿真器和 接头直接连接到定制 PCB 、以加载固件、 通过 SWO 对其进行调试以及 使用 CCS 中内置的寄存器调试功能。 一款理想的高速 JTAG 仿真器(预算内) 是 TI store 出售的 XDS200、 可能会对知识的不断发展有所帮助。
与 调用嵌入式 ROM 版本 TM4C129x 相比、串行引导加载程序应用很麻烦、增加了复杂性。
Techinspirred、您好!
TivaWare 中的示例确实在闪存中运行、因为它是一个可帮助用户学习的示例。 如果您认为使用闪存版本很好地掌握了引导加载程序、则可以使用 ROM 引导加载程序。
一旦您知道如何将 boot_demo1放入电路板中、我会说您也会尝试为自己的代码加载.bin、以便按照所需的方式设置程序的位置。 您不会将固件包含在 boot_demo1中、而是加载 boot_demo1、而是加载固件。 boot_demo1具有重复跳转到闪存引导加载程序的功能、因此您可以看到如何通过 GPIO 触发引导加载程序。
[引用用户="Techinspire"]
在 "boot_serial"示例中、只有 bl_config.h 选择 UART 端口与引导加载程序通信。 介绍了如何使用 firmware...please 运行该 boot_serial 示例。
[/报价]
boot_loader 文件夹包含应用程序的其余部分。 bl_config.h 文件是唯一应编辑的文件、因此它位于示例的主目录中。
[引用用户="Techinspire"]
此外、在引导加载程序指南中、UART 还有特定的自定义协议命令...如果还使用基于串行 ROM 的引导加载程序、则还需要此命令和数据包构建?
[/报价]
是的、您需要将它们用于 ROM 引导加载程序。
根据我对 ROM UART 引导加载程序的理解、它只涉及 BOOTCFG 寄存器的 EN 位清零或地址0x4全为 F、参考: 
现在、我的定制板之前使用 TM4CICDI 进行了编程、因此它的闪存必须被擦除(以在 LMFlash Pragrammer 中调用基于 ROM 的引导加载 程序)、所以我使用了 TM4C3's ICDI 来擦除闪存。
并 通过空白检查测试检查闪存是否为空、在我的电路板上、该测试已通过。
然后、我移除了 JTAG 连接、并将定制板的 PA0 (RX)和 PA1 (TX)引脚连接到具有 COM 端口9的 USB 至 TTL 板(我在器件管理器中将波特率设置为115200、并在 LM 闪存编程器中保持相同的波特率)
并尝试将 blinky.bin 编程到我的定制板、但它给出了类似这样的错误。
在 LM 闪存编程器中调用 UART ROM 引导加载程序是否有任何重要步骤、我在这里缺失了吗?
谢谢。
您好 Ralph、
感谢您的回复!
我想问的几个问题:
1) 1)我能否在 Launchpad 上测试整个引导加载程序过程、该 LaunchPad 的 UART0引脚未在接头上输出。 那么调试电缆是否适用于 UART0? LM 闪存编程器中的 COM 端口将是 launchpad 的调试 COM 端口...对吧? 我应该移除/安装哪些其他跳线?
2) 2)擦除闪存并对应用程序库进行编程后、是否需要在两者之间对 boot_serial.bin 进行编程?
3) 3)"boot_serial"示例有什么作用?
4) 4)如果我在链接器 cmd 文件中设置#define APP_base 0x2000、那么我将在程序偏移地址中输入相同的偏移地址
LM 闪存编程器中的位域? 但在 bl_config.h 中、APP_START_ADDRESS 定义为0x4000而不是0x2000...所以这个东西就是
令人困惑。
5) 5)如果我需要在链接器 cmd 文件中设置程序偏移量、那么对于在 CCS 中构建的工程、但我的应用程序已经内置、这是可以实现的
在 Energia 中、我在哪里设置/查找链接器 cmd 文件、BTW 我已在 CCS 中导入 Energia 代码并使用 JTAG 转储应用。
此致。
您好 Ralph、
非常感谢您的详细解释和帮助!
不过、我尚未在 Launchpad 或我的定制板上测试整个引导加载程序过程、 由于我遇到了另一个无法为我的定制板获取 IP 地址的问题,因此此任务优先于“UART 引导加载程序”任务...但是,一旦我解决了 IP 地址问题(我也在该论坛上发布了该问题...希望在这里获得解决方案/帮助, 因为我已经为这个问题挣扎了一段时间。 TI 硬件设计团队的任何人可以在这方面为我提供帮助吗?) 我将在稍后测试串行引导加载程序、并随时向您发布有关更新的信息。
此致、
技术尖头
也许这可以为您提供服务: i.imgur.com/LFHuP3J.png
显示了作为调试器/编程器连接到另一个的 TM4C1294NCPDT 开发板。 它实际上是我用来对原型^_^进行编程的东西
将一个小带状电缆连接器连接到10引脚插头以供移动使用不会太麻烦。