嵌入式Linux内核移植试验 下载本文

07秋 嵌入式实验

1. 实验设备的连接

1. 参看《JXARM9-2410-1用户手册》中第一章,熟悉目标设备硬件,进行硬件检测。 2. 参看《JXARM9-2410-1用户手册》中第二章,安装好实验设备:电源,并口等。 3. 参看《JXARM9-2410-1用户手册》中第三章,了解目标设备硬件资源。

2. 软件安装与设置

参看《JXARM9-2410-1用户手册》中第四章,在主机Windows环境下安装实验环境:ADT,而DNW(一种超级终端软件)和tftp可以直接运行。

3. ADT IDE 开发流程

参看《JXARM9-2410-1用户手册》中第五章,通过并口线连接目标机的简易仿真口(ARM9SIMPLE),进行无操作系统实验:(实验教材P38)

(1) 对于包含ADT 1000仿真器的用户,请选择ARM9LPT,对于简易调试器的用

户,请选择ARM9SIMPLE,本实验选择ARM9SIMPLE。

(2) 导入examples目录中的工作区文件“examples.aws”,调试运行leddemo、stepper

等程序

(3) 注意:要运行的工程需设置为当前工程

4. Uboot基本实验

参看《JXARM9-2410-1用户手册》中第七章的“7.2 Windows环境下使用u-boot”:(实验教材P186)

(1) 将连接目标机简易仿真口的并口线去掉,连接好UART0串口线,网线。 (2) 在宿主机打开远程登陆软件DNW(或者超级终端),选择115200,COM1,

建立与目标机的连接

(3) 重新启动目标机,在DNW中会看到与目标机LCD相同的信息,表示连接成

功!

(4) 在超级终端中使用Uboot命令行接口,练习Uboot的基本命令:help、flinfo、

bdinfo、md、dmp、printenv、setenv、saveenv、run等

5. 嵌入式Linux内核移植实验

参看《JXARM9-2410-1用户手册》中第六章

(1) 参看6.1和6.2节,熟悉交叉开发环境,建立宿主机环境。

(2) 参看6.4节,进行内核的编译:

a) 在虚拟机中,启动linux,用户名root,密码123456 b) 打开一个终端,按照实验教材P199的步骤编译内核

$ cd /home/cvtech/jx2410/linux

$ make menuconfig (使用config-jx2410配置文件 ) $ make dep $ make zImage

(3) 参看6.5节,配置好主机IP和目标机IP,保证在同一网段,然后将内核镜像

下载到目标机的SDRAM中运行

$ cp /home/cvtech/jx2410/root/ramdisk.gz /tftpboot (拷贝ramdisk文件系统到tftp根目录)

$ cp /home/cvtech/jx2410/linux/arch/arm/boot/zImage /tftpboot (拷贝内核镜像文件到tftp根目录)

利用DNW连接Uboot,执行以下命令分别下载文件系统和内核镜像: # tftp 30800000 ramdisk.gz # tftp 30008000 zImage

在目标机内存SDRAM中,直接运行内核镜像,观察LCD的效果 # go 30008000

6. linux应用程序实验

参看《JXARM9-2410-1用户手册》中第六章的6.6节:(实验教材P205)

(1) 在主机端编译并运行Helloworld程序

$cd /home/cvtech/jx2410/examples/helloworld

$vi helloworld.c $gcc –o helloworld helloworld.c $./helloworld

(2) 编译能够在目标机运行的helloworld,观察使用的gcc编译器,同时用到了

Makefile文件 $vi Makefile $make

$./helloworld (出错!想想为什么?)

(3) 将编译好的helloworld下载到目标机

$cp helloworld /tftpboot/examples

在目标机Uboot中,执行以下命令:

#mount 192.168.1.180:/tftpboot/ /mnt/nfs #cd /mnt/nfs/examples/ #./ helloworld

观察输出结果!

7. linux驱动程序实验

(1) 编写驱动程序源代码以及测试程序源代码,观察四个文件:drv.c drv.h drvtest.c

Makefile : (实验教材P220)

$cd /home/cvtech/jx2410/examples/drvtest

(2) 编译驱动程序,生成drv.o

$make clean $make

$cp drv.o /tftpboot/examples

(3) 编译测试程序,生成drvtest

$/usr/local/arm/2.95.3/bin/arm-linux-gcc -o drvtest drvtest.c $cp drvtest /tftpboot/examples

(4) 在目标机Uboot中,安装驱动,并运行测试程序

#mount 192.168.1.180:/tftpboot/ /mnt/nfs #cd /mnt/nfs/examples

注册驱动

#insmod drv.o

注册设备文件

#mknod /dev/drvtest c 100 0 #./drvtest

观察输出结果!