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.

[参考译文] DK-TM4C129X:是否有基于以太网 ROM 的引导加载程序的示例?

Guru**** 2596645 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/739996/dk-tm4c129x-is-there-an-example-for-ethernet-rom-based-boot-loader

器件型号:DK-TM4C129X

您好!

我正在寻找一个将基于以太网 ROM 的引导加载程序用于 DK-TM4C129X 的示例项目。 我找到的样本基于闪存。 但基于 ROM 的实施看起来更简单。 我过去已经实现了基于 UART ROM 的功能。 我不确定以太网实现是否类似。  

谢谢。

AJ  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我忘记添加了、我在此应用中使用的是 TI-RTOS。


    谢谢。
    AJ
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    否、没有基于 ROM 的以太网引导加载程序。 ROM 仅具有 UART、I2C 和 SSI 的引导加载程序。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Charles、

    谢谢。 我一直在进行一些挖掘、我注意到有一些文章显示了 TM4C129基于 ROM 的以太网。 例如这个

    https://e2e.ti.com/support/microcontrollers/other/f/908/t/510876?How-to-update-firmware-in-TM4C129EXL-through-Ethernet-

    我假设它适用于所有 TM4C129。 请澄清  

    此致、

    AJ  

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

    此外、在这篇文章中、Amit 似乎暗示 ROM 以太网是可能的、我不知道如何实现它

    e2e.ti.com/.../567064

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

    您好!

     好的、我的错。 我把事情弄混了。 我刚才的答覆是错的。 我刚刚尝试过它、它工作正常。 您可以像 UART 一样亲自试用。 请参见下面的。 您将需要首先运行诸如 enet_lwip 的 TivaWare 以太网示例并记录 IP 地址。 之后、您必须完全擦除闪存。 请参阅下面的屏幕、提供刚刚运行 enet_lwip 示例时记录的 IP 地址和 MAC 地址。 如果您有 LaunchPad、则 MAC 地址会显示在板背面的贴纸中。 然后、您将转到"Program"选项卡并提供.bin 文件。 一旦您按下编程按钮、LM 闪存编程器应该从 MCU 接收到 BOOTP 请求并开始 TFTP 下载。  

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

    谢谢。 还有一个问题、但在我可以使用 LM 闪存之前、我应该使用什么函数调用、并且在函数调用之前有一些步骤要做。 在使用 LM 闪存之前和之前、我都使用了基于 ROM 的 UART、我必须在代码中包含一些步骤、如下所示。 在我可以使用 LM 闪存之前,应用程序中需要包括哪些代码行来调用 ROM 以太网,确切的函数调用是 ROM_UpdateEthernet()? 我在任何地方都找不到这个。


    //
    //禁用所有处理器中断。 而不是逐个禁用它们
    //时间,直接写入 NVIC 以禁用所有外设
    //中断。
    //
    HWREG (NVIC_DIS0)= 0xffffffff;
    HWREG (NVIC_DIS1)= 0xffffffff;
    HWREG (NVIC_DIS2)= 0xffffffff;
    HWREG (NVIC_DIS3)= 0xffffffff;
    HWREG (NVIC_DIS4)= 0xffffffff;

    //
    //调用 ROM UART 引导加载程序。
    //
    ROM_UpdateUART();


    此致、
    AJ
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的、我看到您正在尝试执行的操作。 您需要从应用程序代码调用 ROM_UpdateEMAC。 是的、按照您对 UART 所做的操作来禁用所有中断。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Charles、

    还有一点、您提到的步骤适用于非基于 RTOS 的工程。 自从我使用 TI RTOS/SYS BIOS 以来、还有其他事情要做吗? 我不使用 LWIP、而是使用 NDK。 但是、如果我执行 BIOS_exit、是否会阻止 NDK 运行? 我在这里有点困惑、但这里是我的想法、请告诉我是否有遗漏的东西。 或者、如果有人这样做、那么拥有一些有关实际步骤的文档将会大有帮助。

    我从下面这个帖子中得到了我的想法

    e2e.ti.com/.../723031


    system_atexit( SomeFunction );//请参阅下面的 SomeFunction
    BIOS_exit (0);//

    石榴


    我将在这里执行所有 LWIP 和网络初始化。 问题是、在执行 LWIP 初始化和其他操作来为 LM 闪存设置系统之前、我应该禁用 NDK 吗?
    如果是、我该怎么做?
    还是需要禁用 NDK?
    或者 BIOS_exit 是否首先发生在执行该 SomeFunction 之前、因此需要禁用 NDK?
    或者、由于 NDK 是 RTOS 网络堆栈、我甚至需要 LWIP 吗?
    如果我不使用 LWIP、 BIOS_exit 不会禁用 NDK、那么 LM 闪存将如何通信?


    然后、在处理完上面的所有网络内容后、我将调用下面的行

    HWREG (NVIC_DIS0)= 0xffffffff;
    HWREG (NVIC_DIS1)= 0xffffffff;
    HWREG (NVIC_DIS2)= 0xffffffff;
    HWREG (NVIC_DIS3)= 0xffffffff;
    HWREG (NVIC_DIS4)= 0xffffffff;

    //
    //调用 ROM UART 引导加载程序。
    //
    ROM_UpdateEMAC();


    对上述步骤有什么看法?

    谢谢
    AJ
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我不太确定您为什么要做 LwIP 启动项目? 正如您在另一篇文章中指出的那样、您想要退出 BIOS 并禁用所有 NDK 内容。 调用 ROM_UpdateEMAC 时、不希望先前的以太网设置保持活动状态。 我们没有在运行 TI-RTOS NDK 时调用 ROM 以太网引导加载程序的示例。 如果您能让它工作并与社区分享、那将是一件很棒的事情。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    问题是、一旦我退出 BIOS 并禁用 NDK、如果没有启用的网络堆栈、LM 闪存将如何与器件通信? 根据您之前的消息、我假设 ROM_UpdateEMAC 负责处理所有网络工作、是这样吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    禁用 NDK 后、您将需要再次初始化 EMAC/PHY。 我不确定您是否可以保留之前由 NDK 设置的 EMAC/PHY 配置。 也许可以保留相同的设置。 请尝试查看它是否起作用。 如果不是、则参考 TivaWare 以太网示例重新初始化 EMAC/PHY。