ARM嵌入式系统实验报告-2_第1页
ARM嵌入式系统实验报告-2_第2页
ARM嵌入式系统实验报告-2_第3页
ARM嵌入式系统实验报告-2_第4页
ARM嵌入式系统实验报告-2_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

郑州航空工业管理学院嵌入式系统实验报告2013–2014第2学期赵成,张克新院系:姓名:专业:学号:电子通信工程系2014年3月制实验一ARM体系结构与编程方法一、实验目的了解ARM9S3C2410A嵌入式微处理器芯片的体系结构,熟悉ARM微处理器的工作模式、指令状态、寄存器组及异常中断的概念,掌握ARM指令系统,能在ADS1.2IDE中进行ARM汇编语言程序设计。二、实验内容1.ADS1.2IDE的安装、环境配置及工程项目的建立;2.ARM汇编语言程序设计(参考附录A):(1)两个寄存器值相加;(2)LDR、STR指令操作;(3)使用多寄存器传送指令进行数据复制;(4)使用查表法实现程序跳转;(5)使用BX指令切换处理器状态;(6)微处理器工作模式切换;三、预备知识了解ARM嵌入式微处理器芯片的体系结构及指令体系;熟悉汇编语言及可编程微处理器的程序设计方法。四、实验设备1.硬件环境配置计算机:Intel(R)Pentium(R)及以上;内存:1GB及以上;实验设备:UP-NETARM2410-S嵌入式开发平台,J-LinkV8仿真器;2.软件环境配置操作系统:MicrosoftWindowsXPProfessionalServicePack2;集成开发环境:ARMDeveloperSuite(ADS)1.2。五、实验分析1.安装的ADS1.2IDE中包括CodeWarrior和AXDDubugger两个软件组件。在ADS1.2中建立ARMExecutableImage(ARM可执行映像)类型的工程,工程目标配置为Debug;接着,还需要对工程进行目标设置、语言设置及链接器设置;最后,配置仿真环境为ARMUL仿真方式。2.写出ARM汇编语言的最简程序结构,然后在代码段中实现两个寄存器值的加法运算,给出运算部分相应指令的注释。;文件名:111307326.s AREA XTF,CODE,READONLY;声明代码段XTF ENTRY ;标识程序入口 CODE32 ;声明32位ARM指令SART MOV R1,#1 ;设置参数 MOV R2,#2 ADD R0,R1,R2 ;R0<---R1+R2HALTB HALT ;死循环 END ;结束程序段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表示IncreaseAfter,即

每次传送后地址加4,[R0]-->R2,[R0+4]-->R3,…,[R0+28]-->R9 STMIA R1,{R2-R9} ;执行后,程序实现的功能是[R1]<--R2,[R1+4]<--R3,…,[R1+28]<--R9 5.在“使用查表法实现程序跳转”的汇编程序中,指令LDRPC,[PC,R2]采用的是什么寻址方式?作为基址的寄存器PC的值是多少?作为指令指针的PC又指向哪条指令?这个指令与流水线执行的关系是什么?(选做)答:1)基址加变址寻址;2)PC<----[PC+R2],即PC中存放的是当前PC值加上寄存器R2中的内容形成的有效地址中的操作数;3)对于ARM指令集,PC总是只想当前指令的下两条指令,即PC的值为当前指令的地址值加上8个字节(每条指令占4个字节)。6.通过运行及观察“使用BX指令切换处理器状态”汇编程序实验,回答ARM指令与Thumb指令之间是如何实现状态切换的?AXDDebugger调试环境中的哪个寄存器指示了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 LDRR3,=Into_Thumb+1 ;将Into_Thumb地址值加1,再赋给R3 ;产生跳转地址并且设置最低位 BX R3 ;地址值位0为1,将进入THUMB状态 ;BranchExchange进入Thumb状态 CODE16 ;Thumb状态下的子函数,16位对齐 Into_Thumb MOV R5,#3 MOV R6,#4 ADD R4,R5,R6 LDRR3,=Bach_to_ARM ;将Back_to_ARM地址值赋给R3 ;产生字对齐的跳转地址,最低位被清除,即bit0为0 BXR3 ;BranchExchange返回到ARM状态,此时运行在ARM指令集环境里 CODE32 ;ARM状态下的子函数Bach_to_ARM MOV R8,#3 MOV R9,#4 ADD R7,R8,R9 END7.观察“微处理器工作模式切换”程序的运行,按顺序写出ARM工作模式切换过程中依次出现的工作模式,同时,通过观察回答ARM微处理器是否能从用户模式切换到特权模式?(选做)答:1)Usr(用户)Sys(系统)Fiq(快中断)Svc(管理)Abt(终止)Irq(中断)Und(未定义)2)用户模式不能直接切换到其他处理模式(特权模式),特权模式可以自由切换到其他处理器模式。程序: AREAWork_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;系统模式下可运行具有特权的操作系统任务,与用户模式类似,但可以直接切换到其他模式。 MRSR0,CPSR ;复制CPSR到R0 BICR0,R0,#0x1F ;清除R0的后5位 ORRR0,R0,#0x1F ;设定R0的最后5位为11111 MSRCPSR_c,R0 ;把R0装在到CPSR,切换到系统模式 MOVR13,#1 ;对系统模式下的R13赋值(R0-R14);into_Fiq_mode;用于高速数据传输或通道处理,Fiq异常响应时进入此模式 MRSR0,CPSR ;复制CPSR到R0 BICR0,R0,#0x1F ;清楚R0的后5位 ORRR0,R0,#0x11 ;设定R0的最后5位为10001 MSRCPSR_c,R0 ;把R0装在到CPSR,切换到快中断模式 MOVR13,#2 ;对快中断模式下的R13赋值(R8-R14);into_Svc_mode;操作系统使用的保护模式,系统复位和软件中断响应时进入此模式 MRSR0,CPSR ;复制CPSR到R0 BICR0,R0,#0x1F ;清楚R0的后5位 ORRR0,R0,#0x13 ;设定R0的最后5位为10011 MSRCPSR_c,R0 ;把R0装在到CPSR,切换到管理模式 MOVR13,#3 ;对快管理模式下的特有缓冲器R13赋值(R13-R14);into_Abt_mode;可用于虚拟存储及存储保护,当数据或指令预取终止时进入该模式 MRSR0,CPSR ;复制CPSR到R0 BICR0,R0,#0x1F ;清楚R0的后5位 ORRR0,R0,#0x17 ;设定R0的最后5位为10111 MSRCPSR_c,R0 ;把R0装在到CPSR,切换到数据访问终止模式 MOVR13,#4 ;对快数据访问终止模式下的特有缓冲器R13赋值(R13-R14);into_Irq_mode;用于通用的中断处理,Irq异常时进入此模式 MRSR0,CPSR ;复制CPSR到R0 BICR0,R0,#0x1F ;清楚R0的后5位 ORRR0,R0,#0x12 ;设定R0的最后5位为10010 MSRCPSR_c,R0 ;把R0装在到CPSR,切换到外部中断模式 MOVR13,#5 ;对快外部中断模式下的特有缓冲器R13赋值(R13-R14);into_Und_mod;可用于支持硬件协处理器的软件仿真,当未定义的指令执行时进入该模式 MRSR0,CPSR ;复制CPSR到R0 BICR0,R0,#0x1F ;清楚R0的后5位 ORRR0,R0,#0x1b ;设定R0的最后5位为11011 MSRCPSR_c,R0 ;把R0装在到CPSR,切换到未定义模式 MOVR13,#6 ;对未定义模式下的特有缓冲器R13赋值(R13-R14);into_Usr_mod;正常程序工作模式,不能直接切换到其他模式,功能最弱。 MRSR0,CPSR ;复制CPSR到R0 BICR0,R0,#0x1F ;清楚R0的后5位 ORRR0,R0,#0x10 ;设定R0的最后5位为10000 MSRCPSR_c,R0 ;把R0装在到CPSR,切换到用户模式 MOVR13,#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虚拟机中安装LinuxRHELAS4操作系统;3.设置VMWARE虚拟机提供的共享功能;4.在Linux系统中建立Samba服务;三、预备知识了解VMWARE、VirtualBox、VirtualPC等虚拟机软件的相关知识;了解Linux操作系统的安装方法及基本操作方法。四、实验设备1.硬件环境配置计算机:Intel(R)Pentium(R)及以上内存:1GB及以上实验设备:UP-NETARM2410-S嵌入式开发平台,J-LinkV8仿真器2.软件环境配置操作系统:MicrosoftWindowsXPProfessionalServicePack2虚拟机:VMwareWorkStation7Linux系统:RedHatEnterpriseLinuxAS4(2.6.9-5.EL)五、实验分析 1.查看实验设备中配备的PC机,将下列硬件型号填写正确:CPU型号:AMDA4-3305MAPUwithRedeon(tm)HDGraphics内存大小:6G硬盘空间:500G根据实验的实际操作,将下列软件版本号填写正确:VMWARE:7.0.0build-203739Linux系统:Redhat.Enterprise.Linux.Advanced.Server.4Windows系统:Windows7Ultimate,64-bit6.1.7601,ServicePack12.在VMWARE软件中安装RHEL4虚拟机时,出现网络连接方式的设置界面,如下图,提供了四个选项:桥接(bridgednetworking)、NAT(NetworkAddressTranslation)、host-only及无需连接。应该选择哪种方式?并解释其他方式的特点。图设置网络连接方式答:选择NAT方式。桥接:将虚拟机视为与物理机在网络中处于同一地位的独立主机,可以实现虚拟机与主机,虚拟机与互联网的相互通信。但主机与互联网的连接中断后,虚拟机与主机无法正常通信。NAT:虚拟机与主机中的虚拟网卡VMnet8同网段,以VMnet8作为网关,通过物理机访问外网。可以实现主机与虚拟机相互通信,虚拟机单相访问外网。Host-only:虚拟机与VMnet1同网段。可以与主机相互通信,但不能与外网相互访问。3.根据在Linux系统中的实际操作方法,按实验步骤简要说明Samba服务的设置与测试过程。答:设置步骤:先在Applications>SystemSettings>SecurityLeval内关闭Linux中的防火墙;然后在Applications>SystemSettings>SeverSettings>Smaba内添加共享文件路径,并设置共享文件属性;再接着Applications>SystemTools>NetworkDeviceControl>Configuren内设置etho的IP地址为60与VMnet8、物理机本地网络连接IP在同一网段;设置虚拟及连接方式为NAT。 测试:物理机内打开“运行”窗口,输入\\60,弹出共享文件对话框,说明配置成功。4.参考教材中的实践指导部分,在Linux系统环境中安装VMWARETools软件,观察安装过程中的交互提示。安装成功后,系统给出了什么提示信息?怎样从VMWARE的VM菜单中设置Windows-Linux共享功能?答:1)安装成功后出现“Enjoy”提示。 2)VM>Setting…>Options>SharedFolders>Add…>Next,选择物理机中的共享文件路径,确定,设置Alwaysenabled,点击OK。六、遇到的问题及解决办法答:问题:设置好本地静态IP地址后,能正常登陆QQ聊天工具,但无法用浏览器通过域名与互联网通信解决方法:仔细检查本地物理机连接配置,发现没有设置DNS服务器,正确设置DNS服务器后问题解决

实验三LinuxRHELAS4开发基础一、实验目的熟悉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-LinkV8仿真器2.软件环境配置操作系统:MicrosoftWindowsXPProfessionalServicePack2虚拟机:VMwareWorkStation7Linux系统:RedHatEnterpriseLinuxAS4(2.6.9-5.EL)五、实验步骤1.Shell指令练习打开Terminal窗口,使用su指令切换到root用户,使用echo指令在屏幕上显示“Experiment1onmyARMCoursefromdztx,zzia.\nNow,GoGoGo!”。使用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、date2.使用VI编辑器编写hello.c源代码,并存放在/home/zcnet目录中。然后,使用GCC编译hello.c源代码,并在计算机上运行得到的相应可执行程序。hello.c源代码用到的相关操作指令#include<stdio.h>intmain(){printf("Hello,thisisatest!\n");}#cd/home/zcnet#vihello.c#gcc–ohellohello.c#./hello#readelf#3.使用VI编辑器编写编译上述hello.c的Makefile源代码,并存放在/home/zcnet目录中。然后,使用make指令编译hello.c源代码,并在计算机上运行得到的相应可执行程序。Makefile源代码用到的相关操作指令OBJS=hello.oCC=gccCFLAGS=-Wall-O-gNAME=hello${NAME}:${OBJS}${CC}-o$@$^clean:rm-f*.o#cd/home/zcnet#vihello.c#viMakefile#make–fMakefile#./hello#readelf4.用Shell指令依次列出实验中嵌入式交叉编译环境的建立步骤,并写出测试安装效果的指令。使用嵌入式交叉编译工具重新编译hello.c源文件,并使用readelf命令查看得到的hello可执行程序的文件头信息。使用chmod指令设置hello为可执行程序,在PC机上再次运行hello程序,观察执行情况,并给出相关的分析。答:1)定义变量并解压:[root@localhosthome]#arm=arm-linux-tools-20061213.tar.gz[root@localhosthome]#tarxzvf$arm配置环境变量并查看:[root@localhosthome]#exportPATH=$PATH:/home/sur/local/bin[root@localhosthome]#echo$PATH测试安装效果:[root@localhosthome]#armv=arm-linux-gcc[root@localhosthome]#$armv-v2)#cd/home/zcnet#arm-linux-gcc–ohello–chello.c#readelf3)执行命令:#chmoda+xhello##./hello执行结果:bash:./hello:cannotexecutebinaryfile分析:相同代码使用不同编译工具编译结果不同,适用的运行平台也不同。arm-linux-gcc编译的结果适用于ARM平台。故该编译结果不能在计算机上运行。六、遇到的问题及解决办法答:问题:使用echo指令时不能争取输出,提示bash:!":eventnotfound。解决:将双引号内文本信息的最后一个感叹号与双引号用空格隔开。问题:使用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-LinkV8仿真器2.软件环境配置操作系统:MicrosoftWindowsXPProfessionalServicePack2虚拟机:VMwareWorkStation7Linux系统:RedHatEnterpriseLinuxAS4(2.6.9-5.EL)五、实验步骤 1.根据实际的实验操作过程,列出在安装嵌入式系统仿真软件SKYEYE-1.2.4时用到的各个指令。答:cd/hometar–xjvfskyeye-testsuit-2.3.tar.bz2cdskyeye-1.2.4make 2.使用tar指令解压SKYEYE的测试工具包skyeye-testsuite-2.3.tar.bz2,再使用相关指令进入ARMS3C2410A的测试目录,使用cat指令查看skyeye.conf的内容。 列出上述实验过程的具体指令答:cd/hometarxjvfskyeye-testsuite-2.3.tar.bz2cdskyeye-testsuite-2.3lscdu-bootlscdsmdk2410lscdu-boot-1.2.0lscatskyeye.conf 3.运行skyeye.exe程序,使用帮助查看常用的参数及相应的格式,在下面写出运行的指令及skyeye.exe的命令行参数格式。答:指令:cd/home/skyeye-1.2.4/binary./skyeye–h参数格式:SkyEye[options]-eprogram[programargs]Options:-eexec-filethe(ELFexecutableformat)kernelfilename.-lload_address,load_address_maskLoadELFfiletoanotheraddress,notitsentry.-bspecifythedatatypeisbigendianwhennon"-e"option-dinGDBServermode(canbeconnectedbyGDB).-cconfig-file theskyeyeconfigurefilename.-hTheSkyEyecommandoptions,andARCHsandCPUssimulated. 4.在skyeye-testsuite-2.3测试包提供了测试ARMS3C2410A的测试目录,配置文件选用提供的skyeye.conf,使用skyeye.exe程序仿真运行U-Boot程序及Linux内核的运行。 写出实验时的测试步骤,并简单描述U-Boot程序及Linux内核的运行效果。答:1)U-boot程序的仿真运行:cd/home/skyeye-testsuite-2.3lscdu-bootlscdsmdk2410lscdu-boot-1.2.0lscp*/home/skyeye-1.2.4/binarycd/home/skyeye-1.2.4/binary./skyeye–cskyeye.conf–eu-boot运行效果:首先加载一些过程信息,包括开发板的配置信息,存储空间的分配信息等,最后进入u-boot的控制界面,出现“SMDK2410#”的提示符,说明u-boot中的穿行通信接口应可以正常工作了。2)Linux内核的仿真运行cd/home/skyeye-testsuite-2.3lscdlinuxlscds3c2410cds3c2410x-2.6.14/lscp*/home/skyeye-1.2.4/binarycd/home/skyeye-1.2.4/binary./skyeye–cskyeye.conf–evmlinux运行效果:屏幕中先是输出了skyeye的配置信息,然后显示了内核的启动信息。Linux操作系统内核启动完毕后,进入shell界面,接受用户命令的输入。六、遇到的问题及解决办法答:问题:以上操作在实验室台式机上正常,但在个人笔记本上仿真运行U-boot时出现“Segmentationfault”错误,即每次在分配存储空间是出现错误。解决:通过阅读安装包内的README文件,得知skeyey编译不成功,或编译后无法正常工作时,使用make命令的时候可以加入一些选项参数,例如:不允许DBCT:makeNO_DBCT=1;不支持LCD:makeNO_LCD=1;不支持BFD库:makeNO_BFD=1;不支持网络设备:makeNO_NET=1。我使用makeNO_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-LinkV8仿真器2.软件环境配置操作系统:MicrosoftWindowsXPProfessionalServicePack2虚拟机:VMwareWorkStation7Linux系统:RedHatEnterpriseLinuxAS4(2.6.9-5.EL)五、实验步骤 1.根据实际的实验操作过程,编译U-Boot,并列出编译U-Boot时用到的各个指令。答:[root@localhosthome]#cd/home/embeddedsystem[root@localhostembeddedsystem]#tar–xjvfu-boot-1.3.2.tar.bz2[root@localhostembeddedsystem]#cdu-boot-1.3.2[root@localhostu-boot-1.3.2]#makesmdk2410_configCROSS_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内容配置为:#skyeyeconfigfileforS3C2410Xarch:armcpu:arm920tmach:s3c2410x#physicalmemorymem_bank:map=M,type=RW,addr=0x00000000,size=0x00100000mem_bank:map=M,type=RW,addr=0x30000000,size=0x04000000#mem_bank:map=M,type=RW,addr=0xc1600000,size=0x00a00000#allperipheralsI/Omappingareamem_bank:map=I,type=RW,addr=0x48000000,size=0x20000000mem_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=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@localhosthome]#cd/home/embeddedsystem[root@localhostembeddedsystem]#cdskyeye-1.2.4[root@localhostskyeye-1.2.4]#cdbinary[root@localhostbinary]#./skyeye–eu-boot 4.练习U-Boot的常用命令,列出三个U-Boot的常用命令并对其功能进行描述。答:bdinfo:打印开发板信息;erase:擦出FlashRomreset:执行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-LinkV8仿真器2.软件环境配置操作系统:MicrosoftWindowsXPProfessionalServicePack2虚拟机:VMwareWorkStation7Linux系统:RedHatEnterpriseLinuxAS4(2.6.9-5.EL)五、实验步骤 1.启动内核配置菜单,选择makemenuconfig方式进行配置。列出linux内核的配置方式及每种配置方式的特点,列出启动内核配置菜单所使用的指令。答:(1)配置方式:文本框对话框配置方式。命令:make.congfig。特点:内容细致,但浪费时间,适合专业的开发人员。基于图形界面的配置方式。命令:makexcongfig。特点:项目显示直观,但需要xwindows图形界面相关软件的支持。目录方式。命令:makemenuconfig。特点:方便直观,基于字符界面,和curses图形界面。 2.配置linux2.6版本内核,列出基本的配置项目都有哪些。(2)本实验使用目录方式[root@localhosthome]#cd/home/embeddedsystem[root@localhostembeddedsystem]#tar-xjvflinux-2.6.14.tar.bz2[root@localhostembeddedsystem]#cdlinux-2.6.14[root@localhostlinux-2.6.14]#viMakefile在打开的文件中修改第192行与第193行,改为:ARCH?=arm(指定编译的内核架构) CROSS_COMPILE?=/home/usr/local/bin/arm-linux-(指定交叉编译工具)[root@localhostlinux-2.6.14]#cparch/arm/configs/smdk2410_defconfig.config[root@localhostlinux-2.6.14]#makeARCH=armmenuconfig 3.编译Linux内核,列出编译Linux内核所使用的指令,列出编译之后生成的文件及每个文件的用途。答:(1)[root@localhostlinux-2.6.14]#cd/home/linux-2.6.14[root@localhostlinux-2.6.14]#makeARCH=armCROSS_COMPILE=arm-linux-(2)1)vmlinux:位于根目录下,是在内核源码顶层目录生成的内核映像,属于elf格式的目标文件。它是内核在虚拟空间中运行时代码的真实反映。因为Linux内核运行在虚拟地址空间,所以vmlinux中的“vm”表示“VirtualMemory”。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配置文件的内容为:#skyeyeconfigfilefors3c2410cpu:arm920tmach:s3c2410x#physicalmemorymem_bank:map=M,type=RW,addr=0xc0000000,size=0x00800000mem_bank:map=M,type=RW,addr=0xc0800000,size=0x00800000,file=./initrd.imgmem_bank:map=M,type=RW,addr=0xc1000000,size=0x01000000#allperipheralsI/Omappingareamem_bank:map=I,type=RW,addr=0x48000000,size=0x20000000mem_bank:map=I,type=RW,addr=0x19000300,size=0x00000020net:type=cs8900a,base=0x19000300,size=0x20,int=9,mac=0:4:3:2:1:f,ethmod=tuntap,hostip=lcd:type=s3c2410x,mod=gtk#dbct:state=on(2)复制编译得到的elf格式内核文件vmlnux和测试文件系统initrd.img到/home/embeddedsystem/skyeye-1.2.4/binary下,然后在终端执行:[root@localhostlinux-2.6.14]#cd/home/zcnet/skyeye-1.2.4/binary[root@localhostbinary]#./skyeye-evmlinux六、遇到的问题及解决办法答:无实验七根文件系统的制作一、实验目的掌握BusyBox的编译与安装,掌握根文件系统的制作过程,掌握在Skyeye环境下调试根文件系统的方法二、实验内容1.编译安装BusyBox;2.制作根文件系统;3.在Skyeye环境下调试根文件系统;三、预备知识了解BusyBox;了解根文件系统的相关知识。四、实验设备1.硬件环境配置计算机:Intel(R)Pentium(R)及以上内存:1GB及以上实验设备:UP-NETARM2410-S嵌入式开发平台,J-LinkV8仿真器2.软件环境配置操作系统:MicrosoftWindowsXPProfessionalServicePack2虚拟机:VMwareWorkStation7Linux系统:RedHatEnterpriseLinuxAS4(2.6.9-5.EL)五、实验步骤 1.配置BusyBox。列出配置BusyBox所使用的指令及配置的内容。答:1)进入BusyBox的配置菜单[root@localhostbusybox-1.2.0]#makemenuconfig2)配置内容 Busybox配置菜单中,主要包括BusyBox的全局配置:BusyBoxSettings和小程序:Applets。先配置全局配置中的各项内容,再配置小程序中的内容。通用选项编译选项配置为将BusyBox编译成静态链接的可执行文件,运行时不需要共享库支持配置Linux操作系统中的交叉编译工具所在路径调试选项安装选项配置不将编译得到BusyBox文件放到原系统的/usr下,BusyBox将被编译为静态链接的可执行文件。配置安装BusyBox时将各个命令安装为指向BusyBox的软连接指定编译BusyBox时生成文件的安装目录设置“BusyBoxLibraryTuning”项设置小程序(Applets)项添加shell命令添加气动工具选择配置Linux系统中常用工具和命令。4)保存设置 2.编译与安装BusyBox,列出编译与安装BusyBox所使用的指令。答:1)编译BusyBox[root@localhostbusybox-1.2.0]#make2)安装BusyBox [root@localhostbusybox-1.2.0]#makeinstall 3.制作根文件系统,列出根文件系统的制作过程。答:1)创建根文件系统的dev目录:[root@localhostBusyBox-1.2.0]#mkdir_install/dev[root@localhostBusyBox-1.2.0]#cp/dev/ttyS0/dev/console/dev/ram0_install/dev/-a2)创建根文件系统的etc等目录及配置文件,编写make_rootfs.sh来实现该部分的操作。make_rootfs.sh内容如下:echo"stepsofmake_rootfs"echo"1:creatfolders"mkdir-pvetcetc/init.dhomeinitrdlibprocroottmpvarecho"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-aEOFecho"3:createtc/init.d/rcS"cat>etc/init.d/rcS<<"EOF"#!/bin/sh/bin/mount-tprocnone/proc/sbin/ifconfigloup/sbin/ifconfigeth0uphostnameskyeye-zgxbcmkdir/var/tmpmkdir/var/logmkdir/var/runmkdir/var/lockcat/etc/mod#/sbin/ifconfigeht071netmaskup#routeadddefaultgw/bin/ashEOFecho"3(1):chmodetc/init.d/rcS"chmod777etc/init.d/rcSecho"4:createtc/mtab"cat>etc/mtab<<"EOF"rootfs/rootfsrw00/dev/root/nfsrw,v2,rize=4096,hard,udp,nolock,addr=00none/procprocrw00EOFecho"5:createtc/motd"cat>etc/motd<<"EOF"WelcometoARMLinuxforSkyeyeForfurtherinformationpleasecheck:/EOF3)将编写的make_rootfs.sh脚本文件放在BusyBox的安装目录_install中,然后进入安装目录运行该脚本[root@localhostBusyBox-1.2.0]#cd_install[root@localhost_install]#./make_rootfs.sh根文件系统的完整结构就在安装目录_install中建立出来了 4.在Skyeye环境下对根文件系统进行仿真,观察输出

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论