已阅读5页,还剩26页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
嵌入式系统概论实 验 指 导 书林高飞 编福建农林大学东方学院计算机系2013年12月目 录目 录2实验一 Linux的安装4实验二 VMware tools的安装5实验三 Linux基本命令的使用(一)6实验四 Linux基本命令的使用(二)7实验五 Linux基本命令的使用(三)8实验六 文本编辑器vi的使用9实验七 使用GCC编译C语言程序10实验八 使用GDB调试程序11实验九 makefile的编写12实验十 嵌入式Linux开发环境建立及内核编译14实验十一 嵌入式Linux根文件系统制作18实验十二 嵌入式Linux内核和根文件系统的下载和烧写19实验十三 嵌入式Linux驱动程序添加24实验十四 嵌入式Linux下的音频实验26实验十五 嵌入式Linux下的视频实验27实验十六 RVDS 2.2集成开发环境练习30实验十七 :GPIO输出控制实验30实验一 Linux的安装【实验目的】一、掌握虚拟机软件VMware的安装方法二、掌握Fedora Core 4 Linux发行版的安装【实验内容】一、准备如下安装文件:1. VMware.Workstation.5.5中文版(虚拟机)带注册机2. FC4-i386-disc1.iso3. FC4-i386-disc2.iso4. FC4-i386-disc3.iso5. FC4-i386-disc4.iso6. FC4-i386-rescuecd.iso二、VMware软件的安装1. 双击安装文件,按照提示进行下一步2. 需要输入注册码时,运行注册机目录下的keygen.exe,点击generate,serial框中的即为注册码。3. 安装完成后,运行汉化补丁目录下的HF_Vmware5.5进行汉化三、Fedora Core 4 Linux发行版的安装1. 在VMware软件中,新建虚拟机-下一步,选择典型-下一步,选择linux-下一步,选择linux安装的位置-下一步,使用桥接网络-下一步,完成2. 编辑虚拟机-设置,选择cdrom1,使用iso映像,选中FC4-i386-disc1.iso,确定3. 启动此虚拟机,进入linux安装界面4. 选择skip,跳过光盘检测5. 按next,选择简体中文,按next,下一步6. 安装类型选择定制,下一步7. 选择手工分区,下一步,弹出警告框,选择是8. 新建,选择文件类型为swap,大小为1000MB,确定。9. 新建,选择文件类型为ext3,挂载点为/,大小为“使用全部可用空间”,确定,分区结果如下图所示:10. 下一步,下一步,选择无防火墙,弹出警告框,点击继续11. 下一步,设置用户口令,输入两次,必须相同,至少为6个字符12. 下一步,选择软件包组界面,选择全部(7G左右,保证硬盘空间充足,避免今后使用时出现一些问题)13. 按照提示,点击下一步,开始安装14. 第一张盘FC4-i386-disc1.iso安装完后,有提示音15. 编辑虚拟机-设置,选择cdrom1,使用iso映像,选中FC4-i386-disc2.iso,确定,继续第二张盘的安装16. 完成四张盘的安装后,自动重启,进入系统17. 按提示点击下一步,设置自己的用户名,系统默认有个超级用户root18. 在提示输入用户名时,可以输入自己设置的用户名和密码(进入系统后,使用用户权限,安全),也可以输入root用户,密码为在第11步里设置的(进入系统后,使用超级用户权限)实验二 VMware tools的安装【实验目的】一、了解VMware tools的用途二、掌握VMware tools的安装方法三、初步了解部分Linux命令的使用【实验内容】一、VMvare tools的用途:1. 在Linux中方便地访问Windows系统下的文件(通过目录/mnt/hgfs)2. 增强桌面图形性能,屏幕分辨率3. 鼠标可以在Windows系统和虚拟机之间方便切换二、VMware tools的安装1. 打开VMware软件,启动已安装的Linux系统,通过菜单虚拟机-安装vmware工具,点击install2. 在Linux桌面上,点鼠标右键,打开终端3. 输入以下命令:mount t iso9660 /dev/cdrom /mnt4. cd /mnt5. cp VMwareTools-5.5.0-18463.tar.gz /tmp 6. cd /tmp7. umount /dev/cdrom8. tar zxvf VmwareTools-5.5.0-18463.tar.gz9. cd vmware-tools-distrib10. ./vmware-install.pl11. 一路回车12. 虚拟机-虚拟机设置-选项-共享文件夹-添加(名称d,主机文件夹D:,名称e,主机文件夹E:),确定13. reboot三、验证是否安装成功 1、鼠标是否能方便地在Windows和虚拟机之间切换 2、在Linux中能否通过目录/mnt/hgfs访问Windows下的文件实验三 Linux基本命令的使用(一)【实验目的】一、了解Linux系统中的用户管理二、掌握Linux系统中用户管理相关的常用命令【实验内容】一、Linux是一个支持多用户的操作系统,其中root用户必不可少,root用户具有超级管理权限。其他用户具有一般权限,Linux还支持用户组管理。二、最常使用的一些命令:1、who命令:显示系统中当前有哪些用户在线,显示的了用户ID,终端,登录IP,上线时间,停留时间,CPU使用量,动作等等。2、passwd命令:用来更改用户的密码3、su命令:从一般用户切换到root用户,需要输入密码4、useradd命令:添加新用户5、userdel命令:删除用户6、usermod命令:修改用户账号7、groupadd命令:增加新的用户组8、groupdel命令:删除用户组9、groupmod命令:修改用户组10、gpasswd命令:管理组成员11、last命令:显示系统开机以来或是从每月初登录用户的信息三、练习 1、在Linux下将root用户的密码修改为Linux#1 2、创建用户user01,user02,user03,创建用户组group1,group23、将用户user01、user02划归group1组,将用户user03划归group2组实验四 Linux基本命令的使用(二)【实验目的】一、了解Linux系统中的文件和目录管理二、掌握Linux系统中文件和目录管理相关的常用命令【实验内容】一、Linux系统中的目录及各个目录的大致作用: / :根目录 /bin: 存放必要的命令 /boot :存放内核以及启动所需的文件等 /dev: 存放设备文件 /etc :存放系统的配置文件 /home :用户文件的主目录,用户数据存放在其主目录中 /lib: 存放必要的运行库 /mnt: 存放临时的映射文件系统,我们常把软驱和光驱挂装在这里的floppy和cdrom子目录下。 /proc: 存放存储进程和系统信息 /root: 超级用户的主目录 /sbin: 存放系统管理程序 /tmp: 存放临时文件的目录 /usr: 包含了一般不需要修改的应用程序,命令程序文件、程序库、手册和其它文档。 /var: 包含系统产生的经常变化的文件,例如打印机、邮件、新闻等假脱机目录、日志文件、格式化后的手册页以及一些应用程序的数据文件等等。 二、Linux系统中的文件类型: 1、普通文件,如文本文件、C语言源文件、二进制的可执行文件、shell文件。 2、目录文件3、设备文件,如软驱A为/dev/fd0三、常用命令 1、cat命令:将文件输出或重定向到其它文件 2、cd命令:切换工作目录 3、cp命令:复制文件或目录 4、mv命令:将一个文件移至另一文件,或将数个文件移至另一目录 5、rm命令:删除文件或目录 6、ls命令:显示指定目录下的内容 7、mkdir命令:建立目录 8、rmdir命令:删除空的目录 9、touch命令:创建空文件 10、wc命令:该命令统计给定文件中的字节数、字数、行数11、pwd命令:显示当前所在目录的绝对路径名称12、more命令:类似cat,不过会一页一页地显示13、find命令:在指定的目录及子目录中查找匹配条件的文件14、grep命令:文本搜索命令,支持正则表达式15、ln命令:创建软链接或硬链接16、chgrp命令:更改文件或目录的所属群组17、chmod命令:更改文件或目录的权限18、chown命令:改变文件或目录的所有者实验五 Linux基本命令的使用(三)【实验目的】一、掌握Linux系统中其它的一些常用命令【实验内容】一、网络管理: 1、ifconfig命令:配置或查看网络接口参数 2、ping命令:测试本地到目的主机是否连通 3、netstat命令:显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况 4、traceroute命令:显示数据包到主机间的路径 5、route命令:查看并编辑IP路由表 6、mesg命令:打开或关闭其他用户对自己登录终端的广播功能 7、write命令:向指定的用户发送信息二、进程管理 1、ps命令:显示当前运行进程的状态 2、kill命令:发送特定信号给id为pid的进程 3、top命令:实时显示进程的动态三、文件系统 1、fdisk命令:查看或创建磁盘分区 2、df命令:显示文件系统的状况 3、dd命令:把指定的输入文件拷贝到指定的输出文件中,并且在拷贝过程中可以进行格式转换。 4、fsck命令:检查与修复文件系统 5、mkfs命令:在特定的分区上建立文件系统 6、mount命令:将文件系统挂在目录的某个位置之上。这个命令可以被用来挂上任何的文件系统,甚至可以用-o loop选项将某个一般的文件当成硬盘分区挂载。这对于ramdisk或是ISO9660的镜像文件之解读非常实用。四、系统管理 1、clear命令:清除屏幕 2、export命令:用于设置或显示环境变量 3、halt命令:关闭系统 4、init命令:所有进程的父进程,改变运行层级 5、shutdown命令:关机程序 6、reboot命令:重新启动五、备份压缩 1、tar命令:对文件或目录进行打包或解包 2、gzip/gunzip命令:压缩和解压缩 3、bzip2/bunzip2命令:比gzip压缩效率更高的压缩和解压缩六、其它 1、cal命令:显示日历 2、at命令:可以让用户指定在特定时刻执行某个程序或命令注:以上所涉及到的仅仅是Linux系统中的一部分常用命令,其它未涉及到的命令可在今后需要使用时再通过网络查询掌握其使用方法。另外,不同的Linux发行版可能还有自己特定的一些命令集合。实验六 文本编辑器vi的使用【实验目的】一、掌握文本编辑器vi的使用方法【实验内容】一、vi的三种工作模式:1、命令模式:执行相关文本编辑命令2、输入模式:输入文本3、末行模式:实现查找、替换、保存、多文件操作等等功能二、进入vi,直接在Shell提示符下键入vi 文件名称,如果该文件在当前目录不存在,则vi创建之。三、退出vi1、在命令模式下输入“:wq”,保存文件并退出vi2、若不需要保存文件,输入“:q”3、若文件已修改,但不保存,输入“:q!”强制退出vi4、其它一些不常用的方法在此省略。四、命令模式下的常用编辑命令1、启动vi后,进入的是vi的命令模式2、按i键,进入输入模式,可以进行文本的编辑,在输入模式下,按esc键,可切换回命令模式 i:光标位置不变,可在光标左侧插入正文 a:光标位置向后退一格,可在光标左侧插入正文 o:在光标所在行的下一行增添新行 O:在光标所在行的上一行增添新行 I:光标跳到当前行的开头 A:光标跳到当前行的末尾 3、光标的移动 k、j、h、l分别等同于上、下、左、右箭头键 Ctrl+b,向上翻一页 Ctrl+f,向下翻一页 nH,将光标移到屏幕的第n行 nL,将光标移到屏幕的倒数第n行 4、删除文本 nX,删除光标所指向的后n个字符 D,删除光标右侧的所有字符(包括光标所指向的字符) db,删除光标左侧的全部字符 ndd,删除当前行和当前行以后的n行内容 5、粘贴和复制 p,将缓冲区的内容粘贴到当前字符的右侧 P,将缓冲区的内容粘贴到当前字符的左侧 yy,复制当前行到内存缓冲区 nyy,复制n行内容到内存缓冲区 6、搜索字符串 /str1,正向搜索字符串str1 n,继续搜索 ?str2,反向搜索字符串str2 7、撤销和重复 u,撤销前一条命令的执行结果 .,重复最后一条命令 五、末行模式下的命令 :n,将光标移动到第n行 :nw file,将第n行写入file文件 :n,mw file,将第n行至第m行写入file文件 :w,将编辑的内容写入原始文件 :wq,将编辑的内容写入原始文件并退出编辑程序 :w file,将编辑的内容写入file文件,保持原有文件的内容不变 :f file,将当前文件重命名为file :e file,编辑新文件file代替原有内容 :f,打印当前文件的状态,如文件的行数,光标所在的行号等 :!,执行相应shell命令 六、三种工作模式的切换 1、在Linux shell下,键入vi或vi 进入命令模式 2、在命令模式下,键入:进入末行模式 3、在命令模式下,键入文本编辑命令如i,a,o等进入文本输入模式 4、在文本输入模式下,按esc键进入命令模式 5、在末行模式下,按backspace键或del键进入命令模式 6、在末行模式下,键入q或wq,退出vi,饭后到Linux shell下实验七 使用GCC编译C语言程序【实验目的】一、了解GNU gcc编译器二、掌握使用GCC编译C语言程序的方法【实验内容】一、使用vi或其它文本编辑器,输入C语言程序,并保存为test.c二、在Linux shell下,输入命令gcc o test test.c三、编译正确后,输入命令./test运行程序,观察程序运行结果四、若编译错误,根据提示信息,进入程序查错,再回到第二步,直至程序语法无误。附:GCC使用方法和常用选项 使用GCC编译C程序生成可执行文件需要经历4个步骤:1、 预处理,这一步需要分析各种命令,如#define、#include、#ifdef等。Gcc调用cpp程序来进行预处理2、 编译,这一步将根据输入文件产生汇编语言,gcc调用ccl进行编译工作3、 汇编,这一步中将汇编语言作为输入,产生具有.o扩展名的目标文件,gcc调用as进行汇编工作4、 连接,这一步中各目标文件.o被放在可执行文件的适当位置上,该程序引用的函数也放在可执行文件中,gcc调用ld来完成 Gcc命令的基本用法为:gcc option filename,命令行选项指定的操作将在命令行上每个给出的文件上执行。例如: Gcc o prog main.c test1.c test2.c 其中,“-o prog”指定输出的可执行文件名为prog,如果没有指定-o参数,gcc将使用默认的可执行文件名a.out Gcc的命令选项有许多项,但经常使用的几个选项是: 1、-c:只预处理,编译和汇编源程序,不进行连接 2、-o exefile,确定输出文件为exefile,如果没有该选项,默认输出为可执行文件a.out 3、-Dmacro或-Dmacro=defn,其作用类似于源程序代码中的#define 4、-O,对程序编译进行优化,编译后可执行文件的长度和执行时间缩短,但编译过程耗时变长,对主机性能要求较高。 5、-O2,比-O更好地优化 6、-g,告诉gcc产生能被GNU调试器使用的调试信息以便调试程序 7、-Idir,将dir目录加到搜寻头文件的目录列表中。并优先于在gcc中默认的搜寻目录 更多的选项说明请查阅gcc使用手册。 实验八 使用GDB调试程序【实验目的】一、掌握使用GDB调试程序的方法【实验内容】一、按照实验七的内容,编写程序并编译生成可执行文件二、运行可执行文件,观察程序运行结果三、若运行结果不对,表明程序逻辑有误,可通过GNU的一大工具GDB来调试程序。附:GDB的使用方法和常用命令 GDB能够观察一个程序在执行时的内部活动,或程序出错时发生了什么,GDB的主要功能有以下几点:1、设置运行环境和参数,运行指定程序2、让程序在指定条件下停止和运行3、在程序运行停止后,检查变量、内存或寄存器的值,查看程序运行情况4、修改正在调试的程序的源代码,这样可以在线修正某个bug引起的问题,然后继续查找下一个bugGDB的使用可以直接在shell命令行下输入gdb并回车,再在gdb命令行下指定要调试的程序。也可以用gdb filename在启动时指定要调试的程序名。为了使GDB能够正常工作,必须使程序在编译时包含调试信息,即在使用gcc时加-g选项即可。 在GDB启动后,就进入GDB命令方式,下面是一些常用的GDB命令:1、file,载入程序命令,如要加载hello程序用file hello 2、quit,退出gdb命令,也可以用ctrl+d来退出 3、run,运行程序命令,如果程序需要参数,可在run指令后接着输入参数。 4、info,查看程序信息 5、list,列出源程序命令,如list FUNCTION,list LINENUM,list FILENAME:FUNCTION6、break,设置断点,在程序被载入并且当前没有正在运行时,就能设置、修改、删除断点。如break FUNCTION,break LINENUM,break *ADDRESS,breakif COND7、watch,设置监视点命令,监视某个表达式或变量,当它被读或被写时让程序停下来,如watch EXPRESSION8、print,显示表达式的值,如print exp9、step或next,单步执行指令,step可以跟踪进入一个函数,而next指令不会10、continue,继续执行命令11、make,产生可执行文件,通过make不用退出gdb就可以重新产生可执行文件12、shell命令,不离开gdb就可以执行shell命令更多的gdb命令请查阅gdb使用手册实验九 makefile的编写【实验目的】一、了解makefile的编写规则二、通过make命令和makefile文件实现自动化编译【实验内容】一、假设一个程序由test1.c,test2.c两个源文件组成,test1.c文件需要包含头文件test1.h,test2.c需要包含test2.h二、编写一个简单的makefile文件如下: Test:test1.o test2.o Gcc o test test1.o test2.o Test1.o:test1.c test1.h Gcc c o test1.o test1.c Test2.o:test2.c test2.h Gcc c o test2.o test2.c Clean: Rm f *.o三、在shell环境下,运行make,则自动编译程序,生成可执行程序test四、根据以上实例和makefile的编写规则,编写多个c语言程序,并使用make来实现自动编译。 附:make和makefile相关介绍 在UNIX/Linux系统上,通常一个软件包里包含多个程序文件,如果用gcc一条条地编译,效率太低,而且当修改了某个程序文件时,需要重新编译软件包中的所有文件。使用make程序的目的就是自动确定一个软件包中哪些部分需要重新编译,并用特定的命令去编译它。 要使用make命令,必须编写makefile文件,makefile文件描述了软件包中各个文件之间的依赖关系,提供了更新每个文件的命令。 当编写完makefile文件后,只要在shell下使用make命令就可以完成所有必需的重新编译。Make程序利用makefile文件中的数据和每个文件最近一次更改的时间来确定哪些文件需要更新。 Makefile的编写规则:Makefile文件中包含着一些目标,对于每一个目标,都提供了与这个目标具有相关性的其他目标或文件的名字,以及实现这个目标的一组命令。其中,目标就是make程序要完成的一项任务,通常是一个文件的文件名。相关性即一个目标的完成依赖于其他一些目标或文件。在本实验内容中的示例makefile中,定义了四个目标:test、test1.o、test2.o、clean,每个目标都是从最左边开始写,后面跟一个冒号(:),如果这个目标的实现依赖于其他的目标或文件,把他们列在冒号的后面,并以空格隔开。然后另起一行开始写实现这个目标的一组shell命令,shell命令可以有若干行。一般情况下,调用make可以输入make target,target是makefile文件中定义的目标,如果省略target,make就将更新makefile文件的第一个目标。Make在检查一个目标是否已经过时并需要更新时,采用的是按相关性递归的办法,make在构建一个目标之前要生成该目标所依赖的所有文件,并递归地前进,从而确保这些文件都是新的。目标clean是makefile中常用的一种专用目标,即删除所有的目标模块。一般不作它用。Makefile中还可以使用预先定好的所写和宏,还支持一些隐含规则,makefile的高级使用请查阅相关文档。当然,自己编写makefile比较繁琐,一般来说,可以找到一些参考的makefile文件模板,再根据自己的实际情况稍作修改即可。同时还有一些专门的工具软件比如automake、autoconf来生成makefile文件。实验十 嵌入式Linux开发环境建立及内核编译【实验目的】一、了解嵌入式开发环境及交叉编译器二、了解嵌入式Linux的相关特性三、掌握如何建立一个嵌入式Linux开发环境四、如何利用交叉编译器来编译内核【实验设备】硬件:THUGA-1型实验箱,PC机软件:PC机操作系统:Linux【实验内容】一、建立交叉编译环境该交叉编译工具在光盘的Linuxtoolchains文件夹下的cross-3.3.2.tar.bz2 。具体步骤如下:1)解压编译工具包首先进入/usr/local 目录,建立一个arm的子目录(如果/usr/local/arm 目录不存在),再进入该目录。命令如下:# cd /usr/local# mkdir arm# cd arm然后将光盘Linux目录下的 “toolchain”文件夹下的cross-3.3.2.tar.bz2拷贝到刚刚进入的arm目录下,并执行以下命令:# tar jxf cross-3.3.2.tar.bz2解压后会出现一个3.3.2的目录,该目录下有gcc,g+,bin等各种实用工具。就这样,交叉编译工具就安装好了。2)将该交叉编译工具的路径添加到环境变量解压后,交叉编译工具中的可执行文件在3.3.2/bin 目录下,此目录不在Linux系统的可执行程序搜索目录中,因此需要在启动设置里手动添加进去,具体做法是修改/etc/bashrc或用户主目录下的.bashrc文件,在文件的最后一行增加路径,增加的文本如下:export PATH=$PATH:/usr/local/arm/3.3.2/bin这样就将交叉编译工具的路径添加进去了。为了使修改的文件立即生效,可执行:# source /etc/bashrc (假设修改的文件是/etc/bashrc)或者重起Linux操作系统。然后在终端上输入arm,然后按tab键,会自动显示arm- linux-,表示交叉编译环境安装成功。二、编译内核 首先将光盘Linuxkernel目录下的pxa270_kernel2.6.9.tar.gz 拷贝到/home 目录,然后进入这个目录,解压命令如下:# cd /home# tar -xzvf pxa270_kernel2.6.9.tar.gz解压完成后,将会看到在/home目录下生成一个pxa270_linux-2.6.9 的文件目录。接着进入pxa270_linux-2.6.9 此目录,该目录下显示的是嵌入式Linux的内核代码的组织结构:/arch 子目录包含了所有硬件结构特定的内核代码。如 i386,alpha 和 arm.。/drivers 子目录包含了内核中所有的设备驱动程序,如 usb 和 sound。/fs 子目录包含了所有的文件系统的代码。如 nfs,ext3 和 jffs2 等。/include 子目录包含了建立内核代码时所需的大部分库文件,这个模块利用其它模块重建内核。该目录也包括了不同平台需要的库文件。比如,asm-arm 是 arm 平台需要的库文件。 /init 子目录包含了内核的初始化代码,内核从此处工作。/ipc 子目录包含了进程间通信代码/kernel 子目录包含了主内核代码/mm 子目录包含了所有内核管理代码/net 子目录包含了和网络相关的代码,如 atm,ipv6 等。一般在每个目录下都有一个 depend 文件和一个 Makefile 文件。这两个文件都是编译时使用的辅助文件。其中 Makefile 文件中指出了编译时需要用到的编译器,也是移植内核过程中不可缺少的。执行 make menuconfig 命令。# cd pxa270_linux_2.6.9# make menuconfig下图为执行 make menuconfig 后显示的配置菜单:用键盘的上下键可以移动蓝色选择条到如下图所示的位置并按回车,选择“Load an Alternate Configuration File”栏目来装载一个已经存在的配置文件,如下图:修改要 load 的配置文件名,这里装载的配置文件为:kernel_pxa27x.cfg,如下图:配置文件输入后,这时可以按“OK”键(键盘的 ENTER 键)返回到主菜单栏中。接着按“ESC”键,退出内核配置菜单,这时将出现一个询问是否保存配置的对话框,这时选择“yes”回车退出,如下图。到此为止,内核的配置结束。接着执行命令 make zImage 就可以进行内核的编译了,如图:# make zImage结束后可以在 arch/arm/boot 目录下找到压缩内核文件 zImage。此文件可以通过 BOOTLOADER 下载运行和烧写到 FLASH 里去。实验十一 嵌入式Linux根文件系统制作【实验目的】一、了解嵌入式相关文件系统二、了解Cramfs文件系统的相关特性三、学习如何去制作一个cramfs根文件系统【实验内容】一、制作cramfs格式根文件系统步骤首先展开原有的 cramfs 格式的根文件系统到一个指定的目录,然后从这个目录复制所有的内容到另外一个目录,为了便于复制,我们先用 tar -cvf 命令将展开的根文件的所有的内容归档为一个文件,接着再用 tar -xvf 命令展开这个归档文件到新的文件夹,从而完成这个复制过程。以下就是具体的步骤:(1) 将 th_pax270_qtopia.cramfs 拷贝到任意目录下(2) 在该目录下建立两个子文件夹:mkdir changmkdir guo(3) 将 th_pax270_qtopia.cramfs 挂接到 chang 目录mount t cramfs th_pax270_qtopia.cramfs chang o loop(4)将 chang 目录下的内容压缩cd chang tar cvf ./1.tar ./这样将在 chang 的上一级目录产生一个 1.tar 的包(5)将包解压到 guo 目录下。umount chang ;卸载挂接cd . ;进入上一级目录mv 1.tar guo ; cd guo ;tar xvf 1.tar;将打包的根文件系统的里的内容解压rm 1.tar(6)将自己的驱动 gpiodrv.o 和应用程序 gpio_test 拷贝到相应的目录下。将 gpiodrv.o 拷贝到 guo/usr/目录下将 gpio_test 拷贝到 gpio_test 下(7)经过上面的步骤就可以将自己的驱动和应用程序添加到 cramfs 根文件系统中了现在将开始制作 cramfs 根文件系统先将 mkcramfs 可执行文件拷贝到 guo 所在的目录在这个目录下运行命令:./mkcramfs guo th_pax270_qtopia.cramfs运行成功后,会在该目录下生成 th_pax270_qtopia.cramfs根文件系统二、根文件系统制作成功后,可将刚才生成的th_pax270_qtopia.cramfs文件烧录到NorFlash中。实验十二 嵌入式Linux内核和根文件系统的下载和烧写【实验目的】一、掌握在实验箱上进行嵌入式Linux内核的下载和烧写二、掌握在实验箱上进行嵌入式Linux根文件系统的下载和烧写【实验内容】一、下载和烧写嵌入式Linux内核用 BOOTLOADER 的串口连接或网络连接方式都可以在 DNW 里下载文件,用网络方式速度会比较快一点。下面主要介绍通过网络连接方式下载 Linux 内核,并进行烧写的过程。首先使用实验箱附带的 RJ45 网络交叉线将 PC 机的网卡与教学平台底板的 10M 网口(CON4 口)相连接,然后运行 DNW 程序并设置 DNW 的串口通讯参数,然后按住小键盘上的 E 键不放同时按下板子的复位键,这时可看到 BOOTLOADER的功能选择界面!在 BOOTLOADER 的选择菜单里按下“5”键,然后回车,目的是设置 BOOTLOADER 和 PC通讯时所使用的 IP 地址,注意这个 IP 地址不是 LINUX 操作系统启动后的 IP 地址,两者并无关联,按下“5”键后,出现如下图所示:这时请输入一个 IP 地址,这个 IP 地址应该与 PC 机的网卡的 IP 地址处在同一子网,然后回车退出。另外如果要保存这个 IP 地址,使得下次系统重启后仍然设为这个 IP 地址值,那么应该输入“11”,选择 BOOTLOADER 的“11 : Save Boot Parameters”功能选项保存这个设置值。开始下载内核映像文件到板子的 RAM 了,在 BOOTLOADER 的选择菜单里按下“3”键,然后回车,目的是进入网络下载功能,在提示下载内存的地址时输入 2,即进入初始化网口并进入网络下载功能,如下图所示:从提示信息可以看到一个 tftp 文件传输服务程序已经运行起来了,这时需要在 PC 机上运行 tftp 的客户端程序,并通过客户程序上传 linux 内核映像文件。方法是在存放zImage的文件夹生成一个批处理文件,并在批处理文件中输入以下内容,如下图: 这个批处理文件只有一行语句:tftp -i 01 put zImage或者把光盘下目标代码文件夹拷贝到PC机,用记事本打开zImage.bat这个批处理文件,并在批处理文件中修改IP地址并保存即可。这个批处理文件的作用是将 zImage 这个 linux 内核映像文件上传到 01 这个主机上,这个 IP 地址是BOOTLOADER 中设置的 IP 地址。双击运行这个批处理,然后将目光转移到 DNW 上,正常的话,应该看到文件被下载到板子的过程,如下图:下载结束后输入 n 不运行它,会回到 BOOTLOADER 主菜单,然后按下“1”键,选择把下载的文件烧写到 Nor Flash,这时出现的界面如下图:这个界面出现了 04 四个选项,要用户选择将下载的文件烧写到 Nor Flash的哪个分区,0 是引导区(bootloader 分区),1是内核分区,2是根文件系统分区,3是未定义分区,4是汉字库,由于烧写的是内核,所以应该选择“1”。按下“1”键后,出现了下面的界面,如下图,直接按“Y”,就可以开始烧写了!二、下载和烧写嵌入式Linux根文件系统下载过程和下载内核一样,在上传根文件系统时需在存放根文件系统的文件夹生成一个批处理文件,并在批处理文件中输入以下内容,如下图:或者直接编辑批处理文件th_pax270_qtopia.cramfs.BAT的IP地址并保存,然后双击该文件即可。下载结束后选择 1 将文件烧写到 NOR FLASH 里去,再选择分区 2rootfs 后按 y 确认烧写,文件较大时烧写时间也会变长,请耐心等待,如下图:三、启动运行Linux用交叉串口线连接开发板的全功能串口(P2 口)和 PC 的串口,关闭 DNW 程序(若先前在使用),打开超级终端,选择 PC 和实验箱连接所用的串口,设置串口通讯参数如下图:按确定保存设置后启动连接。然后按住 4X4 键盘上的 D 键,再打开底板电源或在已开电源情况下按一下底板的复位键,BOOTLOADER 会自动启动 Linux,启动后再松开 D 按键,出现如下图:则Linux在实验箱上启动成功!实验十三 嵌入式Linux驱动程序添加【实验目的】一、了解嵌入式Linux系统中驱动程序的开发过程二、掌握如何来运行和加载驱动程序【实验内容】一、Linux中字符设备驱动的添加在一个字符设备驱动里面实现对 GPIO 端口的操作。在模块加载的时候跑马灯运行起来,模块卸载的时候,跑马灯停止。THUGA-1型实验箱的4个LED指示灯LED1LED4由4个I/O口控制,它们分别是:GPIO89,GPIO107,GPIO108 以及 GOIO96。当 GPIO89,GPIO107,GPIO108 以及 GOIO96 输出低电平的时候,相应的 LED 指示灯亮。二、字符设备的驱动源程序 gpiodrv.c该文件在目录:Linux实验源码exp3-adddriverdriver下,该驱动程序的 Makefile 是按照 Linux2.6 内核的要求来编写的。其中PXA270X_KERNEL_DIR的值要修改设置为用户本机上的PXA270的内核源码包的位置。接下来将gpiodrv.c和这个Makefile放置在同一个新建目录下,进入这个目录,输入make命令后,编译成功后将在这个目录下生成一个gpiodrv.ko的文件。三、测试程序 gpio_test.c将 gpio_test.c 放置在一个新建目录下,进入该目录下,输入命令:/usr/local/arm/3.3.2/bin/arm-linux-gcc o gpio_test gpio_test.c编译成功后,将在该目录下生成 gpio_test 可执行文件,要注意交叉编译工具arm-linux-gcc 的路径要设置正确,这里是/usr/local/arm/3.3.2/bin。为了便于操作,提供了一个用于编译 gpio_test.c 程序的 Makefile,用户可以到Linux实验源码exp3-adddrivertest的目录里面,直接输入命令 make 就可以编译该测试程序了。四、实验操作步骤1用交叉串口线将PC机的COM口与实验箱的UART(P2)相连,插上12V电源。2启动实验箱进入 Linux 环境,利用超级终端来显示,进入Linux命令行模式。3输入命令 cd /tmp,进入 tmp 目录,因为/tmp 是在 SDRAM 中,可以放数据。4将 gpiodrv.ko 和 gpio_test 下载到 /tmp 目录下(这2个文件可以是自己编译的,也可以直接采用Linux实验源码exp3-adddriver下的文件)。在这里采用 rz 命令来传输,rz 命令是通过 Zmodem协议来传输的。先在实验箱的终端下输入 rz 命令,接着点击超级终端的“传送”“发送文件”,在弹出的对话框中设置如下:然后点击发送。数据传输完后,再在超级终端中输入回车,接着通过 ls 来查看/tmp 目录下是否有 gpiodrv.ko 文件,gpio_test的下载过程是一样的。5gpiodrv.ko 和 gpio_test 下载成功后,接下来要进行真正的加载和运行的工作了。首先改变 gpio_test 的属性,命令如下: chmod 755 gpio_test 6加载 gpiodrv.ko 模块:insmod gpiodrv.ko7建立 gpio 设备节点:mknod /dev/gpio c 220 0/dev/gpio 为该设备驱动程序的设备名,c 表明该设备为字符设备,220 为该设备的主设备号,0 为从设备号。8执行 gpio_test 程序:./gpio_testgpio_test 程序运行起来后,有相应的功能选项说明。实验十四 嵌入式Linux下的音频实验【实验目的】一、嵌入式Linux音频播放和音频录音二、了解MP3编解码的原理三、掌握Linux下实现对MP3的编解码【实验内容】一、1用交叉串口线将PC机的COM口与实验箱的UART(P2)相连,插上12V电源。2启动实验箱进入 Linux 环境,利用超级终端来显示,进入Linux命令行模式。3根文件系统内带有一个 mp3 的播放程序 madplay,MP3 文件可以是保存在 MMC/SD 卡、CF 存储卡、U 盘上的,也可以通过前面说的网络、USB 等方法下载。下面以播放放在CF卡中的mp3文件为例说明:首先将CF卡中拷入mp3文件,将CF卡插入实验箱卡座。挂载CF卡,输入命令:mount t vfat /dev/ide/host0/bus0/target0/lun0/part1 /tmp/udisk/cd /tmp/udisk/ls;看到音频文件cd /Qtopia/demo/bin/./ madplay /tmp/udisk/qiufo.mp3即可听到播放的音乐。二、完整的代码请看光盘目录的 Linux 源码包。实验十五 嵌入式Linux下的视频实验【实验目的】一、了解Mplayer播放器二、掌握如何在嵌入式Linux中编译Mplayer【实验内容】一、Mplayer的编译1、将光盘的“Linuxmplayer移植work”目录下,有一个 madplay-0.15.2b.tar.gz 的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年分析图表考研真题及答案
- DB1306T 288-2025 葡萄栽培技术规程
- 2025年海事管理专员岗位招聘面试参考题库及参考答案
- 2025年生活方式设计师岗位招聘面试参考试题及参考答案
- 2025年制药行业销售代表岗位招聘面试参考题库及参考答案
- 2025年药物竞赛中医试题及答案
- 2025年行为数据分析师招聘面试参考题库及答案
- 2025年考古研究员岗位招聘面试参考题库及参考答案
- 2025年语言学专家岗位招聘面试参考试题及参考答案
- 2025年数字战略顾问岗位招聘面试参考题库及参考答案
- 视觉传达艺术设计专业
- 智慧树知到《大学生心理健康教育(西南民族大学)》章节测试答案
- 【灌溉系统】-小型农田水利节水灌溉施工组织设计方案
- 棉花各生长阶段田间长相图片
- GB/T 32473-2016凝结水精处理用离子交换树脂
- GB/T 19494.3-2004煤炭机械化采样第3部分:精密度测定和偏倚试验
- 遗传学试题库及答案-(12套-)
- 硫酸包装说明和使用说明书
- 山东师范大学成人教育《新闻写作》期末考试题库
- DBJ53T-69-2014云南省建筑与市政基础设施工程施工现场专业(管理)人员配备标准
- 清淤工程施工记录表
评论
0/150
提交评论