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.

[参考译文] LMFLASHPROGRAMR:以太网编程不会在正确的接口上发送 UDP 数据包

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/993547/lmflashprogrammer-ethernet-programming-does-not-send-out-the-udp-packets-on-correct-interface

器件型号:LMFLASHPROGRAMMER

我的 PC 上有两个活动的以太网 NIC (win10 pro)。

一个是192.168.2.x 网络,另一个是172.16.x.y 网络

我想对网络172.16上的单元进行编程。 我从以太网适配器下的下拉列表中选择它并填写设备的 IP 和 MAC、但它无法连接。

使用 Wireshark,我可以看到即使我选择172.16.x.y 网络适配器,UDP 数据包仍在从192.168.2.x 网络传出。

如果我将设备移动到我的192.168.x 网络(并将 IP 字段更新到该网络上的新 IP)、我可以对其进行编程。

看起来这不是一个正在维护的工具、但是否有人没有解决我自己的编程器的实施问题?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="483886" URL"~/support/microcontrollers/other/f/other-microcontrollers-forum/993547/lmflashprogramr-ethernet-programming-does-not-send-out-the-udp-packets-on-correct-interface "]它看起来不像正在维护的工具,但是否有任何人在实施我自己的编程器时没有权变措施?[/quot]

    我自己还没有尝试过、但发现 使用 LM 闪存编程器通过以太网进行自动闪存更新 可以解决问题。

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

    在 TivaWare TivaWare_C_Series-2.2.0.295中、有 tools/bin/eflash.exe、这是一个命令行"以太网引导加载程序下载实用程序"、其源 文件位于 tools/eflash 目录中。

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

    切斯特、您好!

     感谢您指出 eflash.exe、但我有点怀疑它可能会产生相同的结果、但如果需要、可以修改源代码。  

    尊敬的 David:

     LM Flash Programmer 中存在错误。 如果您想使用 LM Flash 程序、解决方法是 禁用 Windows 控制面板中的所有网络适配器(您使用的接口除外)、LMFlash 将向正确的接口发送魔术包。 另请按照 Chester 的建议尝试、因为目前没有更新 LM 闪存编程器的计划。  

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

    这似乎是一个非常简单的修复(可能需要在套接字上正确设置 localendpoint?) 在7年里没有被确定:-(

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

    好的,我*was *能够使用 tools/eflash 目录中提到的源代码来修复它。

    对于其他人、我必须:

    查找适用于 Windows 的 getopt.c/getopt.h 工作副本、并将其粘贴到我的项目中。

    添加

    #pragma warning(disable : 4996)
    #pragma comment(lib, "Ws2_32.lib")

    将--localip=选项添加到命令参数中

    纠正线路  

     sUpdateSocket = CreateSocket(ui32LocalAddr, htons(MPACKET_PORT), 1, FALSE);

    更改为如此  

     sUpdateSocket = CreateSocket(ui32LocalAddr, htons(MPACKET_PORT), 1, TRUE);