文档视界 最新最全的文档下载
当前位置:文档视界 › ARM嵌入式系统实验报告1

ARM嵌入式系统实验报告1

郑州航空工业管理学院嵌入式系统实验报告

20 13 – 20 14 第2 学期

赵成,张克新

院系:电子通信工程系

姓名:周振宇

专业:物联网工程

学号:121309140

电子通信工程系

2014年3月制

实验一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,READONL Y

ENTRY

CODE32

SART MOV R1,#1

MOV R2,#2

ADD R0,R1,R2

HALT B HALT

END 声明代码段XTF

标识程序入口

声明32位ARM指令设置参数

R0<---R1+R2

死循环

结束程序段

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

AREA XTF,CODE,READONL Y ;声明代码段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} ; LDM IA中的指令后缀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环境的建立

一、实验目的

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

二、实验内容

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

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

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

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

三、预备知识

了解VMW ARE、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机,将下列硬件型号填写正确:

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

●内存大小:6G

●硬盘空间:500G

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

●VMW ARE:7.0.0 build-203739

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

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

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

图设置网络连接方式

答:选择NA T方式。

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

NA T:虚拟机与主机中的虚拟网卡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在同一网段;设置虚拟及连接方式为NA T。

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

4.参考教材中的实践指导部分,在Linux系统环境中安装VMW ARE 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=tu ntap,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命令

嵌入式Linux系统开发教程实验报告

嵌入式实验报告 : 学号: 学院: 日期:

实验一熟悉嵌入式系统开发环境 一、实验目的 熟悉Linux 开发环境,学会基于S3C2410 的Linux 开发环境的配置和使用。使用Linux的armv4l-unknown-linux-gcc 编译,使用基于NFS 方式的下载调试,了解嵌入式开发的基本过程。 二、实验容 本次实验使用Redhat Linux 9.0 操作系统环境,安装ARM-Linux 的开发库及编译器。创建一个新目录,并在其中编写hello.c 和Makefile 文件。学习在Linux 下的编程和编译过程,以及ARM 开发板的使用和开发环境的设置。下载已经编译好的文件到目标开发板上运行。 三、实验设备及工具 硬件::UP-TECH S2410/P270 DVP 嵌入式实验平台、PC 机Pentium 500 以上, 硬盘10G 以上。 软件:PC 机操作系统REDHAT LINUX 9.0+超级终端(或X-shell)+AMR-LINUX 开发环境。 四、实验步骤 1、建立工作目录 [rootlocalhost root]# mkdir hello [rootlocalhost root]# cd hello 2、编写程序源代码 我们可以是用下面的命令来编写hello.c的源代码,进入hello目录使用vi命令来编辑代码: [rootlocalhost hello]# vi hello.c 按“i”或者“a”进入编辑模式,将上面的代码录入进去,完成后按Esc 键进入

命令状态,再用命令“:wq!”保存并退出。这样我们便在当前目录下建立了一个名为hello.c的文件。 hello.c源程序: #include int main() { char name[20]; scanf(“%s”,name); printf(“hello %s”,name); return 0; } 3、编写Makefile 要使上面的hello.c程序能够运行,我们必须要编写一个Makefile文件,Makefile文件定义了一系列的规则,它指明了哪些文件需要编译,哪些文件需要先编译,哪些文件需要重新编译等等更为复杂的命令。使用它带来的好处就是自动编译,你只需要敲一个“make”命令整个工程就可以实现自动编译。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 下面我们来简单介绍这个Makefile 文件的几个主要部分: CC 指明编译器 EXEC 表示编译后生成的执行文件名称 OBJS 目标文件列表

嵌入式系统实验报告-μCOS-Ⅱ在ARM上的移植和编译-答案

《嵌入式系统实验报告》 μC/OS-Ⅱ在ARM上的移植和编译 南昌航空大学自动化学院050822XX 张某某 一、实验目的: 1、掌握将μC/OS-II操作系统移植到ARM9处理器的方法。 2、了解μC/OS-II操作系统的基本原理和移植条件 二、实验设备 硬件:PC机1台;MagicARM2410教学实验开发平台1台; 软件:Windows 98/2000/XP操作系统;ADS 1.2集成开发环境 三、实验内容: 学习移植μC/OS-II操作系统到ARM9处理器,然后编写一个简单的多任务应用程序,实现LED流水灯控制。 四、实验步骤: (1)为ADS1.2增加DeviceARM2410专用工程模板(若已增加过,此步省略)。 (2)连接EasyJTAG-H仿真器和MagicARM2410实验箱,然后安装EasyJTAG-H仿真器(若已经安装过,此步省略),短接蜂鸣器跳线JP9。 (3)启动ADS 1.2,使用ARM Executable Image for DeviceARM2410(uCOSII)工程模板建立一个工程Demo_uCOSII。(本范例在ADS文件夹中操作) (4)在ADS文件夹中新建arm、Arm_Pc、SOURCE文件夹。将μC/OS 2.52源代码添加到SOURCE文件夹,将移植代码添加到arm文件夹,将移植的PC服务代码添加到Arm_Pc 文件夹。(移植代码可以在DeviceARM2410光盘上获得,μC/OS 2.52源代码需要从参考文献[5]的光盘上获得) (5)在src组中的main.c中编写主程序代码。 (6)根据程序设计来更改Os_cfg.h文件,配置μC/OS-II操作系统。(对于本实验,μC/OS-II的配置使用模板默认设置即可) (7)选用DebugRel生成目标,如图3.3所示,然后编译链接工程。 (8)将MagicARM2410实验箱上的蜂鸣器跳线JP9短接,将启动方式选择跳线JP8短接,然后按RST键复位系统。 (9)选择【Project】->【Debug】,启动AXD进行JTAG仿真调试。 (10)全速运行程序,程序将会在main.c的主函数中停止(因为main函数起始处默认设置有断点)。 (11)单击Context Variable图标按钮(或者选择【Processor Views】->【Variables】)打开变量观察窗口,通过此窗口可以观察局部变量和全局变量。 (12)可以单步运行程序,可以设置/取消断点,或者全速运行程序,停止程序运行,观察变量的值,判断蜂鸣器及LED1~LED4的控制是否正确。 五、实验结论与思考题(手写,打印无效) 1、请简单描述μC/OS-II应用程序的基本结构。 答:应用uC/OS-II,自然要为它开发应用程序,下面论述基于uC/OS-II的应用程序的基本结构以及注意事项。 每一个uC/OS-II应用至少要有一个任务。而每一个任务必须被写成无限循环的形式。以下是推荐的结构: void task ( void* pdata ) {

嵌入式系统实验报告书

嵌入式系统实验报告书 20 13– 20 14第1学期 院系:电子通信工程系 姓名:蒋瑾 专业:通信工程 学号:101307313 指导老师:赵成

实验一 认识嵌入式开发平台 一、实验目的 认识UP-NETARM2410-S 嵌入式开发平台,了解使用的ARM9 S3C2410嵌入式微处理器芯片,了解相应外围电路及接口的硬件电路设计,从而了解嵌入式系统的作用及其实现的功能。 二、实验内容 观察嵌入式开发平台,认识板载的核心微处理器、存储芯片、电源电路部分、显示屏、键盘、网络接口、RS232接口、RS485接口、ADC 部分、DAC 部分、IrDA 部分、SD 卡接口、PCMCIA 卡接口、笔记本电脑硬盘接口部分、CF 卡接口、IC 卡接口、PS/2键盘鼠标接口、音频接口、USB 接口以及JTAG 调试接口等内容,了解相应电路及接口的电路原理。 三、预备知识 了解常用的接口芯片及计算机外围设备;熟悉模拟及数字电路设计。 四、实验设备 1. 硬件环境配置 计算机:Intel(R) Pentium(R) 及以上 内存:1GB 及以上 实验设备:UP-NETARM2410-S 嵌入式开发平台 2. 软件环境配置 操作系统:Microsoft Windows XP Professional Service Pack 2 虚拟机:VMware WorkStation 7 Linux 系统:Red Hat Enterprise Linux AS 4 (2.6.9-5.EL) 五、实验步骤 六、遇到的问题及解决方法 S3C2410核心资 源 LCD 驱动 音频电路 PS/2鼠标键盘接口 小键盘 IC 卡插口 CF 卡插口 IDE 硬盘接口 PCMCIA 、SD 卡插口 168Pin 扩展槽 电源部分 RS232/485接口 USB JTAG 网络接口 ADC/DAC IrDA 红外

嵌入式系统实验报告

嵌入式系统设计实验报告 班级: 20110612 学号: 2011061208 姓名:李晓虹 成绩: 指导教师:武俊鹏、刘书勇

1. 实验一 1.1 实验名称 博创UP-3000实验台基本结构使用方法 1.2 实验目的 1.熟悉嵌入式系统开发式流程概述。 2.熟悉UP-net3000实验平台的核心硬件电路和外设。 3.熟悉ARM JTAG的安装与使用。 1.3 实验环境 硬件:ARM 嵌入式开发平台、用于ARM7TDMI的JTAG仿真器、PC 机Pentium100以上、串口线。 软件:PC机操作系统win98、Win2000或WinXP、ARM SDT 2.51或ADS1.2集成开发 环境、仿真器驱动程序、超级终端通讯程序。 1.4 实验内容及要求 1.熟悉嵌入式系统开发式流程概述。 2.熟悉UP-net3000实验平台的核心硬件电路和外设。 3.熟悉ARM JTAG的安装与使用。 1.5 实验设计与实验步骤 1.新建超级终端 2.选择ARM 开发实验台串口。 完成新建超级终端的设置以后,可以选择超级终端文件菜单中的保存,将当前设置 3.保存为一个特定超级终端到桌面上,以备后用。用串口线将PC机串口和平台 UART0 正确连接后,就可以在超级终端上看到程序输出的信息了。 4.启动开发板,按住任意键,使开发板进入BIOS设置状态。 5.在超级终端的界面上,显示BIOS版本信息,以及相应的测试指令。操作时,要在 PC机上输入小写的字母快捷键,进入到相应的功能中去。 6.按照超级终端上的提示信息,进行功能的测试。 1.6 实验过程与分析 本次实验操作起来并不困难,因为此次实验属于验证型实验,按照实验资料所给的提示信息,以上面的步骤,即可得到实验的结果。进入到BIOS界面后,按照超级终端上的提示信息来进行功能 1.7 实验结果总结 在实验过程中,我们进行的很顺利,没有遇到什么问题,在超级终端界面,按提示的快

ARM嵌入式系统实验教程课程设计

ARM嵌入式系统实验教程课程设计 1. 简介 随着科技的不断发展,嵌入式系统越来越广泛地应用于各个领域,如消费电子、医疗、交通、军事等。嵌入式系统的性能越来越好,体积越来越小,成本也越来越低廉。而ARM嵌入式系统,因其拥有高性能、低功耗、高集成度、灵活性等优势,已经成为嵌入式系统的主流。 本文旨在为学习ARM嵌入式系统的同学提供一份实验教程课程设计,通过实践 操作,使学生了解ARM嵌入式系统的相关知识和应用。 2. 实验内容 2.1 环境搭建 学习ARM嵌入式系统必须先了解其开发环境,在本实验中,我们将使用Keil MDK作为开发工具,学生需要掌握Keil MDK的安装和配置。 2.2 编写第一个程序 通过编写一个简单的程序,学生可以了解ARM汇编语言的基础知识,以及如何 在Keil MDK中创建、编译和调试程序。 2.3 GPIO控制 学生将会学习如何在ARM嵌入式系统上控制GPIO,包括输入输出、上拉下拉电阻等。 2.4 UART通信 UART通信是嵌入式系统中常用的一种通信方式,学生将会学习如何使用ARM嵌入式系统的UART模块进行数据传输。

2.5 中断处理 中断是嵌入式系统中的一种重要机制,学生将会了解中断的原理和使用中断的方法,包括IRQ和FIQ两种中断。 2.6 定时器和计数器 学生将会了解ARM嵌入式系统中的定时器和计数器的原理和应用,包括通用定时器、看门狗定时器等。 3. 实验要求 3.1 硬件要求 学生需要准备ARM Cortex-M3开发板、USB转TTL模块、串口线、LED等实验工具。 3.2 软件要求 学生需要安装Keil MDK、JLink驱动程序等软件。 3.3 实验要求 学生需要按照实验指导书中给出的步骤完成实验,并编写实验报告,报告中需要包括实验的目的、原理、步骤、结果和分析。 4. 实验效果 经过本实验的学习,学生将能够掌握ARM嵌入式系统的基础知识和应用,包括Keil MDK的安装和配置、ARM汇编语言的基础知识、GPIO控制、UART通信、中断处理、定时器和计数器应用等方面。

ARM嵌入式系统实验报告1

郑州航空工业管理学院嵌入式系统实验报告 20 13 – 20 14 第2 学期 赵成,张克新 院系:电子通信工程系 姓名:周振宇 专业:物联网工程 学号:121309140 电子通信工程系 2014年3月制

实验一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,READONL Y ENTRY CODE32 SART MOV R1,#1 MOV R2,#2 ADD R0,R1,R2 HALT B HALT END 声明代码段XTF 标识程序入口 声明32位ARM指令设置参数 R0<---R1+R2 死循环 结束程序段

嵌入式实习报告

电子工艺 实习报告 班级 学号 姓名 同组人 指导教师 2010年 1 月 13 日 一、嵌入式的概述: 随着信息化技术的发展和数字化产品的普及,以计算机技术、芯片技术和软件技术为核心的嵌入式系统再度成为当前研究和应用的热点,通信、计算机、消费电子技术3C合一的趋势正在逐步形成,无所不在的网络和无所不在的计算everything connecting, everywhere computing正在将人类带入一个崭新的信息社会. 二、实习目的 学习和了解了嵌入式在生活中的重要作用和发展过程,熟练掌握ARM硬件体系结构,

熟悉linux下的嵌入式编程流程,积累自己的软件编写经验,能够参与并实现一个真实和完整的嵌入式项目,为今后的学习和将从事的技术工作打下坚实的基础 三、实习任务 第一阶段Linux操作和编程基础 主要介绍Linux的基本命令和基础编程知识,包括Linux的文件操作和目录操作命令,VI编辑器,GCC编译器,GDB调试器和Make项目管理工具等知识. 第二阶段嵌入式C语言编程基础 主要介绍在嵌入式开发编程中C语言的重要概念和编程技巧中的重点难点,以复习串讲和实例分析的形式,重点介绍包括函数与程序结构,指针、数组和链表,库函数的使用等知识. 第三阶段Linux上C强化编程训练 主要包括整数算法训练,递归和栈编程训练,位操作训练,指针训练,字符串训 练和常用C库函数编程接口实践,强化学员对Linux下基本编程开发的理解和编码调试的能力. 第四阶段 Linux环境高级编程及项目开发编程实践 主要包括系统编程信号/系统调用/管道/FIFO/消息队列/共享内存等,文件 I/O编程文件描述符/文件读写接口/原子操作/阻塞与非阻塞IO等,多任务和多线程编程进程标识/ 用户标识/fork与vfork/多线程概念/线程同步等,网络编程网络基本概念/套接口编程/网络字节次序/Client/Server结构/UDP编程;掌握Linux下Socket编程的开发流程,熟悉网络编程的调用接口函数和相关数据结构,使学员初步具备在Linux上进行系统编程开发的能力.同时综合之前所学内容和

arm开发环境搭建实验报告实验内容

ARM开发环境搭建实验报告 一、实验目的 本实验旨在帮助学生了解和掌握ARM开发环境的搭建过程,包括交叉编译环境的搭建、嵌入式系统开发环境的搭建、ARM Linux操作系统的搭建以及应用软件的开发与部署。通过本次实验,学生将能够熟悉ARM开发的基本流程,为后续的ARM开发打下基础。 二、实验内容 1. 开发环境介绍 本部分将介绍ARM开发环境的基本概念、组成和搭建流程。重点讲解ARM架构的特点、开发板的选择以及开发工具链的组成。通过本部分的学习,学生将能够对ARM开发环境有基本的了解和认识。2. 交叉编译环境搭建 交叉编译是指在一种平台上生成另一种平台上的可执行文件。本部分将介绍如何搭建ARM交叉编译环境,包括交叉编译工具链的安装、配置和使用。同时,学生将通过实践操作,掌握交叉编译的基本方法。 3. 嵌入式系统开发环境搭建 嵌入式系统是指专为特定应用而设计的计算机系统。本部分将介绍如何搭建嵌入式系统开发环境,包括开发板的连接、调试工具的安装以及嵌入式操作系统的选择和烧写。通过本部分的学习,学生将能够掌握嵌入式系统开发的基本流程。 4. ARM Linux 操作系统搭建 ARM Linux操作系统是一种针对ARM架构的开源操作系统。本部分将

介绍如何搭建ARM Linux操作系统,包括操作系统的下载、烧写以及启动过程。同时,学生将学习如何在ARM Linux上安装软件、配置网络等操作,以便进行后续的应用软件开发。 5. 应用软件开发与部署 本部分将介绍如何进行ARM应用软件开发与部署。首先,学生将学习如何使用交叉编译工具链编译应用程序;其次,学生将学习如何将应用程序部署到ARM设备上,并进行测试和调试。通过本部分的学习,学生将能够掌握ARM应用软件开发的整个流程。 三、实验步骤 1. 安装交叉编译工具链,并配置环境变量; 2. 连接开发板,并安装调试工具; 3. 下载并烧写嵌入式操作系统; 4. 安装ARM Linux操作系统; 5. 编写应用软件源代码; 6. 使用交叉编译工具链编译应用软件; 7. 将应用软件部署到ARM设备上; 8. 进行测试和调试。

嵌入式系统ARM实验报告

南京邮电大学通信与信息工程学院 实验报告 实验名称:实验一基于ADS开发环境的设计 实验二嵌入式Linux交叉开发环境的建立 实验三嵌入式Linux环境下的程序设计 课程名称嵌入式系统B 班级学号B******** 姓名马俊民 开课时间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来标识。

嵌入式系统GPIO 输入输出实验报告

真验四GPIO 输进真验之阳早格格创做 一、真验手段 1、不妨使用GPIO的输进模式读与开闭旗号. 2、掌握GPIO相闭寄存器的用法战树坐. 3、掌握用C谈话编写步调统造GPIO. 二、真验环境 PC机一台 ADS 1.2集成开垦环境一套 EasyARM2131教教真验仄台一套 三、真验真质 1.真验通过跳线JP8 连交,步调检测按键KEY1 的状态,统 造蜂鸣器BEEP 的鸣喊.按下KEY1,蜂鸣器鸣喊,紧开后停止蜂鸣.(调通真验后,改为KEY3键举止输进). 2.当检测到KEY1有按键输进时面明收光二极管LED4并统 造蜂鸣器响,硬件延时后闭掉收光管并停止蜂鸣,而后循环那一历程曲到检测按键不输进.(键输进改为键KEY4,收光管改为LED6).

3.分离真验三,当按下按键Key1时,开用跑马灯步调并统 造蜂鸣器响,硬件延时后闭掉收光管并停止蜂鸣,而后循环那一历程曲到检测按键再次按下. 四、真验本理 当P0 心用于GPIO输进时(如按键输进),里面无上推电阻,需要加上推电阻,电路图拜睹图 4.2. 举止 GPIO 输进真验时,先要树坐IODIR 使交心线成为输进办法,而后读与IOPIN 的值即可. 图 4.2按键电路本理图 真验通过跳线 JP8 连交,步调检测按键KEY1 的状态,统造蜂鸣器BEEP 的鸣喊.按下KEY1,蜂鸣器鸣喊,紧开后停止蜂鸣. 正在那个真验中,需要将按键KEY1 输出心P0.16 设为输出心而蜂鸣器统造心P0.7 树坐为输出心.蜂鸣器电路如图 4.3所示,当跳线JP6 连交蜂鸣器时,P0.7 统造蜂鸣器,矮电通常蜂鸣器鸣喊.LED灯电路如图4.4所示,矮电通常灯明. 图 4.3蜂鸣器统造电路 图 4.4 LED 统造电路 步调最先树坐管足连交寄存器PINSEL0 战PINSEL1,树坐P0.16 为输进,树坐为输出.而后检测端心P0.16 的电仄,对

arm实验报告最终版

ARM与嵌入式技术 实验报告 专业班级:10通信工程1班 姓名:万洁 学号:100103011125 实验日期:2013年5月28日 指导老师:郑汉麟

1、 通过实验掌握ARM 指令的特点和寻址方式; 2、 掌握简单的ARM 汇编语言的程序设计; 3、 了解集成开发环境 Embest IDE 及其开发软件的应用; 、实验环境 Embest IDE 应用于嵌入式软件开发的新一代图形化的集成开发环境,它包括一套完备 的面向嵌入 式系统的开发和调试工具。其开发软件 Embest IDE for ARM 是集编辑器、编译 器、调试器、工程管理器( projectma nager )于一体的高度集成的窗口环境,用户可以在 Embest IDE 集成开发环境中创建工程、编辑文件、编译、链接、运行,以及调试嵌入式应 用程序。 三、实验步骤 1)新建工程: 运行Embest IDE 集成开发环境,选择菜单项 File 宀New Workspace ,如图一,系统弹 出一个对话框,键入文件名“ wj ”,如图二,点击 0K 按钮。将创建一个新工程,并同时创 建一个与工程名相同的工作区。此时在工作区窗口将打开该工作区和工程 .。 (老师提醒:不要放入Bin 文件夹中) ■ Emb«t QE Pre 亠 Educat 「販]£dii_Vww Buid frtbug D if** Qri+W 诊 Open-" Qrl*O 2)建立源文件: 点击菜单项 File T New ,如图三,系统弹出一个新的文本编辑窗,输入源文件代码。 编辑完后,保存文件“ wj.s ”后缀,如图三,四。 Hr* Open Workspace.・ 图一 ■■ rflJO IUU rl jil rd f rfl,rl Clop : h Ho. .end 图 tut vUrl:

ARM实验报告综合实验

ARM实验报告综合实验 摘要: ARM微处理器已经在各种电子产品中得到广泛应用。本实验旨在通过 对ARM实验板的详细学习,深入理解和掌握ARM微处理器的工作原理及应用。通过搭建实验平台,完成基本的指令执行、数据传输和I/O操作等功能。通过实验,掌握ARM汇编语言的基本语法和实现方法,同时提升对嵌 入式系统的理解和应用能力。 关键词:ARM微处理器、实验平台、指令执行、数据传输、I/O操作、汇编语言 1.引言 ARM(Advanced RISC Machines)微处理器是一种精简指令集(RISC)的微处理器架构,以其高性能、低功耗和广泛应用等特点受到了广泛的关 注和应用。本实验旨在通过对ARM实验板的学习和研究,深入理解ARM微 处理器的工作原理和应用。 2.实验目的 2.1理解ARM微处理器的工作原理; 2.2掌握ARM汇编语言的基本语法和实现方法; 2.3学习搭建实验平台,完成指令执行、数据传输和I/O操作等功能; 2.4提升对嵌入式系统的理解和应用能力。 3.实验内容 3.1搭建实验平台

3.2学习ARM汇编语言 通过阅读相关资料,了解ARM汇编语言的基本语法和寄存器等特点,了解ARM微处理器的指令集和指令执行方式。 3.3编写实验程序 根据实验指导书中的要求,编写实验程序,包括基本的指令执行、数据传输和I/O操作等功能实现。 3.4调试和测试 经过编写程序后,需要进行调试和测试,确保程序能够正确执行,并达到预期的功能。 4.实验结果 通过实验,成功搭建了ARM实验平台,并且实现了基本的指令执行、数据传输和I/O操作等功能。通过对ARM汇编语言的学习和实践,掌握了其基本语法和实现方法。 5.结论 本实验通过对ARM实验板的学习和研究,深入理解了ARM微处理器的工作原理和应用。通过搭建实验平台和编写实验程序,进一步掌握了ARM 汇编语言的基本语法和实现方法。通过调试和测试,验证了程序的正确性和功能实现。通过本实验,提升了对嵌入式系统的理解和应用能力。

嵌入式系统实训报告

第一天 一、实训任务: 1.熟悉虚拟机的环境,了解了虚拟机的基础知识 2.安装与配置 VMware Workstation虚拟机 3.进而熟悉交叉编译环境,完成交叉编译环境的安装和配置 4.测试端口的连通性 二、原理 交叉编译,就是在一个平台上生成另一个平台上的可执行代码。这里需要注意的是所谓平台,实际上包含两个概念:体系结构(Architecture)、操作系统(Operating System)。同一个体系结构可以运行不同的操作系统;同样,同一个操作系统也可以在不同的体系结构上运行。一般情况下,主机和目标机是同一类型的计算机,这就是正常的编译。所谓交叉编译就是在主机上为目标机编译,比如在 PC 上编译,然后在手机上运行,这种编译就叫交叉编译。 交叉编译需要交叉编译器,不同的目标机(主要是看芯片类型)需要不同的交叉编译器。我们所用的交叉编译器就是 arm-linux-gcc 系列。构建一个交叉编译器(toolchain),说简单也简单,说复杂也复杂。原理上很简单,实际情况常常比较复杂,原因是编译器一直处于开发状态,你要了解某个版本的稳定性,要去找patch。网上已经有不少已经构建好了的交叉编译器(toolchain),除非你想了解如何构建交叉编译器,否则直接下载一个来用是比较明智的做法。 三、截图及说明 1、测试连通性:COM3 显示了相关信息,表示虚拟机和开发机连通了 2、可执行以下命令,安装交叉编译环境: #mkdir -p /A8RP/tools /A8RP/toolchain

#cd /media/cdrom/linux/toolchain #cp –arf arm-2007q3-51-arm-none-linux-gnueabi-i686.tar.bz2 arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 /A8RP/tools #cd /A8RP/toolchain #tar -jxvf arm-2007q3-51-arm-none-linux-gnueabi-i686.tar.bz2 #tar –jxvf arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 # cp media/cdrom/linux/tools/mkimage /A8RP/tools # cp /media/cdrom/linux/tools/signGP /A8RP/tools #cp /media/cdrom/linux/tools/mkfs.ubifs /A8RP/tools #cp /media/cdrom/linux/tools/ubinize /A8RP/tools #cp /media/cdrom/linux/tools/ubinize.cfg /A8RP/tools 添加环境变量 #export PATH=/A8RP/toolchain/arm-2007q3/bin:/A8RP/toolchain/arm-2009q1/bin:/A8RP/tools:$PATH 这样我们就完成了交叉编译环境及编译工具的安装 第二天 一、实训任务: 1.交叉编译生成用于SD 卡启动的x-loader 映像文件MLO 2.U-Boot的编译 3.kernel的编译 4.格式化SD 卡,并设置活动分区,将编译好的系统镜像以及文件系统拷贝至SD卡 二、原理 OURS-A8RP 支持MMC/SD 启动或NAND 启动,不同的启动方式烧写的x-loader 的映像文件是不一样的,对应的映射生成方法也不同。 x-loader是一级引导程序,主要完成加载uboot之前的板载初始化, fat文件驱动,以便于从sd卡fat32分区读取uboot等文件,系统上电后由CPU内部ROM自动拷贝到内部RAM并执行。主要作用为初始化CPU,拷贝u-boot到内存中,然后把控制权交给u-boot。 u-boot是二级引导程序,主要用于和用户进行交互,提供映像更新、引导内核等功能。kernel是一个操作系统的核心。它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。

ARM实验报告

南京邮电大学通达学院 嵌入式系统B 实验报告 班级 100023 专业通信工程(嵌入式系统开发) 学号 10002304 姓名陆海霞 实验项目: 1、ADS下简单ARM汇编程序 2、熟悉LINUX开发环境 3、多线程应用程序设计

指导教师范山岗 实验一 ADS下简单ARM汇编程序 实验目的: 1、熟悉ADS1.2下进行汇编语言程序设计的基本流程; 2、熟悉在ADS中创建工程及编写、编译和运行汇编语言程序的方法; 3、熟悉AXD中各种调试功能。 实验环境: 1、硬件:PC机。 2、软件ADS1.2。 实验内容: 1、在ADS中新建工程,并设置开发环境。 2、在Code Warrior 环境中编辑、编译和链接汇编语言程序,并生成可执行文件。 3、在AXD中调试汇编程序; 4、使用命令行界面编辑、编译和链接汇编程序。 实验步骤: 本实验要求在ADS环境下,编写一个汇编程序,计算S=1+2+3……+n的累加值。 把累加结果S存入到存储器的指定位置;在AXD中调试该程序,使用ARMulator模拟目标机。 1、新建工程。 打开Code Warrior,选择File->New(project)选项,使用ARM Executable Image模版新建一个工程。 2、设置编译和链接选项。 由于我们使用的是模拟机,设置汇编语言编译器的模拟处理器架构为Xscale;在ARM Linker中,选择output选项卡并选择Linktype为Simple类型,确认RO Base为0x8000,修改RW Base为0x9000, 3、为当前工程添加源程序文件。 ARM汇编程序源文件后缀名为S大小写均可。 确保添加入当前工程复选框选上。 4、编辑源程序代码。 参考程序add.s : ;armadd源程序 N EQU 7 ;累加次数 ;定义名为Adding的代码段 AREA Adding,CODE,READONLY ENTRY MOV R0,#0

嵌入式实验报告心得

嵌入式实验报告心得 篇一:嵌入式系统原理实验总结报告 嵌入式系统原理实验总结报告 车辆座椅控制系统实验 XX/5/23 嵌入式系统原理实验总结报告 一、技术性总结报告 (一)题目:车辆座椅控制系统实验(二)项目概述: 1.为了实现车辆座椅控制的自动化与智能化。 2.方便用户通过智能手机与车载传感器之间的联动。 3.使车辆作为当今物联网中重要的一个节点发挥作用。 4.通过车辆座椅控制系统实验实现对嵌入式系统原理课程的熟练掌握与对嵌入式系统原理知识的深化记忆。 5. 加强本组学生对嵌入式系统原理的更深层次的理解与运用。 (三)技术方案及原理 本次试验分为软件、硬件两个部分。 1.软件部分。 A.智能手机部分,包括通过智能手机对座椅的控制部分、手机所携带的身份信息部分。 本部分软件使用Java编写,其程序部分为:主程序:package ;

import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ;import ; import ; import ; public class MainActivity extends ActionBarActivity { private Button Up = null; private Button Left = null; private Button Dowm = null; private Button Right = null; private Socket socket = null; private static final String HOST = "";private static final int PORT = 10007; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(; initControl();} private void initControl() {

arm程序设计实验报告

arm程序设计实验报告 ARM程序设计实验报告 一、引言 ARM(Advanced RISC Machine)是一种精简指令集计算机(RISC)架构。在本次实验中,我们将学习和实践ARM程序设计的基本知识和技巧。本报告将介绍实验的目标、步骤和结果,并对所学内容进行总结和思考。 二、实验目标 本次实验的主要目标是通过编写ARM汇编程序,实现简单的功能。具体来说,我们将学习如何使用ARM汇编语言编写程序,了解寄存器、指令和内存的基本概念,以及如何进行程序的调试和优化。 三、实验步骤 1. 环境准备:安装ARM开发工具链,并配置开发环境。 2. 编写程序:根据实验要求,编写ARM汇编程序,实现指定的功能。 3. 调试与测试:使用模拟器或硬件平台,调试和测试编写的程序,确保程序的 正确性和稳定性。 4. 优化改进:根据实验结果和性能要求,对程序进行优化改进,提高程序的效 率和可靠性。 四、实验结果 在本次实验中,我们成功完成了以下任务: 1. 实现了一个简单的计算器程序,可以进行加减乘除运算,并输出结果。 2. 编写了一个字符串反转程序,可以将输入的字符串逆序输出。 3. 设计了一个简单的游戏程序,用户需要通过按键控制角色移动,避开障碍物。

通过以上实验,我们掌握了ARM汇编语言的基本语法和指令,了解了寄存器和内存的使用方法,以及如何进行程序的调试和优化。同时,我们还学习了如何 与外部设备进行交互,实现更复杂的功能。 五、实验总结 通过本次实验,我们深入了解了ARM程序设计的基本原理和技巧。ARM架构 的精简指令集使得程序设计更加高效和灵活,适用于各种嵌入式系统和移动设备。同时,ARM处理器的低功耗特性也使得其在无线通信、物联网等领域有着 广泛的应用前景。 然而,ARM程序设计也存在一些挑战和难点。首先,由于ARM汇编语言与高 级语言相比,语法更为底层和复杂,需要更加深入地理解计算机硬件结构。其次,ARM处理器的架构和指令集不同于传统的x86架构,需要重新学习和适应。在今后的学习和实践中,我们应该继续深入研究ARM程序设计的相关知识,不断提升自己的技术水平。同时,我们还应该关注ARM生态系统的发展和创新,探索更多应用领域和解决方案。 六、结语 通过本次实验,我们对ARM程序设计有了更深入的了解,并成功实践了相关知识和技巧。ARM架构的广泛应用和不断创新的发展,为我们提供了更多机会和 挑战。我们相信,在不久的将来,ARM技术将在各个领域发挥更大的作用,为 人们带来更多便利和创新。

嵌入式实习心得体会

嵌入式实习心得体会 【篇一:嵌入式实验报告】 中国地质大学(北京) 实验报告 课程名称:嵌入式系统实验名称:嵌入式linux socket编程姓名:杨森学号: 1010102115班级:10101021 指导教师:曾卫华评分:实验时间:二零一三年四月 实验题目:嵌入式 linux socket编程 一、实验目的 通过实验熟悉linux环境,掌握linux串口和网络应用程序开发。并且学会串口的设置,串口数据收发处理,阻塞型i/o和非阻塞型i/o,socket套接字,多线程编程基础,server和client端程序设计,对 嵌入式系统有进一步的了解。 二、实验内容和步骤 1.4.4.3交叉编译工具的path已经生效,在任意目录下能够执行 arm-linux-gcc –v; 2.nfs网络文件系统的配置: 1打开nfs1175.exe;○ 255.255.255.0); 3挂载:在板子上运行 #mount -t nfs -o nolock 115.25.74.175:/d/share_vm/mnt/nfs ○ 4使用cd /mnt/nfs 进入nfs共享目录,ls 显示共享目录下的文件;○ 3.仔细阅读提供的代码server.c和client.c target为服务器,ubuntu为客户端; 4.交叉编译server.c、本地编译client.c(因为 用到多线程编程,在编译语句后面加上-lpthread); 5.在板子上运行server可执行文件:#cd /mnt/nfs #ls -l server 看 看前面的字串里面有没有“x”, 如没有则表明没有可执行的权限,需要用命令加入server的执行权限:#chmod 777 server,运行server 代码 #./server; 6.在ubuntu上运行client程序:#./client 115.25.74.176; 7.观 察服务器端和客户端的提示信息。 三、程序流程框图和源码 1.

嵌入式系统实习报告4篇

嵌入式系统实习报告4篇 嵌入式系统实习报告4篇 嵌入式系统实习报告篇1 此次设计我们采用以0为微控制器,并通过硬件和软件两方面设计,结合6位LED数码管,放大整形电路,来实现频率计在嵌入式系统中的开发与应用。 本次课程设计其主要目的是通过这学期所学的ARM知识,来实现频率计的功能,本次设计我们利用了定时计数器的功能,对输入的信号进行实时的、高精度的频率测量,并通过6位LED数码显示管显示测量结果。论文中阐述了相关的硬件原理与应用方案,并在此基础上叙述了软件设计最终结合硬件和软件完成了本次设计。 关键词:0、频率计、LED数码显示管 1绪论 频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。它是一种用十进制数字显示被测信号频率的数字测量仪器。它的基本功能是测量正弦信号,方波信号及其他各种单位时间内变化的物理量。在进行模拟、数字电路的设计、安装、调试过程中,由于其使用十进制数显示,测量迅速,精确度高,显示直观,经常要用到频率计。 本频率计将采用定时、计数的方法测量频率。测量范围在9kHz以下的方波,时基宽度为1us,10us,100us,1ms。用ARM芯片实现自动测量功能。 基本设计原理是直接用十进制数字显示被测信号频率的一种测量装置。它以测量周期的方法对方波的频率进行自动的测量。 1.1本次设计任务 一.设计题目:ARM为内核的频率计 二.主要功能:用ARM的定时器/计数器的定时和计数功能,外部扩展6位数码管,要 求累计每秒进入ARM的外部脉冲个数,用LED数码管显示出来,或是 用上位机显示。

三.设计要求:用protel画出最小系统和外围扩展电路。显示部分可用LED数码管或是 上位机显示。要求小组成员分工明确。 1.2设计基本原理 所谓频率,就是周期性信号在单位时间(1s)内变化的次数,若在一定时间间隔T内测得这个周期性信号的重复变化次数为N,则其频率可表示为被测信号经放大整形电路变成计数器所要求的脉冲信号,其频率与被测信号的频率相同。当1s信号来到时,被测脉冲信号进入芯片相关的,计数器开始计数,直到1s信号结束时,停止计数。若在1s时间内计数器计得的脉冲数为N,则被测信号频率f某?Nhz。 2设计理念及设备 2.1设计理念 说到用单片机设计[2]的频率计,这里说一下单片频率计D。单片频率计D 是美国Intersil公司首先研制的专用测频大规模集成芯片。它是标准的28引脚的双列直插式集成电路,采用单一的+5V稳压电源工作。它内含高频振荡器、10进制计数器、7段译码器、位多路复用器、能够直接驱动LED显示器的8段段码驱动器、8位位码驱动器。其基本的测频范围为DC至10MHz,若加预置的分频电路,则上限频率可达40MHz或100MHz,单片频率计D只要加上晶振、量程选择、LED显示器等少数器件即可构成一个DC至40MHz的微型频率计,可用于频率测量、机械转速测量等方面的应用。还有,是英国研制的一款微波频率计,该频率计可以测量频率高达26GHz的信号,而价格才只有几万元,可谓是物美价廉。虽然是一个低价格的微波频率计,但它能在四个波段有很好的灵敏度测量40Hz到20GHz的频率。也可以用它来测量高达26GHz的频率,只是灵敏度稍稍低了一些。日常工作中,用它来测量 VF/VHF/UHF频段的频率,也十分方便和准确。使用一个12位数字的LCD 液晶显示屏来显示所测得的频率、闸口时间(分辨率相关)、菜单功能以及频率表的测量结果。所有这些数值都是同时显示在一个屏幕上的。的机箱采用高标准的铝质材料制成,各模块安装在下方有钢板支承的母板上。模块相对独立,

相关文档
相关文档 最新文档