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.

[参考译文] RTOS/TM4C1292NCPDT:对 MAC 地址进行编程时闪存损坏

Guru**** 2480155 points
Other Parts Discussed in Thread: UNIFLASH

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/698251/rtos-tm4c1292ncpdt-flash-memory-getting-corrupted-while-programming-mac-address

器件型号:TM4C1292NCPDT
主题中讨论的其他器件:UNIFLASH

工具/软件:TI-RTOS

您好!

对于我的应用、我将闪存分为4个部分

引导代码:0x0-0x3FFF

通用存储器区域:0x80000 - 0x83FFF

图像1:0x4000 - 0x7FFFF

图2:0x84000 - 0xFFFFFF

通用存储器区域包含一个经常访问的变量结构。

当我提交 MAC 地址时、该内存损坏。 问题可能出在哪?

闪存用户寄存器与该存储器区域有何关系?  当 MAC 地址未被提交时、闪存不会损坏。 请提供您的建议。

此致

Sandra

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

    您如何提交 MAC 地址? 您使用的是 LM 闪存编程器还是其他一些方法?

    您是否知道在提交 MAC 地址时代码是否正在运行? 如果是、可能正在执行什么代码? 我之所以提问、是因为我想知道 MAC 地址期间的代码执行是否会影响程序计数器等内容。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Ralph、

    我正在通过 UniFlash 对 MAC 地址进行编程。 编程之前、我解锁了闪存用户寄存器。 正在对 MAC 地址进行编程、映像正在引导。 MAC 地址分配正确。 闪存存储器损坏现在不存在。

    我所面临的问题是,当我用0和1以外的十六进制值对 MAC 地址进行编程时,以太网未连接。

    例如、如果我使用00-00-00-00-00-00-01对 MAC 地址进行编程、则表明 TCP 连接已正确建立。 但是、如果我使用11-22-33-44-55-66等 MAC 地址、则无法建立以太网连接。 这样做的原因可能是什么?

    下面 显示了尝试建立以太网连接时的 Wireshark 日志。

    PC 的 IP 地址为192.168.8.3、电路板设置为 IP 地址192.168.8.2。

    这种行为的原因可能是什么? 我们是否需要更改任何配置? 请提供建议。

    此致

    Sandra

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

    抱歉、Wireshark 日志未正确连接。 附加 Wireshark 日志。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您能否上传日志而不是屏幕截图?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Sandra、

    感谢您分享这些详细信息!

    我认为您遇到的问题与此主题中 Uniflash 发现的问题相关: http://e2e.ti.com/support/microcontrollers/tiva_arm/f/908/p/656492/2411329#2411329

    我签出了错误跟踪器、在它正在运行时、在下一个版本之前将无法获得修复(不确定何时安排了修复、因为我不是该团队的一员)。

    您能否在平均时间内使用 LMFlash 编程器来处理 MAC 地址编程?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Ralph、
    我正在使用 XDS100对电路板进行编程。 在使用 XDS100的同时、能否使用 LM 闪存编程器? 我还使用系统调用函数调用此 uniflash 命令。 LM 闪存编程器是否支持任何命令行操作、如 uniflash?

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

    遗憾的是、LMFlash 不支持 XDS100。 关于命令行、TivaWare 的 tools/bin fold 中的 eflash.exe 实用程序是与 LM 闪存编程器等效的命令行、但仅此而已。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    拉尔夫

    那么、到目前为止、这一问题还没有解决方案吗?

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

    嗯、嗯、我认为 Uniflash 并不总是存在这个问题... 您运行的是哪个版本? 您是否有任何可以访问的旧版下载? 我想知道、在更新解决之前、较旧的 Uniflash 是否能够允许您对 MAC 地址进行正确编程。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Ralph、

    我使用 UniFlash v3.4对 MAC 地址进行编程。

    我尝试在不使用 UniFlash 实用程序的情况下使用 flashUserSet()从程序中设置 Mac 地址。 然后、对于0和1以太网连接正在建立。 但当我尝试使用其他 Mac 地址时、以太网未连接。 那么、在写入 Mac 地址之前、我是否需要进行任何配置?

    谢谢

    Sandra

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您还能告诉我们支持 Mac 地址编程的 UniFlash 版本吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Sandra、

    我确认3.4没有 MAC 地址编程问题。 问题是在4.2上发现的、我不确定它是否也影响到4.1、或者它是从4.2开始。 在任何情况下、3.4正常、因此我们现在排除了工具出现故障的情况。

    我将在我们的以太网专家中了解有关循环的信息、他应该能够更好地了解有关 MAC 地址问题的其他信息。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    您不能使用任何随机 MAC 地址。 MAC 地址的前3个字节是 OUI (组织唯一标识符)。 对于定制设计、MAC 地址必须来自分配给组织/公司的 MAC 地址池。 这意味着、对于 MAC 地址的前三个字节、您需要使用分配给贵公司的值。 11-22-33不太可能是贵公司的 OUI。

    第一个八位位组的位0和位1具有特殊意义。 位0决定 MAC 地址是单播还是多播、位1决定 MAC 地址是普遍管理还是本地管理。 第一个八位位组是11。 这意味着您说您的 MAC 地址是多播地址、并且是通用管理地址。 您的网络交换机可能会也可能不会选择转发多播数据包。

    我建议您使用 launchpad 作为测试工具来运行/验证您的应用。 如果运行正常、则您的应用程序可能正常。 接下来、尝试为您的 MAC 地址查找您自己的唯一 OUI、并将其编程到您的定制板中、而不是11-22-33-xx-xx-xx。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    非常感谢您提供的支持。 这些信息非常有用。 现在以太网正在连接。

    谢谢

    Sandra