各位TI大神好:
最近我在调试我们公司研制的带C6678板卡遇到这样的怪问题:我的网络工程在基于CC5.3下,mcsdk_2_01_02_05,pdk_C6678_1_1_2_5,ndk_2_21_01_38这样的环境下在上电初始化网络时,能正常初始化通过,网络通信传输也正常。
当我把该工程用在CC5.5,mcsdk_2_01_02_06,pdk_C6678_1_1_2_6,ndk_2_21_02_43环境下时,且电脑系统为WIN7 64位。这时工程在相关路径修改后编译也通过了,在RTSC选项里不勾选“ndk_2_21_02_43”的情况下,上电后网络能正常初始化通过,通信正常。但一旦选择勾选了“ndk_2_21_02_43””,在编译加载后,网络初始化通不过了。跟踪发现是平台支持库里的init_sgmii(1)函数初始化不通通过。这现象太奇怪了,忘各位TI DSP大神解惑。
注:CC5.5.安装后,ndk_2_21_01_38不能加载成功,所以才使用的ndk_2_21_02_43。该问题我查了几天发现,我的工程代码都一样,就只RTSC选项里NDK的差别,其它都一样。一旦勾选了“ndk_2_21_02_43”,该工程在CC5.5下就再也无法还原来跑通网络初始化了。
Andy Yin1:
可能跟SGMII的配置有关,init_sgmii在pdk_C6678_1_1_2_6\packages\ti\drv\pa\example\emacExample\cpsw_mgmt.c中实现,可以先将之前的init_sgmii拿过来使用看看是否ok,再比较一下两者的差异,单步调测看看到底是在哪一步不通过。