1. 适用范围 本方法适用于SylixOS AMP下配置有虚拟网络设备的跨网段通信。内核版本:1.7.3,硬件平台:TMDSEVM6678LE。

  2. 背景 在近期构建的DSP6678工程中,0核运行SylixOS lite版,1-7核运行SylixOS动态加载版。其中只有0核能够使用有线网络,1-7核无法使用,使得无法通过网络调试和动态加载应用程序。然而每个核配置了虚拟网络,该虚拟网络基于共享内存实现。此时,需要配置网络,使得PC端能够通过DSP板卡上的有线网口与所有核通信。

  3. 网络拓扑图 图 3 1是PC与TMS320C6678的网络拓扑图 图 3 1 网络拓扑图 TMS320C6678: 虚拟网卡se1: ip=192.168.3.201 虚拟网卡se2: ip=192.168.3.200 物理网卡en1: ip=192.168.1.230 PC: 物理网卡enet1: ip=192.168.1.200

  4. 网络配置 总体来说只需要设置两种配置即可: 1、 配置网关; 2、 开启CORE0转发。 详细配置如下: 1、 PC端: enet1配置网关为en1 ip=192.168.1.230; 此时可以ping通se2。如果pc端存在同时使用多网卡且其他网卡设置了网关,此时会造成网络冲突。可以手工添加一条永久路由:route -p add 192.168.3.0 mask 255.255.255.0 192.168.1.230 metric 3 (删除:route delete 192.168.3.0) 图 4 1 pc ping se2

2、 CORE0: ipforward 1 使能core0转发,当网卡收到目的地址非本网卡的报文后,将找到合适路由转发报文。如果此时只配置了网关,pc端enet1的报文只能到达se2,无法到达se1。 3、 CORE1: ifconfig se1 gateway 192.168.3.200 配置se1的网关,将其配置成se2的ip:192.168.3.200 这样,当SylixOS_1需要上PC发报文时,它就会先将报文发送给se2。 route add default dev se1 在core1上,需要设置默认设备,只有设置好默认网络设备后,默认网关才会开启,否则,ping的时候会一直报主机不可达错误。

配置完成后,通过PC端可以ping通C6678 CORE1-CORE7的虚拟网卡se1,也可以通过telnet登录。

								 4 2 pc ping se1

值得注意的是1.7.3内核虚拟网卡驱动代码中修改netdev的校验和的标志位。即NETDEV_CHKSUM_ENABLE_ALL 0x00ff改为0xffff,从而可以产生IP、ICMP、TCP等协议的头部校验和,实现与外部设备通信。