TMDSEVM6678L_EVM RTSC+NDK 网口通信调试记录
本文记录调试TI DSP C6678开发板网口的过程和注意事项。
测试环境
-
Windows 11 家庭中文版 22H2
-
AMD Ryzen 7 7840HS 16GB RAM
-
TMDSEVM6678L_EVM开发板(板载Blackhawk XDS560v2-USB Mezzanine Emulator)
-
CCS 9.3.0.00012
-
c667x PDK 2.0.16
-
NDK 3.61.1.01
-
SYS/BIOS 6.76.3.01
使用PDK的版本为官网最新版本2.0.16,不使用开发板附带光盘中的pdk_C6678_1_1_2_5或1_1_2_6等旧版本。PROCESSOR-SDK-C667X 软件开发套件 (SDK) | 德州仪器 TI.com.cn
配套安装新版NDK 3.61.1.01,光盘中的2_21_1.38版本有bug,在CCS中无法正确使用。
生成工程
在C:/ti/pdk_c667x_2_0_16/packages目录下,在powershell中依次运行pdksetupenv.bat
和pdkProjectCreate.bat
脚本,生成工程。
运行pdksetupenv.bat结果:
运行pdkProjectCreate.bat,参数含义参考bat文件
.\pdkProjectCreate.bat C6678 evmC6678 little nimu all dsp
运行结果:
执行完成后,会在MyExampleProjects目录下生成两个工程目录,以下使用NIMU_emacExample_EVMC6678BiosExampleProject为例
配置工程
在CCS中Export上述工程,在Project-Properties-General-Project选项卡中设置dsp型号、连接方式,检查Products选项卡中库是否选择正确。
修改代码
本工程的入口在helloWorld.c文件中,需要配置网络参数。104行LocalIPAddr为相连PC的IP地址,114行clientMACAddress为PC的mac地址,可使用ipconfig /all
获取。
299行若为if(1)表示使用Static IP 方式,我们此处使用DHCP方式,改为if(0)。
打开targetConfigs-TMS320C6678.ccxml文件,选择Advanced Setup-Target Configuration,选择C66xx_0核,在initialization script中选择gel文件。最后编译工程。
网络配置
编译完成后,准备上电测试,使用网线连接开发板和PC,将开发板SW9的User Switch2拨码开关(下图红框右侧开关)设置为ON。
由于Windows没有DHCP server服务,因此需要自己安装该服务,使用dhcpsrv2.5.2实现。
首先打开dhcpwiz.exe,使用wizard设置参数:
此时需要将开发板先上电,选择有线网口(以太网2)
暂时不使用以下功能,无需设置,跳过
设置IP地址池的范围
选择Overwrite existing file,Write INI file
启动服务,建议Configure Firewall exceptions
功能测试
重新将开发板上电,点击debug,烧写、运行程序。若正确输出Network Added和IP地址,此处为192.168.10.1,DHCPC:Enabled:Running:017,则工作正常。
提示:在打印Running:000之后,DHCP分配IP地址需要一定时间,若检测不到设备,可尝试重新插拔网线/重启dsp/重启dhcp服务等方法。
使用ping命令,能够ping通:
使用卓岚TCP&UDP调试工具(或其他类似工具)进行收发测试。本工程使用UDP方式,将收到的数据回传,因此设置工作模式为UDP,设置目的IP为程序输出的IP地址(此处为192.168.10.1),设置目的端口为7。测试结果如下:
静态IP配置
2023/9/9更新:
由于自制板上将DSP配置为静态IP,因此下面为静态IP配置方法:
设置开发板IP为192.168.10.100、子网掩码和默认网关,同时在网络属性做相应设置
根据上两图,可以ping通,且抓包正常