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/TDA3XEVM:如何设置 NDK 驱动程序?如何设置 NDK 驱动程序? 是否启用双网络端口以支持不同的静态 IP 地址?

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/673859/rtos-tda3xevm-how-to-set-up-ndk-driver-how-to-set-up-ndk-driver-enable-dual-network-ports-to-support-different-static-ip-addresses

器件型号:TDA3XEVM

工具/软件:TI-RTOS

XDC_version=3_32_01_22_core
NDK_VERSION=2_24_02_31
BIOS_version=6_46_04_53
UIA_VERSION=2_00_05_50
EDMA3_version=02_12_00_20

我已完成以下操作,但失败,请告诉我正确的详细添加步骤、谢谢

静态 int Nimu_NDK_init0 (STKEVENT_Handle hEvent)
{
NETIF_DEVICE *pNETIFDevice;

#if 已定义(NSP_DYNAL_ADLOCENT)
/*为网络接口对象分配内存*/
pNETIFDevice =(NETIF_device *) mmAlloc (sizeof (NETIF_device));
if (pNETIFDevice ==空)
{
dprint ("错误:无法为 NIMU 接口对象分配内存\n");
返回-1;
}
其他
pNETIFDevice =&NETIF_DEVICE_Obj0;
#endif

/*初始化分配的内存块。 *
memset (pNETIFDevice、0、sizeof (NETIF_device));

#if!defined (nsp_dynamical_allocation)
/*
*在这种情况下、告诉堆栈不要为我们调用 mmFree!
*这使驱动程序能够完全控制的方式
*为此 NIMU 设备实例分配/释放。
*
pNETIFDevice->flags = NIMU_DEVICE_NO_FREE;
#endif


/*填充网络接口对象。 *
strcpy (pNETIFDevice->name、"eth0");

/*
* MTU 是可以放入以太网的(IP)数据包的总大小。
*以太网为1500字节
*
pNETIFDevice->MTU = ETH_FRAME_SIZE - ETHDR_SIZE - VLAN_TAG_SIZE;

/*暂停 STKEVENT_Handle、直到我们在 START 函数中使用它*/
pNETIFDevice->pvt_data =(void *) hEvent;

/*填充驱动程序接口功能。 *
pNETIFDevice->START =&NIMU_NDK_START;
pNETIFDevice->STOP =&NIMU_NDK_STOP;
pNETIFDevice->POLL =&NIMU_NDK_POLL;
pNETIFDevice->SEND =&NIMU_NDK_SEND;
pNETIFDevice->pkt_service =&NIMU_NDK_pktService;
pNETIFDevice->ioctl =&Nimu_NDK_ioctl;
pNETIFDevice->add_header =&NIMU_NDK_addEthernetHeader;

/*使用 Nimu 注册器件*/
IF (NIMURegister (pNETIFDevice)< 0)
{
dlprint ("错误:无法注册 GMACSW\n");
返回-1;
}

dprint ("成功注册 GMACSW \n);

VPS_printf ("++++++ 00NIMU_NDK_init0++++ \n");

返回0;
}

静态 int Nimu_NDK_init1 (STKEVENT_Handle hEvent)
{
NETIF_DEVICE *pNETIFDevice;
VPS_printf ("++++++ 0haha+++++ \n");

#if 已定义(NSP_DYNAL_ADLOCENT)
/*为网络接口对象分配内存*/
pNETIFDevice =(NETIF_device *) mmAlloc (sizeof (NETIF_device));
if (pNETIFDevice ==空)
{
dprint ("错误:无法为 NIMU 接口对象分配内存\n");
返回-1;
}
其他
pNETIFDevice =&NETIF_DEVICE_Obj1;
#endif

/*初始化分配的内存块。 *
memset (pNETIFDevice、0、sizeof (NETIF_device));

#if!defined (nsp_dynamical_allocation)
/*
*在这种情况下、告诉堆栈不要为我们调用 mmFree!
*这使驱动程序能够完全控制的方式
*为此 NIMU 设备实例分配/释放。
*
pNETIFDevice->flags = NIMU_DEVICE_NO_FREE;
#endif


/*填充网络接口对象。 *
strcpy (pNETIFDevice->name、"eth1");

/*
* MTU 是可以放入以太网的(IP)数据包的总大小。
*以太网为1500字节
*
pNETIFDevice->MTU = ETH_FRAME_SIZE - ETHDR_SIZE - VLAN_TAG_SIZE;

/*暂停 STKEVENT_Handle、直到我们在 START 函数中使用它*/
pNETIFDevice->pvt_data =(void *) hEvent;

/*填充驱动程序接口功能。 *
pNETIFDevice->START =&NIMU_NDK_START;
pNETIFDevice->STOP =&NIMU_NDK_STOP;
pNETIFDevice->POLL =&NIMU_NDK_POLL;
pNETIFDevice->SEND =&NIMU_NDK_SEND;
pNETIFDevice->pkt_service =&NIMU_NDK_pktService;
pNETIFDevice->ioctl =&Nimu_NDK_ioctl;
pNETIFDevice->add_header =&NIMU_NDK_addEthernetHeader;

/*使用 Nimu 注册器件*/
IF (NIMURegister (pNETIFDevice)< 0)
{
vps_printf ("错误:无法注册 GMACSW\n");
返回-1;
}

dprint ("成功注册 GMACSW \n);

VPS_printf ("++++++ 1NIMU_NDK_init1+++ \n");

返回0;
}

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

    该项目非常紧迫、请帮助回答、谢谢您!

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

    您好!

    如果您使用的是 NSP 驱动器软件包、您能告诉我吗?  

    如果是、NSP 不支持双 MAC、则需要使用 VSDK Linux 来使用双 MAC。

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

    是的、我们使用的是 NSP 驱动程序。 我们的主板只有 BIOS 操作系统、没有 Linux 系统。 您的意思是 NSP 仅不支持双网络端口、但在我们向您的工程师确认之前、双向 MAC 解决方案是可行的? 我看到驱动程序支持设置的位置(见我的图片)。

    可以帮助我再次确认、我可以同时使用双网络端口、并设置不同的 IP 地址、谢谢

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

    NSP 不支持双 MAC 模式(两个端口可同时使用)。

    我将与我们的 FAE 合作、并向您进行相应更新。