Davinci的程序分DSP程序及ARM程序,DSP程序我们在CCS中编辑和编译,ARM程序在Source Insight中编辑,在Linux中的dvsdk1.3工具链下编译。
以下是我们在开发过程中所使用的软件:
Windows:
CCS 3.3 DSP程序编译环境
TDS560USB 仿真器驱动
VMWare5.0 虚拟机软件
Source Insight 3.5 软件工程编辑工具
Tera Term 串口控制软件
DVFlasher 串口flash烧写工具
UltraEdit-32 文本编辑工具
Linux:
dvsdk1.3 ARM交叉编译工具链
GCC3.2.2 编译器
VI 文本编辑工具
同时,在linux下需要启动如下服务:
samba 通过网络提供与windows共享文件功能
nfs 通过网络给Davinci板卡提供根文件系统
tftp 通过网络下载文件至Davinci板卡
dhcp 动态分配IP
2、Davinci调试环境搭建及使用总体步骤
Davinci调试环境搭建及使用可以分成5大步:
1, 搭建linux环境
2, 安装arm编译环境
3, 搭建CCS环境
4, 编译库,生成x64P,由ARM端可执行程序调用运行
5, 编译uboot并烧写进flash,烧写内核及根文件系统
三、搭建linux环境
安装linux操作系统,可以在物理硬盘上直接安装,也可以采用在Windows的虚拟机上安装,方法并不唯一,我们采用的是在Windows的虚拟机上安装。同样,本文提到的许多方法都不是唯一的实现方式,而只是我们所采用的那一种方法。
安装虚拟机与linux时请参考文档《虚拟机软件Vmware Workstation 5.0使用指南.doc》,需要注意几点:
1, 分配硬盘空间时,至少需要12G;
2, 物理内存推荐256M以上,安装linux时,swap空间大小加上物理内存大小必须超过600M;
3, 安装linux时,可以使用光盘安装,也可以使用硬盘上的ISO映象文件进行安装;与不用虚拟机在物理硬盘上安装的过程是一样的;
在安装好linux后,需要安装VMware Tools。
注意:由于后面需要与Windows之间进行通讯,我们的虚拟机网络采用网桥的方式,将虚拟机中linux的IP配置成与主机Windows同一网段,例如,Windows的IP为192.168.1.80,我们可以指定Linux的IP为192.168.1.81,在命令行输入如下命令:
ifconfig eth0 192.168.1.81 netmask 255.255.255.0
然后,Linux与Windows就可以互相ping通了。
要执行本步骤,系统需要满足如下条件:
1. 安装了RedHat Linux 9.0或其他较新linux版本,且安装时应选择了下列组件:
a) Editors包中的vi
b) Network servers包中的dhcp
2. Redhat Linux 服务器的IP地址为192.168.1.81、子网掩码为255.255.255.0
3. 知道root用户的密码。
安装arm编译环境需要以下的工具包:
mvl_4_0_1_demo_sys_setuplinux.bin
mvl_4_0_1_demo_target_setuplinux.bin
mvl_4_0_1_demo_lsp_setuplinux_#_#_#_#.bin
dvsdk_setuplinux_#_#_#_#.bin
xdc_setuplinux_#_#_#_#.bin
bios_setuplinux_#_#_#_#.bin
TI-C6x-CGT-v#.#.#.#.bin
其中的#代替数字,表示版本号,我们当前使用的版本具体如下:
mvl_4_0_1_demo_sys_setuplinux.bin
mvl_4_0_1_demo_target_setuplinux.bin
mvl_4_0_1_demo_lsp_setuplinux_01_20_00_014.bin
dvsdk_setuplinux_1_30_00_40.bin
bios_setuplinux_5_33_03.bin
TI-C6x-CGTEVAL-v6.0.15.1.bin
xdc_setuplinux_3_00_02_14.bin
下面详细说明以上这些文件如何安装:
1、安装ARM交叉编译环境
启动RedHat Linux服务器,到出现登录画面时,使用root用户登录,
(1)搭建MontaVista Linux开发环境
直接运行前3个文件,根据提示操作即可。命令如下:
host $ ./mvl_4_0_1_demo_sys_setuplinux.bin
host $ ./mvl_4_0_1_demo_target_setuplinux.bin
host $ ./mvl_4_0_1_demo_lsp_setuplinux_
#_#_#_
#.bin
运行时会询问存放目录,推荐为 /opt/mv_pro_4.0.1 。
以上3个命令生成3个压缩包,先确认生成的3个压缩包:
host $ cd /opt/mv_pro_4.0.1
host $ ls
有如下3个压缩文件:
mvltools4.0.1-no-target.tar.gz
mvl4.0.1-target_path.tar.gz
DaVinciLSP-#_#_#_#.tar.gz
分别解压,使用下面命令:
host $ tar zxf mvltools4.0.1-no-target.tar.gz
host $ tar zxf mvl4.0.1-target_path.tar.gz
host $ tar zxf DaVinciLSP-
#_
#_
#_
#.tar.gz
这样就创建了新目录 /opt/mv_pro_4.0.1/montavista/ ,其中存放了内核源码、根文件系统、Arm-gcc编译器等。
(2)安装dvsdk工具链
运行如下命令:
host $ ./dvsdk_setuplinux_#_#_#_#.bin
会生成一个目录/opt/dvsdk_1_30_00_40,
host $ ./xdc_setuplinux_#_#_#_#.bin
host $ ./bios_setuplinux_5_#_#_#.bin
运行时会询问存放目录,指定为 /opt/dvsdk_1_30_00_40 。
在/opt/dvsdk_1_30_00_40下新建一个目录,名为cg6x_6_0_15
执行如下命令:
host $ ./TI-C6x-CGT-v#.#.#.#.bin
运行时会询问存放目录,指定为 /opt/dvsdk_1_30_00_40/ cg6x_6_0_15 。
到这一步,所需要的工具链就安装完成。下一步是进行适当的路径配置。
(3)dvsdk工具链的路径配置
/opt/dvsdk_1_30_00_40路径下有一个重要的配置文件:Rules.make,由于刚才另外在dvsdk目录下安装了三个工具,在Rules.make需要有相应的更改。
对应XDC_INSTALL_DIR宏及BIOS_INSTALL_DIR宏,需要改成如下值:
XDC_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/xdc_3_00_02
BIOS_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/bios_5_33_03
在需要使用到DSP程序编译处,需要改动相应的CGTOOLS_C64X宏如下:
CGTOOLS_C64X = $(DVSDK_INSTALL_DIR)/cg6x_6_0_15
至此,就可以进行ARM端程序的编译了。
2、系统配置
嵌入式系统由于对成本、体积、功耗等方面的要求,一般不能安装发行版的Linux系统。所以Davinci系统也需要相应的开发环境,来进行程序的开发调试。
在进行程序开发调试时,我们采用NFS与tftp等网络通信方式共享Linux服务器中的资源,用于嵌入式Linux进行访问、改写。
本部分主要介绍包括NFS,DHCP服务,samba服务以及DVEVM板部分参数的配置。
(1)设置NFS
[davinci@DavinciServer davinci]$ cd /root
[davinci@DavinciServer davinci]$ mkdir -p armfs
[davinci@DavinciServer davinci]$ cd /root/armfs/
[root@DavinciServer filesys]# cp -a 下面一行内容紧跟在-a后,有一空格/opt/mv_pro_4.0/montavista/pro/devkit/arm/v5t_le/target/* .
[root@DavinciServer filesys]# vi /etc/exports
在vi的界面下按i键进入输入状态,输入如下内容:
/root/armfs/ *(rw,sync,no_root_squash)
按Esc键退出输入状态,按:键(即Shift+;)键,键入命令wq
五、安装DSP程序的编译环境
TI公司提供了高效的C编译器和集成开发环境Code Composer Studio ,可以方便的编译调试DSP程序,同时CCS的帮助文档也是十分全面。
1、安装CCS3.3
这部分安装比较简单,详细指导参见TI公司的CCS安装指南,可分成两部分:
1,解压并安装Code_Composer_Studio_v3.3_Build_3.3.38.2.zip
一般使用默认的配置即可,但是要注意在选择仿真芯片类型时,必须同时选上C6000、OMAP,以及
TMS470系列,这是由于需要同时支持DSP与ARM的仿真运行。
2,运行CCS_v3.3_SR5_3.3.54.1.exe,采用默认的配置即可。
2、安装TDS560USB驱动
安装TDS560USB驱动与ccs设置都需要仔细操作,一步操作错误就会导致最后使用不起来。
(1)安装TDS560USB驱动时注意事项
请注意正确连接14针的JTAG电缆,该电缆接错可能会导致仿真器或目标系统永久损坏;仿真器14孔插头的第六孔已经封闭,目标系统JTAG
14针插针的第六针应该拔掉。如果不能确定接插件的连接方向,请与您的经销商联系或查询我们的网站中的相关信息。
为发挥TDS560USB 仿真器的性能,主机应具备USB2.0接口。如果没有USB2.0的接口,最好使用PCI-USB2.0
or PCMCIA-USB2.0转接卡。
请不要带电拔插JTAG电缆。
在移动和搬运TDS560USB系统时,请注意TDS560 POD上的线缆不能负重,否则内部电缆容易损坏。
(2)USB设备驱动程序安装
将TDS560USB仿真器与目标板连接、计算机相连。
然后将电源与TDS560USB仿真器相连,此时POWER灯亮,READY闪烁。
按照Windows 的“发现新硬件”提示指定 WintechDigital TDS560USB设备驱动程序所在的目录。在产品安装光盘的drivers目录下 (Win98/SE 是在 drivers/win98_me, Win2000/XP是drivers/win2k_xp )。
设备驱动安装完成后,Windows将在设备列表中列出TDS560USB Emulator for Windows 98 或TDS560USB Emulator for Windows 2000/XP/2003。
注:
如果找不到这个设备,请检查硬件的连接是否正确。
如果误把TDS560USB Emulator for Windows 98驱动程序安装到Windows 2000/XP/2003系统中,请在设备管理器中对该设备使用“更新驱动程序”功能。
(3)安装TDS560USB仿真器工具软件
在安装TDS560USB仿真器工具软件之前,请确认CCS已经安装,否则仿真器无法工作。运行产品安装光盘根目录下的Setup.exe。 根据您的需要选择DSP类型,再选定相应的CCS目录。我们是选上了C6000,OMAP,Others DSPs。
软件安装完成后,可以在桌面上看到 “WintechDigital ” 快捷方式图标,同时在CCS目录下建立“TDS560USB”目录。
如果需要更换CCS,请重新运行Setup.exe卸载TDS560USB仿真器工具软件,并再次运行Setup.exe,选定新的DSP及新的CCS路径。
3、进行CCS setup
在DAVINCI 板卡上使用TDS560USB仿真器时进行CCS Setup 设置的步骤如下:
首先要注意:
CCS的版本需要是3.2版本或更高版本;
设置前必须已经运行过TDS560USB 仿真器光盘所附带的支持工具setup.exe 。
1.CCS Setup启动后,选择”Create Board”,双击 WintechDigital
TDS560USB Emulator.
2. 设置连接名称:TDS560USB Davinci
3. 不用作任何改动,直接完成。
4.选择TDS560USB Davinci ,并在中栏双击或拖ICEPICK_C到左栏中
5.在弹出窗口中设置CPU的个数为2
6.点击next 跳过。
7.设置Subpath name 和端口号,名字随便取,但是端口号ARM必须为16,DSP为18。
8.以上步骤完成后,选择左栏的ARM9
9.在中间栏拖ARM9 CPU到左栏中,扫描链中的ARM9处理器。
10.设置ARM9处理器的GEL 文件
此处需要选中随板提供的 DaVinciEVM_arm.gel 文件
11.开始设置DSPC64+,在左栏中选中/dSPC64,然后把中间栏的C6400PLUS拖到左栏的DSPC64中
12.设置C64PLUS处理器的GEL文件。
此处需要选中随板提供的 DaVinciEVM_dsp.gel 文件
13.到此,设置工作完成,存储并退出CCS Setup 。
4、运行CCS
以上步骤完成后,先断开仿真器电源,将TDS560USB POD上的JTAG电缆与目标板JTAG接口相连,然后打开目标板电源,接通仿真器电源,运行CCS。观察两个指示灯,如果READY灯和BUSY灯轮流闪烁,表示TDS560USB正常工作,否则请断开TDS560USB仿真器的电源,拔下USB线缆,重新检查前面的硬件连接和软件安装、设置是否正确。
CCS及驱动都安装完成之后,在CCS运行前,最好先运行一下 “桌面 /wintechdigital/
RESET TDS560USB”,如果复位正常,则运行CCS进行实时仿真,如果不能正常复位,请拔下仿真器电源和USB电缆,重新连接硬件,并检查硬件连接和软件安装是否正确。
Davinci的程序分DSP程序及ARM程序,DSP程序我们在CCS中编辑和编译,ARM程序在Source Insight中编辑,在Linux中的dvsdk1.3工具链下编译。
下面以视频编解码V1.2版本的编译为例,来说明调试程序操作步骤。
V1.2版本中有5部分,分别是:
解码算法 : VidDec_lib
编码算法 : VidEnc_lib
编译x64P环境 : video_copy
ARM运行程序 : videoloop
运行目录 : loop
VidDec_lib 与VidEnc_lib目录推荐放在CCS安装路径下的MyProjects目录下,我的存放路径为:C:/CCStudio_v3.3/MyProjects 。
video_copy、videoloop与loop目录都存放在Linux服务器下,loop目录必须存放在NFS所共享的、Davinci板卡可以访问的根文件系统内,而video_copy与videoloop目录没有存放路径的限制,推荐将这两个目录存放在同一路径下。
1、在Windows上编译DSP端运行库
由于只是编译,并不需要仿真器的参与,以下CCS编译时仿真器都不是必须的。在调试的过程中,才会需要用到仿真器。
启动CCS,在CCS中分别编译视频解码工程VidDec_lib及视频编码工程VidEnc_lib,得到所生成的库文件VidDec_lib.lib及VidEnc_lib.lib。
2、在Linux中编译DSP可执行程序
将在CCS中编译的VidDec_lib.lib改名复制为
video_copy/codecs/viddec_copy/lib/viddec_copy.a64P ,
将在CCS中编译的VidEnc_lib.lib复制为
video_copy/codecs/videnc_copy/lib/videnc_copy.a64P。
也可以使用VidDec_lib.lib及VidEnc_lib.lib同目录下的批处理文件copylib.bat来实现以上两次改名复制。
在linux环境下的video_copy/servers/video_copy目录下先执行
make clean
然后执行
make
生成DSP端的可执行文件video_copy.x64P;并且将video_copy.x64P拷贝至运行目录loop中。以上的video_copy.x64P生成并拷贝至运行目录可以使用同目录下的mkall脚本执行文件来实现。(脚本是为了简化调试步骤而使用的,大家自己写出就是了)
3、在Linux中编译ARM可执行程序
在linux环境下进入videoloop工程,运行make,生成ARM端可执行程序videoloop,将videoloop拷贝至运行目录loop中。
这一步的make及拷贝也可以使用同目录下的mkall脚本文件来执行。
4、启动板卡,执行程序
启动板卡,使用root登录,然后进入运行目录loop中。首先运行装载模块程序loadmodules.sh,然后运行ARM端可执行程序videoloop。在运行过程中,videoloop会根据需要调用DSP端的视频解码算法程序及视频编码算法程序。
以上的2、3、4步使用mkall脚本文件需要注意:
IP地址与路径必须与实际情况匹配,特别是在程序版本升级及Linux服务器更换时。
编译x64P时,注意要先 make clean 。
一般在进行程序调试时,我们采用NFS与tftp等网络通信方式共享Linux服务器中的资源,用于嵌入式Linux进行访问、改写。
在程序调试成功,并且版本稳定之后,我们需要嵌入式Linux脱离服务器的支持,单独运行起来。这时,需要有完整的Linux操作系统各部分,包括 BootLoader,内核,根文件系统这三部分。
Davinci板卡采用的BootLoader是uboot,内核提供了源文件,编译即可得到,根文件系统我们分别使用过ramdisk及yaffs2这两种方式。
Davinci板卡采用的存储介质是Flash,根据功能差异分为Nor Flash与Nand Flash两种。
脱机运行前需要将uboot、内核及根文件系统烧写到Flash中,然后在uboot中进行相应的配置。
Davinci的一般启动过程如下:
Rbl->[ubl->] uboot->uImage->rootfs->用户程序
在Nor flash上的启动过程:
首先运行芯片中的Rbl,然后启动flash上的uboot,加载uImage,使用rootfs,运行用户可执行程序。
在Nand flash上的启动过程:
首先运行芯片中的Rbl,然后ubl,再启动uboot,加载uImage,使用rootfs,运行用户可执行程序。
下面以运行在Nor flash上的ramdisk文件系统为例说明。下面提到的Flash,如果没有指定为Nand Flash,则Flash就指的是Nor Flash。
1,烧写uboot
(1)编译uboot
目前我们使用uboot1.1.4 ,在Linux下,进入uboot1.1.4目录,
依次输入如下命令:
make clobber
make davinci_config
make ARCH=arm
就生成了可执行文件 u-boot.bin 。
(2)烧写uboot
将uboot烧写进Flash,有两种方法:一是使用JTAG头连接仿真器,使用仿真器烧写;二是使用串口进行烧写。
注意:
在连接仿真器及串口线,拨动S3开关,切换J4跳线时,必须要在断电情况下操作。
仿真器烧写:
将Davinci板卡断电,
将DM6446开发板上的S3开关拨到全部为ON,在J4跳线处选上Nor Flash,连接仿真器;
将Davinci板卡上电,
打开CCS(需要设置CCS为仿真模式),在菜单中选择 File-- Load Program ,找到Flash的烧写程序flashwrite.out ,然后运行,根据提示分别输入uboot文件名u-boot.bin,及偏移地址0,等烧写完毕即可;
将Davinci板卡断电,
将S3切换到Nor Flash启动,即拨为1011111111,运行串口控制软件Tera Term ,选择COM1口,设置波特率为115200;
将Davinci板卡上电,
在Tera Term窗口会有uboot的启动信息显示。
串口烧写:
由于dvflasher运行需要 .net FrameWork 2.0,所以先安装这个程序。
将Davinci板卡断电,
将DM6446开发板上的S3开关拨到全部为ON,在J4跳线处选上Nor Flash,用串口线连接PC主机与Davinci板卡;
将Davinci板卡上电,
在主机上运行命令行,在命令行输入命令:dvflasher -r u-boot.bin,等烧写完毕;
将Davinci板卡断电,
将S3切换到Nor Flash启动,即拨为1011111111,运行串口控制软件Tera Term ,选择COM1口,设置波特率为115200;
将Davinci板卡上电,
在Tera Term窗口会有uboot的启动信息显示。
串口烧写nand flash:
将Davinci板卡断电,
将DM6446开发板上的S3开关拨到:1101111111,在J4跳线处选上Nand Flash CS2,用串口线连接PC主机与Davinci板卡;
将Davinci板卡上电,
在主机上运行命令行,在命令行输入命令:dvflasher -fnandbin u-boot_nand.bin,等烧写完毕;
将Davinci板卡断电,
将S3切换为Nand Flash启动,即拨为全部为OFF,运行串口控制软件Tera Term ,选择COM1口,设置波特率为115200;
将Davinci板卡上电,
在Tera Term窗口会有uboot的启动信息显示。
2,烧写Linux内核
内核指的是一个提供硬件抽象层、磁盘及文件系统控制、多任务等功能的系统软件。一个内核不是一套完整的操作系统。一套基于Linux内核的完整操作系统叫作Linux操作系统。
在Linux 内核中,包括了:进程管理、定时器、中断管理、内存管理、模块管理、虚拟文件系统接口、文件系统管理、设备驱动程序、进程间通信、网络管理、系统启动等操作系统功能的实现。
(1)编译Linux内核
当板卡硬件有改动,或需要增加某些底层功能时,需要改动内核模块,可以使用如下命令来更改内核模块的配置:
make menuconfig
生成的配置文件保存在
mv_pro_4.0/montavista/pro/devkit/lsp/ti-davinci/arch/arm/defconfig
然后在:
mv_pro_4.0/montavista/pro/devkit/lsp/ti-davinci
目录下输入如下命令:
make ARCH=arm CROSS_COMPILE=arm_v5t_le- davinci_dm644x_defconfig
make ARCH=arm CROSS_COMPILE=arm_v5t_le- checksetconfig
make ARCH=arm CROSS_COMPILE=arm_v5t_le- uImage
cp arch/arm/boot/uImage /tftpboot/uImage
chmod a+r /tftpboot/uImage
就可以编译出新的内核。
更多的细节请参考《Building a Small Embedded Linux Kernel Example spraah2.pdf》。
(2)烧写Linux内核
从Linux服务器下载内核映象文件并烧写进Davinci板卡的Nor Flash中,我们使用板卡上的uboot,通过tftp协议,从Linux服务器上下载编译好的内核,过程如下:
a,将内核文件uImage复制到Linux服务器的 /tftpboot/ 目录下,
b,连接PC与Davinci板卡,需要连接串口线及网线,在连接串口线时需要将Davinci板卡断电。
c,启动运行串口控制软件Tera Term
d,将Davinci板卡上电,在Tera Term窗口中按下任意键,进入输入命令状态
e,依次输入如下命令:
tftpboot 0x80080000 uImage //从tftp服务器拷贝至内存中
erase 0x2100000 22fffff //擦除2M的空间
cp.b 0x80080000 0x2100000 0x200000 //从内存拷贝至Flash中
等待命令执行完毕,就成功烧写内核文件进Nor Flash中了。
最后,在正式启动板卡时要读取flash上的内核文件,还需要设置环境变量为从flash启动,使用如下命令设置即可:
setenv bootcmd ‘bootm 0x2100000’
3,烧写根文件系统
Linux引导启动时,默认使用的文件系统是根文件系统。其中一般都包括这样一些子目录:
etc, dev, usr, usr/bin, bin, var等。
etc目录主要含有一些系统配置文件;dev含有设备特殊文件,用于使用文件操作语句操作设备;usr存放库函数、手册和其它一些文件。bin存放执行程序;var用于存放系统运行时可变的数据或者是日志等信息。
根文件系统有多种格式,例如romfs、ramfs、jffs2、yaffs2等,我们以ramfs为例说明编译及烧写过程。
(1)制作ramdisk
在Linux服务器中制作ramdisk过程如下:
a,开辟一块硬盘空间,这里定为14M,名字为ramrootfs,并
格式化为ext2文件系统:
dd if=/dev/zero of=ramrootfs bs=1k count=14336
mke2fs -F -m 0 -i 2000 ramrootfs
b,
把虚拟盘挂载到目录ramfs:
mount -o loop -t ext2 ramrootfs ramfs
c,复制所需根文件系统内容至ramfs中
d,使用nfs方式调试,确认文件系统可用。
e,
跳到ramfs目录外,卸载ramfs,并压缩
文件系统映象:
umount ramfs
cat ramrootfs | gzip -9 > ramdisk.gz
(2)烧写ramdisk
从Linux服务器下载ramdisk.gz文件并烧写进Davinci板卡的Nor Flash中, 我们使用板卡上的uboot,通过tftp协议,从Linux服务器上下载压缩好的ramdisk.gz,过程如下:
a,将ramdisk.gz复制到Linux服务器的 /tftpboot/ 目录下;
b,连接PC与Davinci板卡,需要连接串口线及网线,在连接串口线时需要将Davinci板卡断电;
c,启动运行串口控制软件Tera Term;
d,将Davinci板卡上电,在Tera Term窗口中按下任意键,进入输入命令状态;
e,依次输入如下命令:
tftpboot 0x80080000 ramdisk.gz //从tftp服务器拷贝至内存中
erase 0x2300000 0x28fffff //擦除6M的空间
cp.b 0x80080000 0x2300000 0x600000 //从内存拷贝至Flash中
等待命令执行完毕,就成功烧写ramdisk根文件系统进Nor Flash中了。
最后,在正式启动板卡时要读取flash上的根文件系统,还需要设置环境变量为从flash读取,使用如下两个命令设置即可:
setenv bootcmd 'cp.b 0x2300000 0x85000000 0x600000; bootm 0x2100000'
setenv bootargs console=ttyS0,57600n8 video=dm64xxfb:interface=composite:mode=pal ip=192.168.1.82::192.168.1.1 root=/dev/ram0 rw initrd=0x85000000,14M mem=112M
第一个命令中主要相关部分是cp.b 0x2300000 0x85000000 0x600000 ,作用是在Davinci板卡启动时拷贝根文件系统至内存中;
第一个命令中主要相关部分是root=/dev/ram0 rw initrd=0x85000000,14M ,作用是设置Davinci板卡启动时采用ramdisk根文件系统。
结束语:本文介绍了TI的Davinci开发平台调试环境的搭建,主要包括交叉编译工具链的安装,linux服务器环境的配置,CCS及仿真器的安装,程序编译运行流程,以及脱机运行。希望有兴趣的朋友多来交流,大家共同提高。