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.

[参考译文] TM4C:固件更新和通过 USB 进行文件/数据交换

Guru**** 2482225 points
Other Parts Discussed in Thread: SW-TM4C, SEGGER

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/704857/tm4c-fw-update-and-file--data-exchange-via-usb

主题中讨论的其他器件:SW-TM4CSEGGER

你好

我想将我的器件(具有 SD 卡或串行 EEPROM 等外部存储器的 TM4C 或 MSP432)连接到 PC、原因有两个:

我的设备的外部存储器的某些部分应可从 PC 文件管理器作为驱动器和进行访问

1.可以通过将新应用程序(例如 hex-file)复制/粘贴到此驱动器上来执行固件更新、  

  随后、(引导)加载程序会从外部存储器检查此新应用程序并将其安装到 uC 内部闪存区域。

2.可以使用文件管理器读取、写入和删除一个/一些简单格式的文件(例如 csv、txt)、  

  这些文件可由 UC 读取并用于定义其某些行为。

无法访问外部存储器、例如无法卸下 SD 卡。

我的器件将具有带 GUI 的图形 LCD、因此可以向最终用户提供一些指导、以便正确执行 FW 更新(如果需要)。  

这个想法与 mbed 方法类似、但我不知道涉及哪些额外的硬件和固件。

是否有任何 LaunchPad (e.g.EK-TM4C123G)适合(在添加 EEPROM 后)测试我的概念的实现?

我可以使用哪些示例项目开始?

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

    尊敬的 Thomas:

    感谢您的详细博文、我非常了解您的要求。

    根据您的描述、尤其是在您提到 LCD 和 SD 卡时、我实际上会建议您在评估时使用 LaunchPad 以外的器件: www.ti.com/.../DK-TM4C129X

    该板已经内置了对 LCD 和 SD 卡的支持、您还将在 EEPROM 中添加大量的开路引脚。

    相比之下、我们的两款 LaunchPad 都没有内置 SD 卡支持。

    从纯 LPAD 的角度来看、如果 DK 对您来说有点太大、那么我建议 使用 www.ti.com/.../EK-TM4C1294XL 、因为该器件系列更接近具有 LCD 控制器外设的 TM4C129X 系列。 此外、LaunchPad 的引脚数量是前者的两倍、因此您可以添加所查看的所有不同功能。

    从示例项目方面、您应该首先从我们的 SW-TM4C 页面下载 TivaWare、然后查看相关示例。 例如、DK-TM4C129X 板具有一个项目'd_card'、以及引导加载程序示例和多个 USB 示例。

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

    感谢您的回答。

    经过一些进一步的研究、我发现了一些对该主题有用的关键字。
    现在、我看到了两种实现 FW 更新理念的方法:

    a)额外的硬件(已存在于选定的 uController 中)
    OpenSDA (v2)、具有虚拟 MSD (海量存储器件、例如 EEPROM)和引导加载程序。 通过拖放对新固件进行编程。
    PRO:更新失败时风险低
    Con:目前没有适用于 TM4C 的解决方案。 互联网中的任何匹配都指向 NXP/Freescale 或 ST 的 Segger & mbed 和目标器件。
    (可能)目标器件无法访问相同的 EEPROM (?)


    b)无额外硬件(未找到)
    目标器件提供 MSD 功能和引导加载程序。 引导加载程序必须确保新的 FW 文件未损坏。
    Con:高风险、因为更新失败会导致操作和未来备份完全失败。
    具有额外功能的引导加载程序可能必须从头开始设计。
    优点:成本更低、某些软件组件可能已现成可用(TivaWare、?)

    到目前为止、我不知道该怎么办。 绝对不需要调试/JTAG、问题是简单易用的固件更新。

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

    您可能不会感到意外、因为您已经说过、TM4C 目前还没有解决方案、但我之前从未听说过 OpenSDA 选项。

    B)中描述的是一种相当公平的封装、它涵盖了 TivaWare 中提供的闪存和 ROM 引导加载程序的优缺点。 软件可用性取决于您要添加到引导加载程序中的功能数量、如果您使用 TivaWare 中提供的功能很好、则它是非常现成的。

    如前所述、如果固件下载失败、风险将会发生、风险的严重性取决于要更新的内容。 只要引导加载程序未被覆盖、那么风险就在于需要多个更新、而如果引导加载程序被覆盖、风险就在于需要对器件进行 JTAG 访问以恢复运行。 只要启动加载程序未被触发、风险就会降低得多。 例如、可以通过一些方法来验证下载是否完整、例如卡盘(您确定需要设计为适合您的系统)。

    不过、我认为 TivaWare 引导加载程序的风险不高。 我们不会因启动加载程序中断困扰设备/系统而受到反复投诉。 此外,我不确定备份想法在哪里发挥作用,因此很难评论这方面的风险。

    一天结束时、引导加载程序要求是特定于系统的、您需要评估最适合您的要求。 我不能说你应该做什么。 对于带有 TM4C 器件的 TI 端、TivaWare 为经济实惠的 MCU 提供免费资源、以支持基本的引导加载程序功能、并允许通过软件改进来构建更高级的功能。

    我希望这篇评论能帮助您找到适合您的应用的正确解决方案。 如果您在寻找我未提供的任何具体细节、请随时跟进。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Ralph

    经过更多研究、我在 https://github.com/ARMmbed/DAPLink 页面上找到了我所要求的内容的良好摘要。  现在支持的控制器数量越来越多、遗憾的是没有 TI 器件、最后一次"打开"似乎是打开的、而 OpenSDA 似乎不是这样。 引用"DAPLink 在连接到应用 MCU 的 SWD 或 JTAG 端口的辅助 MCU 上运行"。 我没有必要的知识来包含新的控制器(我选择的是 TM4C...)。

    备注:

    在第9.5章" TivaWare 引导加载程序用户指南"中、引用了名为"BL_FS.c"的文件。 我无法在任何位置找到此文件、9.5章中也没有说明。 该文件如果存在、可能包含我需要的内容? 它的发展是否正在等待中? 是否有人有兴趣提供这种简洁的功能?

    我们可以关闭此对话框。 再次感谢!

    Thomas

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

    公司/我发现此海报的目标和分析(主要)"深思熟虑"。    但是对于(通常是致命的)... "绝对不需要调试/JTAG。"

    海报,然后进一步说明 ... ' 问题在于轻松执行固件更新。'       être、"Comfort -便利性-稳健性-可预测性-和普遍性"-证明(非常)- JTAG/SWD、"存在理由"。

    在开发过程中-保证定期使用'JTAG/SWD -甚至在开发之后(在电路板被出售/发布后) - JTAG 端口提供对 MCU (甚至电路板)功能的"重要见解"的能力-使其使用'Uber'有价值 - 以及(在 许多人看来)  绝对是强制性的!

    应该注意的是,海报 的“发现和报告”的“开放 SDA” 是 (两者)感谢和赞赏的, 但可能是“太快” 了。   "强制 JTAG/SWD -走刀头!?"     (即   、是否有足够的时间和重点研究/努力来使"专家"能够发现任何/所有"定时炸弹"、这种"新的和先进的"发展通常伴随着这些"定时炸弹"?   是否所有"勘误表"都已"发现、分析和更正"- 并且不保证"新到货"?)   真的吗?

    [编辑]...  根据海报的语言 、"研究"-假设 "开放 SDA"   (相当)"是"对现场的新"。   然而,这不是真的, 2012年对它进行了审查,并且根据我(和他人)的知识,它没有得到重大的关注,也没有立足!   (现在- 6年后...)   他的扩展搜索找到了'DAPLink'-他指出、'现在支持的控制器数量越来越多'-但是这个数字(尽管如此 增长)仍然是"重要" -此项目的继续得到 ARM 的"较少"(甚至不确定)支持。   (如 电子新闻中所报告的那样、由 Softbank 进行购买后...)   海报似乎邀请 了"额外的时间/努力/成本" - 以换取" 远离特定"和 " 已知/正当"的回报(赦免)...

    风险资本主义 公司(VC)进行定期工作-我肯定会问 :“这位专家 (资金在哪里)团体-” 是否购买了这种新的方法之一并受到欢迎?   就像我们的海报-强迫'JTAG/SWD -一边!?'   (这提供 了" 最有必要-非常合格-和"高度加权" 、但实质上 (中性)* 输入"  (始终至关重要)-它不是吗?)

    不需要”的说法... 赦免"绝对不需要"-似乎非常"高风险"-但不提供奖励!    Kool-aid”——不管“多么美味”——应该(好)进行探测/检查 (可能是“老”)——在“过度消费!”之前

    * 假设 VC 公司没有"收购" (也不在进行中)对这些公司进行投资。   (美国 存在联邦法规(即"安静期")以消除此类担忧。

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

    对于本主题以及提供的 UF2引导加载程序、确实有一些更宝贵的信息和见解

    来自 https://makecode.com/blog/one-chip-to-flash-them-all 和中的 MakeCode  

     https://learn.adafruit.com/adafruit-feather-m0-express-designed-for-circuit-python-circuitpython/uf2-bootloader-details 中的 Adafruit 提供、 并且出于完整性原因再次提供

    来自 ARM 的链接 https://github.com/ARMmbed/DAPLink

    是否有足够的人才为 TM4C 开发此类 UF2引导加载程序?

    Thomas

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

    尊敬的 Thomas:

    [引用 USER="Thomas Gay ]9.5" TivaWare 引导加载程序用户指南"中引用了一个名为"BL_FS.c"的文件。 我无法在任何位置找到此文件、9.5章中也没有说明。 该文件如果存在、可能包含我需要的内容? 它的发展是否正在等待中? 有兴趣提供此简洁功能的任何人?[/引述]

    老实说,我不知道这种评论来自哪里。 我回到以前的 TivaWare 甚至 StellarisWare 版本、找不到这样 的 bl_fs.c 文件。

    它未开发、我将注意到它应从用户指南中删除。

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

    您好 Ralph、

    敢问-(甚至)"宝贵信息"和/或"天赋"(以某种方式)是否构成"这解决了我的问题?"
    论坛是否"放弃"-试图正确描述-什么 "问题解决"实际上 是/涉及到?