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:防止意外编程的硬件解决方案?

Guru**** 2445440 points
Other Parts Discussed in Thread: TM4C1294NCPDT, CC1350, UNIFLASH

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/631752/tm4c1294ncpdt-hardware-solution-to-prevent-accidental-programming

器件型号:TM4C1294NCPDT
主题中讨论的其他器件: CC1350UNIFLASH

作为 一个自己不小心对 TM4C1294NCPDT 进行了误编程的人、我可以看到这对我们的一些客户来说是一个问题。

是否有某种硬件引脚解决方案可以阻止闪存编程、但仍允许 USB/JTAG 操作? 我已经开始查看数据表、但目前还没有找到任何东西。

我想、如果有人知道软件解决方案、它也会很有用。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    他们是如何使用 JTAG 意外地对闪存进行编程的? 这似乎需要一些努力。

    Robert
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    也许我对这种情况的解释不好,但这里不是这样。 使用各种编程工具、我不小心使用为连接的 CC1350构建的映像对 TM4C1294NCPDT 进行了编程。 JTAG 或 USB 信号均未断开连接。 我能够恢复使用砖型的 TM4C1294NCPDT、但希望找到一种机制来帮助防止客户遇到这种情况。

    问题是诸如 xdsdfu 和 uniflash 之类的工具似乎没有对它们编程到闪存的二进制文件进行任何完整性检查。 例如、如果有引脚、您可以将跳线连接到以防止闪存写入、我们可以避免一些潜在的用户错误。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用用户="Robert Jones8"]...TM4C1294NCPDT 意外错误编程  的用户... 可以看到它一个问题... 一些客户。[/报价]

    我们必须询问-是否有"有效"(以及仔细思考/考虑)原因-为(部分)客户提供(潜在)"对您所在国家的"密钥(即 JTAG/SWD 访问)?"   这是关键/关键-是不是?

    只要"连接到 JTAG/SWD "、就有可能(故意或偶然)"干扰现有代码发生"。   

    因此-"第一步"不是限制这种访问吗?

    存在一个(过去)小型程序(JTAG-GPIO.c)或类似程序(通过单个(非 JTAG) GPIO 的"切换或电平"启用/禁用 JTAG/SWD 功能)。   (可能会添加额外的保护措施)  如果将此代码放置在(其中)要执行的第一个代码中-并且"默认值"为"将 JTAG/SWD 引脚切换为 GPIO"、则您可以"合理"地"保护此类意外/意外的"不需要的 MCU 程序更改"。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我们使用此器件的产品不包含任何专有软件。 在这种情况下、我们主要销售给开发人员、我们希望开发人员需要更换/修改现有代码。 我们唯一关心的问题是上述客户在发生事故时将 TM4C1294NCPDT 欺骗所涉及的支持问题/RMA。 这是一个我们愿意处理的问题,但我们想探讨我们可以选择的任何办法。

    这个 JTAG-GPIO 听起来像是一个潜在的软件解决方案。 在哪里可以找到来源?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你的猜测-和我一样好。 我"永远"地说:"供应商缺乏关键/关键技术数据的"清晰"链接!" 理想情况下-这将与论坛页面顶部一起放置-红色条纹区域-专门(错误地)用于"博客、视频、组"-但不用于"重要的技术数据!"

    如果您做出(一些)努力(使用论坛搜索框-顶部)-我将从过去(在 LMI 下)挖掘该程序、所有代码(假设它比以前小)都位于中心位置-并且更容易直接找到!

    阻碍用户-客户的发现-甚至注意-关键/关键技术数据"无法理解"(几乎与供应商禁止"类似"(用于有价值的帖子)和"亲吻"(用于每个设计要求)一样糟糕...
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    现在这里-承诺的代码文件:

    请注意、这是一个非常简单的程序- iirc "switch bouncing"未被管理-您(当然)不必使用此代码中引用的 OLED 显示屏。

    该代码确实成功地为您(和其他人)提供了选择性地"栅极"到达 JTAG/SWD 管脚的信号的"影响"的方法、这样必须(有意)选择"JTAG/SWD 模式"。   (这可能是也可能不是此程序的"默认"、但很容易更改/撤销。   我的公司使用这种更新版本-默认为 SWD 模式(在我们开发的过程中)-并在开发完成时切换到"非 SWD 模式"。

    e2e.ti.com/.../gpio_5F00_jtag.c

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Robert、
    您可以在中找到该示例 \examples\boards\ek-tmsc1294xl\GPIO_JTAG。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 user="Robert Jones8"]问题是诸如 xdsdfu 和 uniflash 之类的工具 似乎没有对它们编程到闪存的二进制文件进行任何完整性检查。

    这种健全性检查可能是不可能的。 下载包含任意序列的二进制文件当然并不容易。

    [引用 user="Robert Jones8"]例如,如果有一个引脚,您可以将跳线连接到该引脚以防止闪存写入,我们可以避免一些潜在的用户错误。

    通过跳线路由 JTAG 时钟? 您可能会通过双极开关对其进行布线、如果它处于启用 JTAG 的位置、则会拒绝运行代码、因此它们不会意外地将其留在程序位置。

    Robert

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这不会阻止用户下载任意二进制文件、尽管这似乎是最初的问题。 为此、您将需要一个引导加载程序

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

    或者-更直接-示例出现@ CB1 POST 14:22 CST。 (发布前4分钟)。   

    添加了(通过 CB1)也是"指令"(例如"无去抖")、如果使用一个简单的开关来"访问/切换 JTAG 输入/输出。。。"

    请注意、并非所有这些都有兴趣、也没有采用"4C1294"、因此(实际)示例代码证明是有利的...   (即"kiss"再次到来-更改为"速度、易用、简化")