TMS320C6678---MCSDK的NDK例程HelloWorld编译调试

软件版本:mcsdk_2_01_02_06

例程路径:D:\ti\mcsdk_2_01_02_06\examples\ndk\helloWorld

硬件平台:TMS320C6678+XC7K325T-2FFG900I

导入helloWorld例程到CCS的WorkSpace,工程路径在D:\ti\mcsdk_2_01_02_06\examples\ndk\helloWorld

导入platform库工程到CCS的WorkSpace,工程目录在D:\ti\pdk_C6678_1_1_2_6\packages\ti\platform\evmc6678l\platform_lib

platform库使用方法:helloWorld例程使用了MCSDK的PDK组件的platform库,因此如果修改了platform库则需要重新rebuild platform工程,重新生成新的库,然后helloWorld工程也要rebuild,这样才能根据新的库生成目标代码。

helloWorld例程库路径修改:因为例程依赖于platform库,所以需要添加platform库路径才能正确编译,由XDC的cfg文件

TMS320C6678---MCSDK的NDK例程HelloWorld编译调试_第1张图片

工程使用了platform的ti.platform.evm6678l.ae66库(注ti.platform.evm6678l.ae66e表示大端库,.ae66表示小端)

修改方法如下

TMS320C6678---MCSDK的NDK例程HelloWorld编译调试_第2张图片

上图中库路径可以是D:\ti\pdk_C6678_1_1_2_6\packages\ti\platform\evmc6678l\platform_lib\lib\debug,也可以是D:\ti\pdk_C6678_1_1_2_6\packages\ti\platform\evmc6678l\platform_lib\lib\release,区别在于Project->Build Options..->Compiler选项卡->Generate Debug选项的配置不同。

库源文件修改:

我是用的硬件板卡的SGMII时钟输入是156.25MHz,TI官方开发板是312.5MHz,同时DDR选型布线也不同,还需要修改DDR初始化程序。例程使用gel文件初始化DSP的时钟以及DDR,网络程序初始化在platform工程。

1:加载GEL文件

先预加载了GEL,打开目标配置文件TMS320C6678---MCSDK的NDK例程HelloWorld编译调试_第3张图片

选择Advanced选项卡

TMS320C6678---MCSDK的NDK例程HelloWorld编译调试_第4张图片

在上图位置添加GEL文件(例程是运行在core0),CCS5的版本可以在这个目录下找到大部分EVM的gel脚本:CCS安装路径\ccsv5\ccs_base\emulation\boards

2.修改GEL文件

板卡上电后,CCS通过JTAG连接调试板卡,则会首先从GEL的StartUp( )函数开始执行初始化,JTAG连接后执行OnTargetConnect( )函数,OnTargetConnect( )会调用Global_Default_Setup_Silent()函数中的ddr3_setup_auto_lvl_1333(0);和 configSGMIISerdes();函数完成DDR和SGMII的初始化,因此只需根据板卡修改这两个函数即可。

3.修改platform工程源文件

在platform.c文件中

configSerdes表示初始化SGMII Serdes,与GEL文件重复,所以必须修改这个函数,是的PLL正确倍频到2.5G

TMS320C6678---MCSDK的NDK例程HelloWorld编译调试_第5张图片

Init_SGMII表示初始化MAC1,MAC0不适用,如果板卡使用MAC0,则需要取消注释。

修改完成后Rebuild platform工程,生成新的库,然后Rebuild helloWorld工程,生成目标板可执行程序。

 

关于MAC0通信方法,参考https://e2echina.ti.com/question_answer/dsp_arm/c6000_multicore/f/53/p/62432/140854#140854

你可能感兴趣的:(TMS320C6678---MCSDK的NDK例程HelloWorld编译调试)