嵌入式系统ARM实验报告

时间:2024.4.27

南京邮电大学通信与信息工程学院

实验报告

实验名称:实验一基于ADS开发环境的设计 实验二嵌入式Linux交叉开发环境的建立

实验三嵌入式Linux环境下的程序设计

课程名称嵌入式系统B

班级学号B13010711 姓名马俊民

开课时间 2015/2016学年第1学期

实验一基于ADS开发环境的程序设计

一、 实验目的

1、学习ADS开发环境的使用;

2、学习和掌握ADS环境下的汇编语言及C语言程序设计;

3、学习和掌握汇编语言及C语言的混合编程方法。

二、 实验内容

1、编写和调试汇编语言程序;

2、编写和调试C语言程序;

3、编写和调试汇编语言及C语言的混合程序;

4、编写程序测试多寄存器传送指令的用法。

三、 实验原理

ADS全称为ARM Developer Suite,是ARM公司推出的新一代ARM集成开发工具。现在常用的ADS版本是ADS1.2,它取代了早期的ADS1.1和ADS1.0。

ADS用于无操作系统的ARM系统开发,是对裸机(可理解成一个高级单片机)的开发。ADS具有极佳的测试环境和良好的侦错功能,它可使硬件开发工作者更深入地从底层去理解ARM处理器的工作原理和操作方法,为日后自行设计打基础,为BootLoader的编写和调试打基础。

1.ADS软件的组成

ADS由命令行开发工具、ARM运行时库、GUI开发环境(CodeWarrior和AXD)、实用程序、支持软件等组成。

2.GUI开发环境

ADS GUI开发环境包含CodeWarrior和AXD两种,其中Code Warrior是集成开发工具,而AXD是调试工具。

使用汇编语言进行编程简单、方便,适用于初始化硬件代码、启动代码等。 汇编语言具有一些相同的基本特征:

1. 一条指令一行。

2. 使用标号(label)给内存单元提供名称,从第一列开始书写。

3. 指令必须从第二列或能区分标号的地方开始书写。

4. 注释必须跟在指定的注释字符后面,一直书写到行尾。

在ARM汇编程序中,每个段必须以AREA作为段的开始,以碰到下一个AREA作为该段的结束,段名必须唯一。程序的开始和结束需以ENTRY和END来标识。

嵌入式C语言设计是利用基本的C语言知识,面向嵌入式工程实际应用进行程序设计。为了使单独编译的C语言程序和汇编程序之间能够相互调用,必须为子程序之间的调用规定一定的规则。ATPCS就是ARM程序和Thumb程序中子程序调用的基本规则。

四、 实验过程与关键代码分析

1. 创建项目工程

在File菜单中选择New命令,打开一个新建工程对话框。在Project选项卡下,选择ARM Executable Image, 然后在Project name文本框里输入项目名称,点击确定。弹出工程窗口。

选择File菜单中的New命令,选择File标签页,在File name文本框中输入要创建的文件名。汇编程序以.s结尾,c程序以.c结尾。在Location文本框中指定文件的存放位置,选中Add to Project,在Targets中选中DebugRel,单击确定关闭窗口。

2.用汇编语言设计程序实现10的阶乘

AREA EXAMPLE, CODE, READONLY

ENTRY

start

MOV R0, #10

MOV R1, #1

LOOP

MUL R0, R0, R1

SUB R0, R0, 1

CMP R0, #1

BHI LOOP

END

在这个程序中,我们首先对R0和R1赋值,将R0作为一个变量,而R1作为一个存贮阶乘值的寄存器。在每进行一次乘法之后,将R0减1。同时在做完减法后进行判断,如果此时R0大于1,则返回继续乘法,否则结束程序,输出结果。

3.用调用子程序的方法实现1!+2!+3!+?+10!,代码如下:

asmp.s

AREA JC, CODE, READONLY

EXPORT JCP

ENTRY

JCP

ADD R3, R0, #1

MOV R2, #1

MOV R1, #1

LOOP MUL R0, R1, R2

MOV R1, R0

ADD R2, R2, #1

CMP R2, R3

BNE LOOP

NOP

NOP

MOV PC, LR

END

PROGC.c

#include <stdio.h>

Extern int JCP(int N)

int main()

{

int res=0;

int m=10;

int i;

for (i=1;i<=m;i++)

res=res+JCP(i);

printf(“The result =%d\n”,res);

return 0;

}

在这个程序中,主程序由c语言完成作求和,子程序由汇编语言写成作阶乘。

5.实现字符串的逆序复制TEXT1=“HELLO”=>TEXT2=“OLLEH”

AREA invstring, CODE, READONLY

start

ADR R1, TEXT1

ADR R2, TEXT2

MOV R3, #0

LOOP

LDRB R0, [R1], #1

ADD R3, R3, #1

CMP R0, #0

BNE LOOP

SUB R1, R1, #2

LOOP1

LDRB R0, [R1], #-1

STRB R0, [R2], #1

SUB R3, R3, #1

CMP R3, #1

BNE LOOP1

MOV R5, #&55

TEXT1

TEXT2

NOP =“HELLO”,0 ALIGN =“OELLH” END

五、实验小结

在这次实验中,学会了如何使用汇编程序进行编程。对汇编程序编程一些基本的要求有了一定的了解,学习了C语言的语法和在其中调用汇编程序的方法。学会了利用CodeWarrior IDE开发C和ARM汇编代码。学会了在AXD中进行代码调试的方法和过程,对AXD的调试有初步的了解。

实验二嵌入式Linux交叉开发环境的建立

一、实验目的

1、掌握嵌入式Linux交叉开发环境的建立方法

2、 学习和掌握Linux常用命令

3、学习和掌握vi编辑器的使用

二、实验内容

1、搭建嵌入式Linux交叉开发环境

2、熟悉Linux的常用命令

3、熟悉vi编辑器的常用命令

三、实验原理

Linux系统是UNIX系统的分支,是UNIX的微机版。Linux具有异常丰富的驱动程序资源,支持各种主流的硬件设备与技术。Linux包含了现代的UNIX操作系统的所有功能特性,这些功能包括多任务、虚拟内存、虚拟文件系统、进程间通信、对称所处理器、多用户支持等。

Vi编辑器是所有UNIX和Linux下的标准编辑器。它包含3种工作模式。 嵌入式系统是专用的计算机系统,它对系统的功能、可靠性、成本、体积、功耗等有严格的要求。大部分嵌入式系统没有大容量存储设备,一般不能安装大型开发软件,系统的开发需要采用交叉开发模式。

四、实验过程与关键代码分析

实验用的是UP-NetARM2410-S试验箱,里面配有三星的芯片S3c2410X。 打开电脑上VMWare软件,在Windows系统下启动虚拟机里的Linux系统。接着需要

1. 宿主机的环境搭建

下载并运行VMWare,根据向导创建一台新虚拟机并选择Linux作为客户操作系统,再根据向导安装RedHat Linux 9.0。

2. 虚拟机中启动Linux操作系统

使用root登陆,用户名为root,密码为123456。之后对共享文件设置进行调整:打开settings界面,打开shared folders功能,同时将路径设置

到有课前下载的软件的目录下。

3. 开发工具软件的安装

(1)安装gcc

打开Linux后,打开终端窗口,在共享的目录下找到install.sh并运行,命令如下:

ls

. / install.sh

安装程序将自动建立/arm2410s目录,并将所有的开发软件包安装到

/arm2410s 目录下,同时自动配置编译环境,建立合适的符号链接。安装完成后在目录/opt/host/armv4l/bin/下应该能看到主编译器。

(2)配置PATH路径

vi .bash.profile

将里面PATH变量改为PATH=$PATH:$HOME/bin:/opt/host/armv41/bin/; 存盘后执行

source .bash_profile

以后armv4l-unknown-linux-gcc将被自动搜索到

4. 宿主机上的开发环境配置

(1)配置IP地址

ifconfig eth0 192.168.0.121

命令配置了宿主机的IP地址。然后打开网络配置窗口,重新探测MAC地址。 重新激活。

(2)关闭防火墙

单击“Red”菜单→“系统设置”→“安全级别”→打开“安全级别配置”窗口,选择“无防火墙选项。”

(3)配置NFS。

单击“Red”菜单→“系统设置”→“服务器设置”→“服务”,在“服务配置”窗口中勾选nfs,单击“开始”

(4)NFS设置

单击“Red”菜单→“系统设置”→“服务器设置”→“NFS服务器”,打开“NFS服务器配置”窗口,设置NFS共享。

然后在NFS服务器中增加主机IP地址的链接许可和目录。完成配置。

5. 目标机的信息输出

Windows系统下,“开始”→“所有程序”→“附件”→“通讯”→“超级终端”,新建一个通信终端。区号、电话号码随意输入。设置每秒位数为“115200”,数据位为“8”,无奇偶校验,停止位为“1”,无数据流控制。单击“确定”。

6. 程序的运行

打开超级终端,启动Linux,屏幕显示:

[/mnt/yaffs]

在超级终端上执行挂载命令: [/mnt] mount –t nfs 192.168.0.121:/arm2410s /mnt/nfs

挂载成功后可执行程序。

五、实验小结

在这次实验中,学会建立Linux交叉开发环境,学会了ls和vi,cd等常用的Linux命令,并掌握了Vi编辑器的使用方法。同时知道了如何在搭建失败时寻找错误进行排错。

实验三嵌入式Linux环境下的程序设计

一、实验目的

1、掌握嵌入式Linux环境下的程序设计方法

2、学会编写Makefile文件

二、实验内容

1、熟悉嵌入式教学实验箱的使用

2、编写C程序和Makefile文件

3、编译程序产生可执行程序

4、完成主机的挂载和程序的执行

三、实验原理

在嵌入式Linux环境下的程序设计方法有一下几个步骤:

1. 编写源程序

2. 编写Makefile文件

3. 编译程序

4. 运行和调试程序

5. 将生产的可执行文件加入文件系统。

前三个步骤在宿主机上完成,后面的步骤在目标机上完成。

四、实验过程与关键代码分析

1. 建立工作目录

mkdir hello

cd hello

2. 编写源程序

用vi编辑器编辑Hello.c文件

vi Hello.c

在Vi中输入源程序如下:

#include <stdio.h>

main()

{

printf(“hello world \n”);

}

3.编写Makefile文件

vi Makefile

在vi中编辑Makefile文件如下:

CC= armv4l-unknown-linux-gcc

EXEC = hello

OBJS = hello.o

CFLAGS +=

LDFLAGS+= -static

all: $(EXEC)

$(EXEC): (OBJS)

$(CC) $(LDFLAGS) –o $@ $(OBJS)

clean:

-rm –f $(EXEC) *.elf *.gdb *.o

4.编译程序

在hello目录下运行“make”来编译程序。

make clean

make

编译成功后,生成可执行文件Hello.o。

5.下载调试

在宿主机上启动nfs服务,并将/arms2410s设置为共享目录。接下来启动超级终端,建立通讯,挂载。

[/mnt] mount –t nfs 192.168.0.121:/arm2410s /mnt/nfs

挂载成功后,进入/mnt/nfs,再进入/mnt/nfs/hello,直接运行刚刚编译生成的可执行文件Hello.o,查看运行结果

cd hello

. /hello

可以看见“Hello world”

只需要挂载一次便可,只要实验箱没有重启,就可以一直保持连接。反复修改、编译、调试,直至程序调试通过。

6.可执行文件加入文件系统

程序调试通过后,可以把可执行文件拖放到usr/bin目录下,然后使用mkcramfs制作工具生成新的文件系统。当系统启动后,就可以在相应目录下执行可执行程序hello.

五、实验小结

在这次实验中,学会了在嵌入式Linux环境下设计程序。同时知道了如何对目标机进行挂载。以及如何在发现挂载不成功寻找错误进行修改。另外在编译文件时需要注意的也都有所了解。

实验四多线程程序设计

一、实验目的

1、

2、

二、实验内容

1、

2、

3、

4、

三、实验原理

四、实验过程与关键代码分析

五、实验小结

3+


第二篇:ARM嵌入式系统实验报告


郑州航空工业管理学院

嵌入式系统实验报告

20 15 – 20 16 1 学期

赵成,张克新

院  系: 电子通信工程系  

姓  名:               

专  业:  物联网工程   

学  号:                  

电子通信工程系

20##年6月制


实验一 ARM体系结构与编程方法

一、实验目的

  了解ARM9 S3C2410A嵌入式微处理器芯片的体系结构,熟悉ARM微处理器的工作模式、指令状态、寄存器组及异常中断的概念,掌握ARM指令系统,能在ADS1.2 IDE中进行ARM汇编语言程序设计。

二、实验内容

1.ADS1.2 IDE的安装、环境配置及工程项目的建立;

2.ARM汇编语言程序设计(参考附录A):

(1)两个寄存器值相加;

(2)LDR、STR指令操作;

(3)使用多寄存器传送指令进行数据复制;

(4)使用查表法实现程序跳转;

(5)使用BX指令切换处理器状态;

(6)微处理器工作模式切换;

三、预备知识

  了解ARM嵌入式微处理器芯片的体系结构及指令体系;熟悉汇编语言及可编程微处理器的程序设计方法。

四、实验设备

1. 硬件环境配置

计算机:Intel(R) Pentium(R) 及以上;

内存:1GB及以上;

实验设备:UP-NETARM2410-S嵌入式开发平台,J-Link V8仿真器;

2. 软件环境配置

操作系统:Microsoft Windows XP Professional Service Pack 2;

集成开发环境:ARM Developer Suite (ADS) 1.2。

五、实验分析

1.安装的ADS1.2 IDE中包括 CodeWarrior  AXD Dubugger  两个软件组件。在ADS1.2中建立 ARM Executable Image(ARM可执行映像)  类型的工程,工程目标配置为  Debug   ;接着,还需要对工程进行  目标设置    语言设置 及链接器设置;最后,配置仿真环境为   ARMUL   仿真方式。

2.写出ARM汇编语言的最简程序结构,然后在代码段中实现两个寄存器值的加法运算,给出运算部分相应指令的注释。


; 文件名: 111307326.s            

         AREA         XTF,CODE,READONLY              

         ENTRY                                       

         CODE32                                     

SART MOV          R1,#1                                              

         MOV          R2,#2                                          

         ADD          R0,R1,R2                         

HALT B      HALT                                  

         END                                    

                                      

      声明代码段XTF                 

      标识程序入口                   

      声明32ARM指令            

      设置参数                       

                                     

      R0<---R1+R2                    

      死循环                         

      结束程序段                      


3.列写出使用LDR、STR指令的汇编程序,并在关键语句后面给出相应的注释。

              AREA     XTF,CODE,READONLY             ;声明代码段XTF

              ENTRY                                           ;标示程序入口

              CODE32                                         ;声明32位ARM指令

             

START    LDR        R0,=1                              ;加载数据

              LDR        R1,=2

              LDR        R3,=ADDR_1               ;载符号地址

              ADD              R2,R0,R1                        ;R2<---R0+R1

              STR        R2,[R3]                            ;R2--->[R3]

;数据空间定义            

              AREA     Data_1,DATA,ALIGN=2             

ADDR_1 DCD              0

                           

              END                                                  ;结束

4.“使用多寄存器传送指令进行数据复制”汇编程序分析。

LDR        R0,=SrcData          ; 执行后,R0的值是标号SrcData的地址               

LDR        R1,=DstData          ; 执行后,R1的值是标号DstDatad  的地址             

LDMIA       R0,{R2-R9}          ; LDMIA中的指令后缀IA表示 Increase After, 每次传送后地址加4[R0]-->R2,[R0+4]-->R3,…,[R0+28]-->R9               

STMIA       R1,{R2-R9}          ;执行后,程序实现的功能是 [R1]<--R2,[R1+4]<--R3,

…,[R1+28]<--R9                                         

5.在“使用查表法实现程序跳转”的汇编程序中,指令LDR  PC,[PC,R2]采用的是什么寻址方式?作为基址的寄存器PC的值是多少?作为指令指针的PC又指向哪条指令?这个指令与流水线执行的关系是什么?(选做)

答: 1)基址加变址寻址;2)PC<----[PC+R2],即PC中存放的是当前PC值加上寄存器R2中的内容形成的有效地址中的操作数;3)对于ARM指令集,PC总是只想当前指令的下两条指令,即PC的值为当前指令的地址值加上8个字节(每条指令占4个字节)。

6.通过运行及观察“使用BX指令切换处理器状态”汇编程序实验,回答ARM指令与Thumb指令之间是如何实现状态切换的?AXD Debugger调试环境中的哪个寄存器指示了ARM微处理器当前的指令状态?同时,在程序中添加从Thumb指令切换到ARM指令的代码。(选做)

答:1)BX指令使用寄存器作为参数,当32位操作数寄存器的第0位的值为1时,执行BX指令后,ARM处理器从16位半字节对齐ARM指令状态切换到32位字对齐Thumb指令状态;当32位操作数寄存器的第0位为0时,ARM处理器从Thumb指令状态切换到32位ARM指令状态。

2)CPSR的value值为nzcvqIFt_SVC时为ARM32指令状态;为nzcvqIFT_SVC时为Thumb16指令状态

       3)  AREA        XTF,CODE,READONLY             ;声明代码段XTF

                  ENTRY                                                            ;标识程序入口

                  CODE32                                                          ;声明32位ARM指令

SART         MOV                  R1,#1                                             ;设置参数

                  MOV                  R2,#2

                  ADD          R0,R1,R2                              ;R0<---R1+R2

;HALT       B       HALT

                  LDR R3, =Into_Thumb+1                       ;将Into_Thumb地址值加1,再赋给R3

                                             ;产生跳转地址并且设置最低位

                  BX             R3                                                  ;地址值位0为1,将进入THUMB状态

                                             ;Branch Exchange 进入Thumb状态    

                  CODE16                                                         ;Thumb状态下的子函数,16位对齐                    

Into_Thumb

                  MOV                  R5,#3

                  MOV                  R6,#4

                  ADD          R4,R5,R6

                  LDR R3, =Bach_to_ARM                  ;将Back_to_ARM 地址值赋给R3

                                    ;产生字对齐的跳转地址,最低位被清除,即bit0为0

                  BX R3

                                    ;Branch Exchange 返回到ARM状态,此时运行在ARM指令集环境里

                  CODE32                                                         ;ARM状态下的子函数

Bach_to_ARM

                  MOV                  R8,#3

                  MOV                  R9,#4

                  ADD          R7,R8,R9                             

                  END

7.观察“微处理器工作模式切换”程序的运行,按顺序写出ARM工作模式切换过程中依次出现的工作模式,同时,通过观察回答ARM微处理器是否能从用户模式切换到特权模式?(选做)

答:

1)Usr(用户)àSys(系统)àFiq(快中断)àSvc(管理)àAbt(终止)àIrq(中断)àUnd(未定义)

2)用户模式不能直接切换到其他处理模式(特权模式),特权模式可以自由切换到其他处理器模式。

程序:          

              AREA Work_mode_switch,CODE,READONLY               ;

                 ENTRY                                                                              ;入口

                 CODE32

;**************************************************

;now_in_svc_mode

;ARM处理器默认工作在SVC模式M=10011

;切换原理:CPSR最低8位I、F、T、M位用作控制位,当异常出现时改变控位。

;                          其中,中断标志位I、F;指令状态标志T;工作模式位M[4:0]

;                          通过软件控制模式位M即可控制ARM工作状态。

;************************************************

 ;into_Sys_mod

 ;系统模式下可运行具有特权的操作系统任务,与用户模式类似,但可以直接切换到其他模式。

                 MRS R0,CPSR                                                ;复制CPSR到R0

                 BIC R0,R0,#0x1F                                            ;清除R0的后5位

                 ORR R0,R0,#0x1F                                          ;设定R0的最后5位为11111

                 MSR CPSR_c,R0                                            ;把R0装在到CPSR,切换到系统模式

                 MOV R13,#1                                                   ;对系统模式下的R13赋值(R0-R14)

 ;into_Fiq_mode

 ;用于高速数据传输或通道处理,Fiq异常响应时进入此模式

                MRS R0,CPSR                                                ;复制CPSR到R0

                 BIC R0,R0,#0x1F                                            ;清楚R0的后5位

                 ORR R0,R0,#0x11                                           ;设定R0的最后5位为10001

                 MSR CPSR_c,R0                                            ;把R0装在到CPSR,切换到快中断模式

                 MOV R13,#2                                                   ;对快中断模式下的R13赋值(R8-R14)

;into_Svc_mode

 ;操作系统使用的保护模式,系统复位和软件中断响应时进入此模式

               MRS R0,CPSR                                                ;复制CPSR到R0

                 BIC R0,R0,#0x1F                                            ;清楚R0的后5位

                 ORR R0,R0,#0x13                                           ;设定R0的最后5位为10011

                 MSR CPSR_c,R0                                            ;把R0装在到CPSR,切换到管理模式

                 MOV R13,#3                                                   ;对快管理模式下的特有缓冲器R13赋值(R13-R14)

;into_Abt_mode

;可用于虚拟存储及存储保护,当数据或指令预取终止时进入该模式

               MRS R0,CPSR                                                ;复制CPSR到R0

                 BIC R0,R0,#0x1F                                            ;清楚R0的后5位

                 ORR R0,R0,#0x17                                           ;设定R0的最后5位为10111

                 MSR CPSR_c,R0                                            ;把R0装在到CPSR,切换到数据访问终止模式

                 MOV R13,#4                                                   ;对快数据访问终止模式下的特有缓冲器R13赋值(R13-R14)

;into_Irq_mode

 ;用于通用的中断处理,Irq异常时进入此模式

               MRS R0,CPSR                                                ;复制CPSR到R0

                 BIC R0,R0,#0x1F                                            ;清楚R0的后5位

                 ORR R0,R0,#0x12                                           ;设定R0的最后5位为10010

                 MSR CPSR_c,R0                                            ;把R0装在到CPSR,切换到外部中断模式

                 MOV R13,#5                                                   ;对快外部中断模式下的特有缓冲器R13赋值(R13-R14)

;into_Und_mod

 ;可用于支持硬件协处理器的软件仿真,当未定义的指令执行时进入该模式

               MRS R0,CPSR                                                ;复制CPSR到R0

                 BIC R0,R0,#0x1F                                            ;清楚R0的后5位

                 ORR R0,R0,#0x1b                                           ;设定R0的最后5位为11011

                 MSR CPSR_c,R0                                            ;把R0装在到CPSR,切换到未定义模式

                 MOV R13,#6                                                   ;对未定义模式下的特有缓冲器R13赋值(R13-R14)

 ;into_Usr_mod

 ;正常程序工作模式,不能直接切换到其他模式,功能最弱。

               MRS R0,CPSR                                                ;复制CPSR到R0

                 BIC R0,R0,#0x1F                                            ;清楚R0的后5位

                 ORR R0,R0,#0x10                                           ;设定R0的最后5位为10000

                 MSR CPSR_c,R0                                            ;把R0装在到CPSR,切换到用户模式

                 MOV R13,#7                                                   ;对未定义模式下的特有缓冲器R13赋值(R13-R14)

HALT        B       HALT

                  END

六、遇到的问题及解决方法

在ADS中编写汇编程序如下:

MAKE时提示下面的错误:

检查源程序,发现第一行AREA是关键字,且最后两行注释用的分号是中文状态输入,修改程序如下:

(徐腾飞)

实验二 VMWARE虚拟机与Linux环境的建立

一、实验目的

  熟悉嵌入式系统开发环境的建立,掌握VMWARE-Linux环境的安装步骤;能够配置Samba服务、设置VMWARE虚拟机共享功能,学会Windows系统环境与Linux系统环境共享资源的基本方法。

二、实验内容

1.在Windows系统环境中安装VMWARE7.0虚拟机软件;

2.在VMWARE7.0虚拟机中安装Linux RHEL AS4操作系统;

3.设置VMWARE虚拟机提供的共享功能;

4.在Linux系统中建立Samba服务;

三、预备知识

  了解VMWARE、VirtualBox、Virtual PC等虚拟机软件的相关知识;了解Linux操作系统的安装方法及基本操作方法。

四、实验设备

1. 硬件环境配置

计算机:Intel(R) Pentium(R) 及以上

内存:1GB及以上

实验设备:UP-NETARM2410-S嵌入式开发平台,J-Link V8仿真器

2. 软件环境配置

操作系统:Microsoft Windows XP Professional Service Pack 2

虚拟机:VMware WorkStation 7

Linux系统:Red Hat Enterprise Linux AS 4 (2.6.9-5.EL)

五、实验分析

       1.查看实验设备中配备的PC机,将下列硬件型号填写正确:

l  CPU型号:AMD A4-3305M APU with Redeon(tm) HD Graphics

l  内存大小:6G                                         

l  硬盘空间:500G                 

      根据实验的实际操作,将下列软件版本号填写正确:

l  VMWARE: 7.0.0 build-203739            

l  Linux系统: Redhat.Enterprise.Linux.Advanced.Server.4                  

l  Windows系统: Windows 7 Ultimate, 64-bit 6.1.7601, Service Pack 1        

2.在VMWARE软件中安装RHEL4虚拟机时,出现网络连接方式的设置界面,如下图,提供了四个选项:桥接(bridged networking)、NAT(Network Address Translation)、host-only及无需连接。应该选择哪种方式?并解释其他方式的特点。

图 设置网络连接方式

答:选择NAT方式。

桥接:将虚拟机视为与物理机在网络中处于同一地位的独立主机,可以实现虚拟机与主机,虚拟机与互联网的相互通信。但主机与互联网的连接中断后,虚拟机与主机无法正常通信。

NAT:虚拟机与主机中的虚拟网卡VMnet8同网段,以VMnet8作为网关,通过物理机访问外网。可以实现主机与虚拟机相互通信,虚拟机单相访问外网。

Host-only:虚拟机与VMnet1同网段。可以与主机相互通信,但不能与外网相互访问。

3.根据在Linux系统中的实际操作方法,按实验步骤简要说明Samba服务的设置与测试过程。

答:设置步骤:先在Applications>System Settings>Security Leval内关闭Linux中的防火墙;然后在Applications>System Settings>Sever Settings>Smaba内添加共享文件路径,并设置共享文件属性;再接着Applications>System Tools>Network Device Control>Configuren内设置etho的IP地址为192.168.1.160与VMnet8、物理机本地网络连接IP在同一网段;设置虚拟及连接方式为NAT。

       测试:物理机内打开“运行”窗口,输入\\192.168.1.160,弹出共享文件对话框,说明配置成功。

4.参考教材中的实践指导部分,在Linux系统环境中安装VMWARE Tools软件,观察安装过程中的交互提示。安装成功后,系统给出了什么提示信息?怎样从VMWARE的VM菜单中设置Windows-Linux共享功能?

答:1)安装成功后出现“Enjoy”提示。

       2)VM>Setting…>Options>Shared Folders>Add…>Next,选择物理机中的共享文件路径,确定,设置Always enabled,点击OK。

六、遇到的问题及解决办法

答:

问题:设置好本地静态IP地址后,能正常登陆QQ聊天工具,但无法用浏览器通过域名与互联网通信

解决方法:仔细检查本地物理机连接配置,发现没有设置DNS服务器,正确设置DNS服务器后问题解决
实验三 Linux RHEL AS4开发基础

一、实验目的

熟悉Linux操作系统开发环境,掌握Linux操作系统中的基本操作命令;掌握Vi编辑器的使用;掌握GCC工具的使用;掌握make及Makefile文件的使用。

掌握建立嵌入式交叉编译环境的方法。

二、实验内容

1. 在Linux操作系统中执行常用的文件命令、目录命令、多用户命令与安全性命令以及其它常用命令;

2. 使用Vi编辑器建立一个hello.c源文件,并存放在指定目录中;

3. 使用GCC工具编译hello.c源文件,并在计算机上执行得到的hello可执行程序;

4. 使用Vi编辑器建立一个Makefile文件,存放在指定目录中。使用make命令重新编译hello.c源文件;

5. 建立嵌入式交叉编译环境;

6. 使用嵌入式交叉编译工具重新编译hello.c源文件,并使用readelf命令查看得到的hello可执行程序的文件头信息;

三、预备知识

  了解Linux操作系统的基本操作方法;了解嵌入式系统基本的开发方法。

四、实验设备

1. 硬件环境配置

计算机:Intel(R) Pentium(R) 及以上

内存:1GB及以上

实验设备:UP-NETARM2410-S嵌入式开发平台,J-Link V8仿真器

2. 软件环境配置

操作系统:Microsoft Windows XP Professional Service Pack 2

虚拟机:VMware WorkStation 7

Linux系统:Red Hat Enterprise Linux AS 4 (2.6.9-5.EL)

五、实验步骤

1.Shell指令练习

打开Terminal窗口,使用su指令切换到root用户,使用echo指令在屏幕上显示“Experiment 1 on my ARM Course from dztx, zzia.\n Now, Go Go Go!”。

使用pwd指令查看当前路径,使用cd指令切换到/home目录下,再使用ls指令浏览该目录,使用mkdir指令在当前路径下建立zcnet目录及zzia目录,随即使用rmdir指令删除zzia目录。

将当前路径下的readme.txt使用cp指令复制到/home/zcnet目录中,然后,使用cd指令切换进入/home/zcnet目录中,使用ls指令查看readme.txt是否存在。使用mv指令将readme.txt重命名为demo.txt,再使用cat指令查看,然后,使用rm指令将demo.txt删除。

使用who指令、finger指令查看当前用户的登陆信息,使用time指令、date指令显示系统的时间、日期。

将上面指令练习中用到的指令进行分类。

文件命令:

mkdir、rmdir、cp、cat、rm、mv

目录命令:

pwd、cd、ls、

多用户命令与安全性命令:

su、who、finger、

其它常用命令:

time、date

2.使用VI编辑器编写hello.c源代码,并存放在/home/zcnet目录中。然后,使用GCC编译hello.c源代码,并在计算机上运行得到的相应可执行程序。

3.使用VI编辑器编写编译上述hello.c的Makefile源代码,并存放在/home/zcnet目录中。然后,使用make指令编译hello.c源代码,并在计算机上运行得到的相应可执行程序。

4.用Shell指令依次列出实验中嵌入式交叉编译环境的建立步骤,并写出测试安装效果的指令。

使用嵌入式交叉编译工具重新编译hello.c源文件,并使用readelf命令查看得到的hello可执行程序的文件头信息。

使用chmod指令设置hello为可执行程序,在PC机上再次运行hello程序,观察执行情况,并给出相关的分析。

答:

1)

定义变量并解压:

[root@localhost home]# arm=arm-linux-tools-20061213.tar.gz

[root@localhost home]# tar xzvf $arm

配置环境变量并查看:

[root@localhost home]# export PATH=$PATH:/home/sur/local/bin

[root@localhost home]# echo $PATH

测试安装效果:

[root@localhost home]# armv=arm-linux-gcc

[root@localhost home]# $armv -v

2)

#cd /home/zcnet

#arm-linux-gcc –o hello –c hello.c

# readelf

3)

执行命令:

#chmod a+x hello

#

#./hello

执行结果:

bash: ./hello: cannot execute binary file

分析:相同代码使用不同编译工具编译结果不同,适用的运行平台也不同。arm-linux-gcc编译的结果适用于ARM平台。故该编译结果不能在计算机上运行。

六、遇到的问题及解决办法

答:

1) 问题:使用echo指令时不能争取输出,提示bash: !": event not found。

解决:将双引号内文本信息的最后一个感叹号与双引号用空格隔开。

2) 问题:使用date指令时不能实现相应功能。

解决:输入命令时输入错误,将date输成了data,该更后问题解决。
实验四 嵌入式系统仿真软件SKYEYE的应用

一、实验目的

熟悉使用嵌入式系统仿真软件SKYEYE开发嵌入式系统的方法。

二、实验内容

1. 安装嵌入式系统仿真软件SKYEYE-1.2.4版本;

2. 安装SKYEYE的测试工具包skyeye-testsuite-2.3.tar.bz2;

3. 使用SKYEYE的配置文件skyeye.conf并测试SKYEYE的执行;

三、预备知识

  了解电路专业相关的仿真软件;了解SKYEYE软件基本的应用方法。

四、实验设备

1. 硬件环境配置

计算机:Intel(R) Pentium(R) 及以上

内存:1GB及以上

实验设备:UP-NETARM2410-S嵌入式开发平台,J-Link V8仿真器

2. 软件环境配置

操作系统:Microsoft Windows XP Professional Service Pack 2

虚拟机:VMware WorkStation 7

Linux系统:Red Hat Enterprise Linux AS 4 (2.6.9-5.EL)

五、实验步骤

       1.根据实际的实验操作过程,列出在安装嵌入式系统仿真软件SKYEYE-1.2.4时用到的各个指令。

答:

cd /home

tar –xjvf skyeye-testsuit-2.3.tar.bz2

cd skyeye-1.2.4

make

    2.使用tar指令解压SKYEYE的测试工具包skyeye-testsuite-2.3.tar.bz2,再使用相关指令进入ARM S3C2410A的测试目录,使用cat指令查看skyeye.conf的内容。

       列出上述实验过程的具体指令

答:

cd /home

tar xjvf skyeye-testsuite-2.3.tar.bz2

cd skyeye-testsuite-2.3

ls

cd u-boot

ls

cd smdk2410

ls

cd u-boot-1.2.0

ls

cat skyeye.conf

       3.运行skyeye.exe程序,使用帮助查看常用的参数及相应的格式,在下面写出运行的指令及skyeye.exe的命令行参数格式。

答:

指令:

cd /home/skyeye-1.2.4/binary

./skyeye –h

参数格式:

SkyEye [options] -e program [program args]

Options:

-e exec-file        the (ELF executable format)kernel file name.

-l load_address,load_address_mask

                    Load ELF file to another address, not its entry.

-b                  specify the data type is big endian when non "-e" option

-d                  in GDB Server mode (can be connected by GDB).

-c config-file            the skyeye configure file name.

-h                  The SkyEye command options, and ARCHs and CPUs simulated.

       4.在skyeye-testsuite-2.3测试包提供了测试ARM S3C2410A的测试目录,配置文件选用提供的skyeye.conf,使用skyeye.exe程序仿真运行U-Boot程序及Linux内核的运行。

       写出实验时的测试步骤,并简单描述U-Boot程序及Linux内核的运行效果。

答:

1)U-boot程序的仿真运行:

cd /home/skyeye-testsuite-2.3

ls

cd u-boot

ls

cd smdk2410

ls

cd u-boot-1.2.0

ls

cp * /home/skyeye-1.2.4/binary

cd /home/skyeye-1.2.4/binary

./skyeye –c skyeye.conf –e u-boot

运行效果:

首先加载一些过程信息,包括开发板的配置信息,存储空间的分配信息等,最后进入u-boot的控制界面,出现“SMDK2410#”的提示符,说明u-boot中的穿行通信接口应可以正常工作了。

2)Linux内核的仿真运行

cd /home/skyeye-testsuite-2.3

ls

cd linux

ls

cd s3c2410

cd s3c2410x-2.6.14/

ls

cp * /home/skyeye-1.2.4/binary

cd /home/skyeye-1.2.4/binary

./skyeye –c skyeye.conf –e vmlinux

运行效果:

屏幕中先是输出了skyeye的配置信息,然后显示了内核的启动信息。Linux操作系统内核启动完毕后,进入shell界面,接受用户命令的输入。

六、遇到的问题及解决办法

答:

问题:以上操作在实验室台式机上正常,但在个人笔记本上仿真运行U-boot时出现“Segmentation fault”错误,即每次在分配存储空间是出现错误。

解决:通过阅读安装包内的README文件,得知skeyey编译不成功,或编译后无法正常工作时,使用make命令的时候可以加入一些选项参数,例如:

不允许DBCT:make NO_DBCT=1;不支持LCD:make NO_LCD=1;不支持BFD库:

make NO_BFD=1;不支持网络设备:make NO_NET=1。

我使用make NO_BFD=1编译skyeye,可以正常仿真运行U-boot。

实验五 U-Boot的编译与仿真

一、实验目的

掌握U-Boot的编译,掌握在Skyeye环境下调试U-Boot的方法

二、实验内容

1. 编译引导程序U-Boot;

2. 在Skyeye环境下调试U-Boot;

3. 练习U-Boot的常用命令;

三、预备知识

  了解Bootloader程序的原理;了解U-Boot的常用命令。

四、实验设备

1. 硬件环境配置

计算机:Intel(R) Pentium(R) 及以上

内存:1GB及以上

实验设备:UP-NETARM2410-S嵌入式开发平台,J-Link V8仿真器

2. 软件环境配置

操作系统:Microsoft Windows XP Professional Service Pack 2

虚拟机:VMware WorkStation 7

Linux系统:Red Hat Enterprise Linux AS 4 (2.6.9-5.EL)

五、实验步骤

       1.根据实际的实验操作过程,编译U-Boot,并列出编译U-Boot时用到的各个指令。

答:

[root@localhost home]#cd /home/embeddedsystem

[root@localhost embeddedsystem]#tar –xjvf u-boot-1.3.2.tar.bz2

[root@localhost embeddedsystem]#cd u-boot-1.3.2

[root@localhost u-boot-1.3.2]#make smdk2410_config CROSS_ROMPILE=arm-linux-

    2.分析U-Boot编译完成后生成的映像文件,共有几种,分别是哪种格式。

答:

编译完成后,可以得到以下文件:

System.map:U-Boot映像的符号表

u-boot.bin:U-Boot映像原始的二进制格式

u-boot:U-Boot映像的ELF格式

u-boot.srec:U-Boot映像的S-Record格式

       3.编写Skyeye的配置文件,在Skyeye环境下对U-Boot进行仿真,写出仿真U-Boot所使用的指令。

答:

(1)skyeye.conf内容配置为:

# skyeye config file for S3C2410X

arch:arm

cpu: arm920t

mach: s3c2410x

# physical memory

mem_bank: map=M, type=RW, addr=0x00000000, size=0x00100000

mem_bank: map=M, type=RW, addr=0x30000000, size=0x04000000

#mem_bank: map=M, type=RW, addr=0xc1600000, size=0x00a00000

# all peripherals I/O mapping area

mem_bank: map=I, type=RW, addr=0x48000000, size=0x20000000

mem_bank: map=I, type=RW, addr=0x19000300, size=0x00000020

#net: type=cs8900a, base=0x19000300, size=0x20,int=9, mac=0:4:3:2:1:f, ethmod=tuntap,hostip=10.0.0.1

lcd: type=s3c2410x, mod=gtk

#load_addr:base=0x30000000, mask=0xFFFFFF

#dbct:state=on

(2)将编译成生成的elf格式文件u-boot和 skyeye.conf一同复制到/home/embeddedsystem/skyeye-1.2.4/binary文件夹下。

[root@localhost home]#cd /home/embeddedsystem

[root@localhost embeddedsystem]#cd skyeye-1.2.4

[root@localhost skyeye-1.2.4]#cd binary

[root@localhost binary]#./skyeye –e u-boot

       4.练习U-Boot的常用命令,列出三个U-Boot的常用命令并对其功能进行描述。

答:

bdinfo:打印开发板信息;

erase:擦出Flash Rom

reset:执行CPU复位

run:运行已定义的U-boot命令

savenv:保存设定的环境变量

setenv:设置环境变量

version:显示版本信息

六、遇到的问题及解决办法

答:无

实验六 Linux内核的配置、编译与调试

一、实验目的

掌握Linux内核的配置、编译,掌握在Skyeye环境下调试Linux内核的方法

二、实验内容

1. 配置Linux内核;

2. 编译Linux内核;

3. 在Skyeye环境下调试Linux内核;

三、预备知识

  了解Linux2.6版本内核;了解Linux内核的配置过程。

四、实验设备

1. 硬件环境配置

计算机:Intel(R) Pentium(R) 及以上

内存:1GB及以上

实验设备:UP-NETARM2410-S嵌入式开发平台,J-Link V8仿真器

2. 软件环境配置

操作系统:Microsoft Windows XP Professional Service Pack 2

虚拟机:VMware WorkStation 7

Linux系统:Red Hat Enterprise Linux AS 4 (2.6.9-5.EL)

五、实验步骤

       1.启动内核配置菜单,选择make menuconfig方式进行配置。列出linux内核的配置方式及每种配置方式的特点,列出启动内核配置菜单所使用的指令。

答:

(1)配置方式:

1)       文本框对话框配置方式。

命令:make .congfig。特点:内容细致,但浪费时间,适合专业的开发人员。

2)       基于图形界面的配置方式。

命令:make xcongfig。特点:项目显示直观,但需要xwindows图形界面相关软件的支持。

3)       目录方式。

命令:make menuconfig。特点:方便直观,基于字符界面,和curses图形界面。

    2.配置linux2.6版本内核,列出基本的配置项目都有哪些。

(2)本实验使用目录方式

[root@localhost home]#cd /home/embeddedsystem

[root@localhost embeddedsystem]#tar -xjvf linux-2.6.14.tar.bz2

[root@localhost embeddedsystem]#cd linux-2.6.14

[root@localhost linux-2.6.14]#vi Makefile

在打开的文件中修改第192行与第193行,改为:

ARCH ?=arm

(指定编译的内核架构)                                                             CROSS_COMPILE ?=/home/usr/local/bin/arm-linux- 

(指定交叉编译工具)

[root@localhost linux-2.6.14]#cp arch/arm/configs/smdk2410_defconfig .config 

[root@localhost linux-2.6.14]#make ARCH=arm menuconfig

       3.编译Linux内核,列出编译Linux内核所使用的指令,列出编译之后生成的文件及每个文件的用途。

答:

(1)

[root@localhost linux-2.6.14]#cd /home/linux-2.6.14

[root@localhost linux-2.6.14]#make ARCH=arm CROSS_COMPILE=arm-linux-

(2)

1)vmlinux:位于根目录下,是在内核源码顶层目录生成的内核映像,属于elf格式的目标文件。它是内核在虚拟空间中运行时代码的真实反映。因为Linux内核运行在虚拟地址空间,所以vmlinux中的“vm”表示“Virtual Memory”。

2)zImage:位于Linux-2.6.14安装目录中arch/arm/boot/路径下,是可引导的、压缩的内核映像,属于二进制文件,是vmlinux的压缩的可执行的Linux内核映像。zImage采用gzip压缩格式,包含gzip的解压缩函数。

在使用SKYEYE软件仿真Linux内核运行时,一般加载vmlinux映像文件;在将Linux内核的映像文件下载到评估电路板上时,一般下载的是zImage压缩的内核映像文件

3)Image:与zImage生成位置相同,也是二进制文件。

       4.编写Skyeye的配置文件,在Skyeye环境下对linux内核进行仿真,列出仿真所使用的指令及所需要的文件。

答:

(1)skyeye.conf配置文件的内容为:

#skyeye config file for s3c2410

cpu:arm920t

mach:s3c2410x

#physical memory

mem_bank:map=M,type=RW,addr=0xc0000000,size=0x00800000

mem_bank:map=M,type=RW,addr=0xc0800000,size=0x00800000,file=./initrd.img

mem_bank:map=M,type=RW,addr=0xc1000000,size=0x01000000

#all peripherals I/O mapping area

mem_bank:map=I,type=RW,addr=0x48000000,size=0x20000000

mem_bank:map=I,type=RW,addr=0x19000300,size=0x00000020

net:type=cs8900a,base=0x19000300,size=0x20,int=9,mac=0:4:3:2:1:f,ethmod=tuntap,hostip=10.0.0.1

lcd:type=s3c2410x,mod=gtk

#dbct: state=on

(2)复制编译得到的elf格式内核文件vmlnux和测试文件系统initrd.img到/home/embeddedsystem/skyeye-1.2.4/binary下,然后在终端执行:

[root@localhost linux-2.6.14]#cd /home/zcnet/skyeye-1.2.4/binary

[root@localhost binary]#./skyeye -e vmlinux

六、遇到的问题及解决办法

答:无

实验七 根文件系统的制作

一、实验目的

掌握BusyBox的编译与安装,掌握根文件系统的制作过程,掌握在Skyeye环境下调试根文件系统的方法

二、实验内容

1. 编译安装BusyBox;

2. 制作根文件系统;

3. 在Skyeye环境下调试根文件系统;

三、预备知识

  了解BusyBox;了解根文件系统的相关知识。

四、实验设备

1. 硬件环境配置

计算机:Intel(R) Pentium(R) 及以上

内存:1GB及以上

实验设备:UP-NETARM2410-S嵌入式开发平台,J-Link V8仿真器

2. 软件环境配置

操作系统:Microsoft Windows XP Professional Service Pack 2

虚拟机:VMware WorkStation 7

Linux系统:Red Hat Enterprise Linux AS 4 (2.6.9-5.EL)

五、实验步骤

       1.配置BusyBox。

列出配置BusyBox所使用的指令及配置的内容。

答:

1)进入BusyBox的配置菜单

[root@localhost busybox-1.2.0]#make menuconfig

2)配置内容

    Busybox配置菜单中,主要包括BusyBox的全局配置:BusyBox Settings和小程序:Applets。先配置全局配置中的各项内容,再配置小程序中的内容。

(1)   通用选项

(2)   编译选项

a.  配置为将BusyBox编译成静态链接的可执行文件,运行时不需要共享库支持

b.  配置Linux操作系统中的交叉编译工具所在路径

(3)   调试选项

(4)   安装选项

a.  配置不将编译得到BusyBox文件放到原系统的/usr下,BusyBox将被编译为静态链接的可执行文件。

b.  配置安装BusyBox时将各个命令安装为指向BusyBox的软连接

c.  指定编译BusyBox时生成文件的安装目录

(5)   设置“BusyBox Library Tuning”项

3)       设置小程序(Applets)项

(1)   添加shell命令

(2)   添加气动工具

(3)   选择配置Linux系统中常用工具和命令。

4)保存设置

    2.编译与安装BusyBox,列出编译与安装BusyBox所使用的指令。

答:

1)编译BusyBox

[root@localhost busybox-1.2.0]#make

2)安装BusyBox

[root@localhost busybox-1.2.0]#make install

       3.制作根文件系统,列出根文件系统的制作过程。

答:

1)创建根文件系统的dev目录:

[root@localhost BusyBox-1.2.0]#mkdir _install/dev

[root@localhost BusyBox-1.2.0]#cp /dev/ttyS0/dev/console/dev/ram0 _install/dev/ -a

2)创建根文件系统的etc等目录及配置文件,编写make_rootfs.sh来实现该部分的操作。

make_rootfs.sh内容如下:

echo "steps of make_rootfs"

echo "1:creat folders"

mkdir -pv etc etc/init.d home initrd lib proc root tmp var

echo "2:etc/inittab"

cat>etc/initab<<"EOF"

::sysinit:/etc/ini.d/rcS

::askfirst:-/bin/sh

::restart:/sbin/init

::ctrlaltdel:/sbin/reboot

::shutdown:/bin/umount -a -r

::shutdown:/sbin/swapoff -a

EOF

echo "3:creat etc/init.d/rcS"

cat>etc/init.d/rcS<<"EOF"

#!/bin/sh

/bin/mount -t proc none /proc

/sbin/ifconfig lo 127.0.0.1 up

/sbin/ifconfig eth0 10.0.0.2 up

hostname skyeye-zgxbc

mkdir /var/tmp

mkdir /var/log

mkdir /var/run

mkdir /var/lock

cat /etc/mod

#/sbin/ifconfig eht0 172.17.51.171 netmask 255.255.0.0 up

#route add default gw 172.17.1.2

/bin/ash

EOF

echo "3(1):chmod etc/init.d/rcS"

chmod 777 etc/init.d/rcS

echo "4:creat etc/mtab"

cat>etc/mtab<<"EOF"

rootfs/rootfs rw 0 0

/dev/root/nfs rw,v2,rize=4096,hard,udp,nolock,

addr=172.15.51.4 0 0

none/proc proc rw 0 0

EOF

echo "5:creat etc/motd"

cat>etc/motd<<"EOF"

Welcome to

 


ARMLinux for Skyeye

For further information please check:

http://www.skyeye.org/

EOF

3)将编写的make_rootfs.sh脚本文件放在BusyBox的安装目录_install中,然后进入安装目录运行该脚本

[root@localhost BusyBox-1.2.0]#cd _install

[root@localhost _install]#./make_rootfs.sh

根文件系统的完整结构就在安装目录_install中建立出来了

       4.在Skyeye环境下对根文件系统进行仿真,观察输出的提示信息是否与文件etc/motd的内容相符。

答:相符,如图所示:

六、遇到的问题及解决办法

答:无


实验八 嵌入式系统基础应用实作

一、实验目的

掌握向嵌入式开发板中下载U-Boot的方法,掌握Linux内核及根文件系统的烧写方法

二、实验内容

1. 向嵌入式开发平台下载U-Boot;;

2. 向嵌入式开发平台烧写Linux内核;

3. 向嵌入式开发平台烧写根文件系统;

三、预备知识

  了解U-Boot下载过程中所用到的工具;了解内核及根文件系统的烧写过程,。

四、实验设备

1. 硬件环境配置

计算机:Intel(R) Pentium(R) 及以上

内存:1GB及以上

实验设备:UP-NETARM2410-S嵌入式开发平台,J-Link V8仿真器

2. 软件环境配置

操作系统:Microsoft Windows XP Professional Service Pack 2

虚拟机:VMware WorkStation 7

Linux系统:Red Hat Enterprise Linux AS 4 (2.6.9-5.EL)

五、实验步骤

1.查看Linux系统对mtd_nand Flash存储设备的分区信息。分区信息位于:arch/arm/plat-s3c24xx/common-smdk.c 或者arch/arm/mach-s3c2410/common-smdk.c源代码中。

    2.安装并口驱动

l  首先将并口驱动目录下的GIVEIO.SYS文件复制到C:\WINDOWS\system32\drivers目录下面;

l  然后打开控制面板里的添加硬件,选择“是,我已经连接了此硬件”;

l  下一步,选择添加新的硬件设备;

l  下一步,选择“安装我手动从列表选择的硬件”;

l  下一步,选择“端口(COM和LPT)”;

l  选择从磁盘安装,在路径中选择并口驱动目录下的giveio.ini文件,然后按提示一直进行下去就可以了;

l  最后打开设备管理器,在设备管理器的端口里能看到GIVEIO端口,就表示安装正常了。

       3.下载U-BOOT

使用sjf2410-s.exe下载U-BOOT程序到开发板上的存储芯片中。

列出下载U-Boot的过程及所使用的指令

答:

1)      把并口线插到pc机的并口,并把并口的另一端与实验箱上端的

UP-LINK相连,(确保跳线1、2相连即使用UP-LINK)打开2410-CL电源(12V)。

2)      在d盘新建一目录bootloader,把sjf2410-s.exe(在flash-uboot目录下)和要烧写的u-boot.bin。打开CMD窗口运行如下命令:

C:\Users\Zgxbc>D:

D:\>cd bootloader

D:\ bootloader>sjf2410-s.exe /f:u-boot.bin

3)         在此后出现的三次要求输入参数,第一次是让选择Flash,选0,然后回车,第二次是选择jtag对flash的两种功能,也选0,然后回车,第三次是让选择起始地址,选0,然后回车,等待大约3-5分钟的烧写时间

4)        当u-boot 烧写完毕后选择参数2,退出烧写。如下图所示。烧录后关闭2410-CL,拔掉并口线与开发板的连线。

       4.设置超级终端

       列出所设置超级终端的参数

 答:

1)  为所建超级终端取名为ARM。

2)  选择ARM开发平台实际链接的PC机串口(本实验用的是COM1)

3)  设置每秒位数:115200

4)  数据位:8

5)  奇偶校验位:无

6)  停止位:1

7)  数据流控制:无

    5.建立tftp服务器

运行loader目录中的tftpd32.exe程序,在windows上建立tftp服务器。

    6.烧写内核

       列出烧写内核所使用的指令。

答:将uImage放入loader目录中,然后运行:

SMDK2410 # setenv severip 169.254.83.241

SMDK2410 # setenv ipaddr 169.254.83.240

SMDK2410 # saveenv

SMDK2410 # tftpboot 0x30008000 169.254.83.241:uImage

SMDK2410 # nand erase 0x80000 0x20000

SMDK2410 # nand write 0x30008000 0x80000 0x200000

    7.烧写根文件系统

       列出烧写根文件系统所使用的指令。

答:将root.cramfs放入loader目录中,然后运行:

SMDK2410 # tftpboot 0x30008000 169.254.83.241:root.cramfs

SMDK2410 # nand erase 0x280000 0x400000

SMDK2410 # nand write 0x30008000 0x280000 0x300000

    8.设置启动参数

       列出设置启动参数所使用的指令。

答:

SMDK2410 # setenv bootargs root=/dev/mtdblock3 init=/linuxrc console=ttySAC0,115200

SMDK2410 # saveenv

SMDK2410 # setenv bootcmd nand read 0x30008000 0x80000 0x200000\; bootm

SMDK2410 # saveenv

六、遇到的问题及解决办法

答:无

更多相关推荐:
20xx完整ARM嵌入式系统实验报告

郑州航空工业管理学院嵌入式系统实验报告修订版20第赵成张克新编著院姓专学系名业号电子通信工程系20xx年3月制实验一ARM体系结构与编程方法一实验目的了解ARM9S3C2410A嵌入式微处理器芯片的体系结构熟悉...

嵌入式系统实验报告

嵌入式系统设计实验报告班级学号姓名成绩指导教师1实验一11实验名称博创UP3000实验台基本结构及使用方法12实验目的1学习嵌入式系统开发流程2熟悉UPnet3000实验平台的核心硬件电路和外设3增加对各个外设...

嵌入式系统实验报告

实验报告20xx20xx学年第二学期课程名称ARM嵌入式系统原理与开发实验名称嵌入式Linux交叉开发环境建立与程序开发实验时间指导单位20xx年5月21日通信与信息工程学院指导教师余雪勇学生姓名学院系通信与信...

嵌入式系统实验报告

嵌入式系统设计实验报告班级学号姓名成绩指导教师20xx061420xx061411刘群峰赵国冬孟昭林1实验一11实验名称博创UP3000实验台基本结构及使用方法12实验目的1熟悉UPnet3000实验平台的核心...

嵌入式系统实验报告

嵌入式系统实验报告学院测量与通信工程学院专业信号与信息处理学生姓名姜元学号1320xx0050指导教师董静薇一实验目的了解BootLoader的基本概念和框架结构了解BootLoader引导操作系统的过程掌握b...

20xx嵌入式系统实验报告书

郑州航空工业管理学院嵌入式系统实验报告书院系姓名专业学号指导老师电子通信工程系通信工程10赵成电子通信工程系20xx年11月制1实验一认识嵌入式开发平台一实验目的认识UPNETARM2410S嵌入式开发平台了解...

嵌入式系统实验报告

实验报告内容实验题目循环轮流点亮8个发光二极管每个状态时间间隔200毫秒1000毫秒实验目的掌握KEIL软件编辑软件和Proteus软件的基本操作了解电路的基本实现以及74HC573芯片相关原理实验要求用KEI...

嵌入式系统技术实验报告

南京理工大学嵌入式系统实验报告指导老师姓名学院系班级学号实验日期实验一熟悉Linux开发环境一实验目的熟悉Linux开发环境学会基于S3C2410的Linux开发环境的配置和使用使用Linux的armv4lun...

Linux嵌入式系统实验报告一

Linux嵌入式系统实验报告一一实验目的通过编写fork和exec等系统调用的程序加深对系统进程及其控制的了解二实验原理fork后父子进程会同步运行但父子进程的返回顺序是不确定的设两个变量global和test...

嵌入式系统课程设计报告模版

XXXX课程设计报告课程名称嵌入式系统设计题目专业班级学生姓名学生学号指导老师二一三年一月八日目录1概述111背景112设计目标213开发环境314关键技术52概要设计821软件结构822各功能模块设计103详...

嵌入式系统实验报告

本科实验报告实验名称嵌入式系统实验嵌入式系统实验报告一实验原理本实验使用xmanagerenterprise软件来连接老师配置好的linux服务器以完成实验中使用linux完成编译和仿真运行一个嵌入式系统实验中...

《嵌入式系统与开发》实验报告——B120xx909

南京邮电大学计算机学院嵌入式系统与开发实验报告构建嵌入式Linux系统实验报告学生姓名学号专业班级指导教师孙国梓完成时间南京邮电大学计算机学院嵌入式系统与开发实验报告实验2构建嵌入式Linux系统一实验目的理解...

嵌入式系统实验报告(43篇)