Chinaunix首页 | 论坛 | 博客
  • 博客访问: 658403
  • 博文数量: 175
  • 博客积分: 2457
  • 博客等级: 大尉
  • 技术积分: 1488
  • 用 户 组: 普通用户
  • 注册时间: 2011-07-13 20:31
文章分类

全部博文(175)

文章存档

2012年(22)

2011年(153)

分类: C/C++

2011-07-26 18:19:28

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/lintax/archive/2009/08/26/4487781.aspx

 

一、Davinci调试环境搭建所需软件
    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

 

二、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通了。

 

 


 

四、安装ARM程序的编译环境
要执行本步骤,系统需要满足如下条件:

 

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-CGT-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?,退回到命令行提示符下。

[root@DavinciServer filesys]# /usr/sbin/exportfs -a

[root@DavinciServer filesys]# /sbin/chkconfig --level 12345 nfs on

[root@DavinciServer filesys]# /sbin/service nfs restart

Shutting down NFS mountd: [FAILED]

Shutting down NFS daemon: [FAILED]

Shutting down NFS quotas: [FAILED]

Shutting down NFS services: [ OK ]

Starting NFS services: [ OK ]

Starting NFS quotas: [ OK ]

Starting NFS daemon: [ OK ]

Starting NFS mountd: [ OK ]

[root@DavinciServer filesys]# rpm -q tftp-server

package tftp-servere is not installed 如果显示这样的内容则未安装tftp-server;如显示为tftp-server-#.##-#的格式则已经安装tftp-server,请不要执行带下划线的内容。

[root@DavinciServer filesys]# eject放入RedHat Linux 9.0 Disk 3

[root@DavinciServer filesys]# mount /dev/cdrom 

[root@DavinciServer filesys]# cd /mnt/cdrom/

[root@DavinciServer cdrom]# cd RedHat/RPMS/ 

[root@DavinciServer RPMS]# rpm -ivh tftp-server-0.32-4.i386.rpm

warning: tftp-server-0.32-4.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e

Preparing... ########################################### [100%]

1:tftp-server ########################################### [100%]

[root@DavinciServer RPMS]# cd

[root@DavinciServer root]# eject放入TDS6446EVM配套光盘DaVinci Digital Video uation Kit Disk

[root@DavinciServer root]# mount /dev/cdrom 

[root@DavinciServer root]# ls /如果安装了tftp-server接此运行

bin dev home lib misc opt root tmp var

boot etc initrd lost+found mnt proc sbin usr

[root@DavinciServer root]# mkdir /tftpboot如果上面没有目录tftpboot则创建之

[root@DavinciServer root]# cd /tftpboot

[root@DavinciServer tftpboot]# mkdir DVEVM

[root@DavinciServer tftpboot]# cp /mnt/cdrom/uImage DVEVM

[root@DavinciServer tftpboot]# /sbin/chkconfig tftp on 

[root@DavinciServer tftpboot]# /sbin/chkconfig --list

xinetd based services:

chargen-udp: off

rsync: off

chargen: off

daytime-udp: off

daytime: off

echo-udp: off

echo: off

services: off

servers: off

time-udp: off

time: off

cups-lpd: off

sgi_fam: on

rexec: off

rlogin: on

rsh: on

telnet: on

tftp: on on表示tftp服务已经成功启动

[root@RedHatServer root]# exit 

[davinci@RedHatServer filesys]# cd /home/davinci/workdir/filesys/opt

[davinci@RedHatServer opt]# tar zxf /mnt/cdrom/examples.tar.gz

(2)设置DHCP服务器
[root@DavinciServer opt]# vi /etc/dhcpd.conf 

在vi的界面下按i键进入输入状态,输入如下内容:

ddns-update-style interim;

option subnet-mask 255.255.255.0;

option broadcast-address 192.168.1.255;

subnet 192.168.1.0 netmask 255.255.255.0

{

range 192.168.1.100 192.168.1.253;

default-lease-time 1800;

max-lease-time 28800;

}

按Esc键退出输入状态,按:键(即Shift+;)键,键入命令wq,退回到命令行提示符下。

[root@RedHatServer opt]# /sbin/service dhcpd restart 

Shutting down dhcpd: [FAILED]

Starting dhcpd: [ OK ]

[root@RedHatServer opt]# /sbin/chkconfig --level 12345 dhcpd on

 

(3)配置samba服务
1,查看机器上是否安装了samba服务,输入下面命令:

rpm -q samba

如果安装了,会显示版本号。如果没有安装,插入Linux安装光盘,输入下面命令:

rpm -vih /mnt/cdrom/RedHat(Mandrake)/RPMS/samba*

2,samba配置

Samba是用来实现SMB(Server Messages Block)协议的一种软件,是一套让Unix/Linux系统能够应用Microsoft网络通信协议的软件,它可以和运行Windows 98、Windows 2000等操作系统的计算机实现文件共享和打印机共享服务。

      通过配置Samba服务器,可以提供Windows客户机来访问Linux系统上共享的资源,也能够在Linux上通过SMB协议访问Windows系统上的共享资源。

 

一、访问Samba服务器配置工具

要访问Samba服务器配置工具,只须依次单击“主菜单→系统设置→服务器设置→Samba服务器”,即可打开Samba服务器配置窗口。

小提示:

  1.必须以root用户身份才可以对Samba服务器进行配置。
    2.也可以在终端窗口输入redhat-config-samba命令打开配置窗口。

二、进行服务器设置

  这里首先要对Samba服务器的基本设置和安全选项进行配置,单击配置窗口上的“首选项→服务器设置”,即可打开服务器设置对话框)。

1)基本设置
在对话框的“基本”标签页,我们可以指定Linux主机所在的工作组名称,需要注意的是,此处的工作组名称不一定非得与Windows主机所在的工作组名称一致。


2)安全设置
现在就进行Samba服务器安全设置,这里一共有四个选项,分别介绍如下:

A. 验证模式:如果Windows主机不是位于NT域里,此处应该选择“共享”验证模式,这样只有在连接Samba服务器上的指定共享时才要求输入用户名、密码;
B. 验证服务器:对于“共享”验证模式,无须启用此项设置;
C. 加密口令:应该选择“是”,这样可以防止黑客用嗅探器截获密码明文;
D.来宾账号:当来宾用户要登录入 Samba服务器时,他们必须被映射到服务器上的某个有效用户。选择系统上的现存用户名之一作为来宾Samba账号。当用户使用来宾账号登录入Samba服务器,他们拥有和这个用户相同的权限。

  三、添加共享目录

接下来是添加共享目录,单击Samba配置窗口工具栏上的“增加”按钮,即可打开一个添加共享对话框。

1)在该对话框上的“基本”标签页上,指定要共享的目录为某个存在的目录,例如可以指定/tmp,再指定该目录的基本权限是只读还是读/写。

2)在“访问”标签页上,可以指定允许所有用户访问、或者只允许某些用户访问。

四、从Windows访问Samba服务器

  好了,现在万事俱备、只欠东风,只须启动Samba服务即可。打开一个终端窗口,键入“/sbin/service smb start”命令,即可出现以下提示信息,表示Samba服务已经启动:

# /sbin/service smb start
启动SMB 服务 [确定]
启动NMB 服务 [确定]

接下来的事情就简单了,在Windows里打开“网上邻居”,就可以看到我们刚才设置的Samba服务器了。当然,我们在文件夹的地址栏里直接输入   能更快的访问到刚才共享出来的内容。

 

(4)设置DVEVM
此处的设置,我们假定正确的uboot已经烧写在Flash上,如果需要烧写uboot,请参照第六部分的“烧写uboot”内容进行操作。

我们使用串口软件Tera Term与Davinci板连接,设置波特率为115200,无校验,1个停止位,无流控。设置好串口软件后,将Davinci板上电,出现如下信息:

U-Boot 1.1.3 (Jun 15 2006 - 17:43:55)

U-Boot code: 81080000 -> 81096A0C BSS: -> 8109F31C

RAM Configuration:

Bank #0: 80000000 256 MB   

ARM Clock :- 243MZ         

DDR Clock :- 162MZ

MY AMD Flash: 16 MB

In: serial

Out: serial

Err: serial

Hit any key to stop autoboot: 0

 

在3秒倒计时内按任意键,进入命令模式。下面输入命令进行配置,在uBoot下输入出错只能用backspace删除,而不能用左右键移动光标。

 

DaVinci EVM # setenv ethaddr 00:0e:99:02:51:46 

DaVinci EVM # setenv ipaddr dhcp 

DaVinci EVM # setenv nfshost 192.168.1.81 

DaVinci EVM # setenv bootfile uImage 

DaVinci EVM # setenv rootpath /root/armfs 

DaVinci EVM # setenv fileaddr 80700000 

DaVinci EVM # setenv gatewayip 192.168.1.81 

DaVinci EVM # setenv serverip 192.168.1.81 

DaVinci EVM # setenv bootcmd 'dhcp;bootm' 

DaVinci EVM # setenv netmask 255.255.255.0v 

DaVinci EVM # setenv bootargs console=ttyS0,115200n8 noinitrd rw ip=dhcp root=/dev/nfs nfsroot=$(nfshost):$(rootpath),nolock mem=120M与上同行

DaVinci EVM # printenv 看设置的内容是否一致

……………………………… 省略了相关显示

DaVinci EVM # saveenv

Saving Environment to Flash...

Un-Protected 1 sectors

Erasing Flash...

Erasing sector 4 ... done.

Erase Operation Completed.

Erased 1 sectors

Writing to Flash...-done

Protected 1 sectors

将系统断电后,重新上电,等到出现

…………………… 省略内容若干 ……………………

192.168.1.?? login:root

root@192.168.1.?? # cd /root/loop

root@192.168.1.?? # ./loadmodules.sh

……………………省略内容若干

root@192.168.1.?? # ./videoloop

 

说明:此配置设置波特率为115200,采用动态分配IP,内核从Linux服务器使用tftp协议下载uImage,根文件系统从Linux服务器使用NFS方式访问共享路径/root/armfs,这样的配置适合程序的调试运行。这些部分的设置都是可以改动的,具体参见《DVEVM Getting Started Guide.pdf》,关于uboot的命令使用,请参考《U-Boot命令 emLinuxARM.pdf》。

 

(5)编译调试工具框图
    下图为常见调试框图,在Windows端通过samba服务访问Linux中的源代码,用Soure Insight进行编辑,在Linux中的dvsdk1.3工具链中编译,将生成应用程序放在NFS所共享的目录下,供Davinci板卡访问。我们通过串口控制软件Tera Term来查看与改变Davinci板卡的运行状态。

 Davinci调试环境的搭建(一)

阅读(1163) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~