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.

[参考译文] TM4C129ENCPDT:LMFlash 编程器和 ROM 引导加载程序

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/574871/tm4c129encpdt-lmflash-programmer-and-rom-boot-loader

器件型号:TM4C129ENCPDT

您好!

我尝试使用 LM 闪存编程器内部版本1588来使用 UART 对 TM4C129空板进行编程、但我始终会收到错误。
当我使用 Auto Buad Enable 时、它会考虑几秒钟、然后说"failed to syncronized..."
当我禁用自动停止时、它会考虑几秒钟、然后说"无法建立连接..."

有趣的是、当我选择"TM4C129X 开发"和 JTAG/ICDI 接口时、它设法进行编程-没问题。
但是、我想将 UART 接口与工厂 ROM 引导加载程序(而不是我的!)配合使用

我知道为了使引导 ROM 代码开始工作、闪存的几个前字必须清零为0xFF、并且我使用 JTAG 将它们清零
但是、ROM 拒绝通过串行方式进行连接。

我该怎么做? 其中最糟糕的是有关引导加载程序的 ROM 版本的说明或文档。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Amir、您好!
    BOOTCFG 寄存器的状态是什么? BOOTCFG 中的 EN 位是否清零? 您指定了哪个 GPIO 引脚来启用串行引导加载?

    请参阅 ROM 部分以及有关基于 ROM 的引导加载的数据表中0x400FE1D0处的 BOOTCFG。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Amir、您好!
    您还需要检查的一点是、在 COM 端口中、您是否具有与 LM 闪存编程器中使用的波特率匹配的波特率。 我碰巧遇到这个错误、LM 闪存编程器中的波特率设置被设定为115200、而 PC 端的 COM 端口波特率为9600。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    感谢您的回复。
    没有到 BOOTCFG 的连接、因为手册中说、当闪存2的第一个字被清除(0xFF)时、ROM 加载程序将自动启动。

    同时、我已经成功对它进行编程。
    看来只有在重新置位电路板后、它才会等待串行输入、而取消选中自动波特即可完成此操作。
    手册中不是很清楚,但它起作用... :-)

    仍有2个问题:

    如何指示 TI-boot-ROM 将给定的 bin 文件加载到 SRAM 而不是刻录到闪存中?

    如果没有、您是否有示例 IAR/TM4C129环境示例代码从闪存加载到 SRAM?

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

    [引用用户="Amir-Yungman"]1. 如何指示 TI-boot-ROM 将给定的 bin 文件加载到 SRAM 而不是刻录到闪存中?[/quot]

    如果引导加载程序支持这种徒劳的操作、我会非常惊讶。

    [引用用户="Amir-Yungman"]2. 如果没有、您是否有示例 IAR/TM4C129环境示例代码从闪存加载到 SRAM?[/quot]

    对于 IAR-WB、请使用'_ramfunc'

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    F.M.写道:
    "如果引导加载程序支持这种徒劳的操作、我会感到非常惊讶。"

    如果您感到惊讶、这可能是因为您从未开发出需要制造的实际产品!
    是否听说过 ATP 级? 在您确认硬件完全正常之前、是否听说过"请勿烧写闪存"?

    F.M.写道:
    对于 IAR-WB、请使用'_ramfunc'。

    我知道、这不会提供我所要求的结果。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    如果您"请勿烧录闪存"、您如何验证 MCU 的闪存(即硬件)是否正常运行且"正常?"

    不得将代码从您建议的"完全带 SRAM 的存储"中更改(假设这甚至是可能的-因为闪存大小始终超过 SRAM 大小。)   因此-在某些(稍后)点-必须创建不同的代码并测试/验证从闪存运行-这不是真的吗?   这只会延迟产品发布并使其复杂化...

    在20年以上的业务中,我不能忘记,“不要刻掉建议!” (并且公司/I 生产了足够的产品编号以"公开...")   您对过去/已淘汰的"OTP"器件都是正确的-但现代 MCU 接受数百个程序周期-在这里、许多人都很乐意了解您对此类建议的参考/寻求此类建议...   (可能是"不在上下文中"或非常错误!)

    海报 F.M.是一名高技能、关心他人的贡献者、无论是本论坛还是其他论坛、并非每一篇文章或提交的方法都值得称赞...

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    大家。 我已经找到了一些奇怪的方法来做一些简单的事情、但你的长距离回答表明我没有正确地解释自己。
    让我再试一次。

    我正在寻找一个非常简单且非常(非常)有用的选项:
    在空白的闪存板上、我希望 TI-ROM 直接将代码加载到 SRAM 而不是闪存。 就这些。

    这种情况有何复杂之处? 那是什么徒劳的呢?
    你可以简单地回答"是"、"我们可以回答"是"、"不是"我们不能回答"、而是"解释"我的请求是愚蠢的。
    如果您的超级双人朋友海报 f.m 愿意、我将非常高兴地向他展示在 ATP 阶段该选项中如此重要的电子产品。

    直至那一刻、谢谢。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这就是我尝试的。

    我修改了.cmd 文件、如下所示。 我使用 CCS 加载闪烁程序、它正在工作。 只有矢量表驻留在闪存中、其余代码驻留在 SRAM 中。 但是、我不得不说、我无法使用 LM 闪存编程器。

    部分

    .intvecs:> app_base

    .text:> SRAM
    .const:> SRAM
    .cinit:> SRAM
    .pinit:> SRAM
    init_array:> SRAM

    .vtable:> RAM_base
    .data :> SRAM
    .bss:> SRAM
    .sysmem:> SRAM
    .stack:> SRAM