嵌入式系统概论实验指导书.docx
- 文档编号:25876487
- 上传时间:2023-06-16
- 格式:DOCX
- 页数:41
- 大小:883.75KB
嵌入式系统概论实验指导书.docx
《嵌入式系统概论实验指导书.docx》由会员分享,可在线阅读,更多相关《嵌入式系统概论实验指导书.docx(41页珍藏版)》请在冰豆网上搜索。
嵌入式系统概论实验指导书
嵌入式系统概论
实验指导书
林高飞编
福建农林大学东方学院
计算机系
2013年12月
目录
目录2
实验一Linux的安装4
实验二VMwaretools的安装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
实验十六RVDS2.2集成开发环境练习30
实验十七:
GPIO输出控制实验30
实验一Linux的安装
【实验目的】
一、掌握虚拟机软件VMware的安装方法
二、掌握FedoraCore4Linux发行版的安装
【实验内容】
一、准备如下安装文件:
1.VMware.Workstation.5.5中文版(虚拟机)带注册机
2.FC4-i386-disc1.iso
3.FC4-i386-disc2.iso
4.FC4-i386-disc3.iso
5.FC4-i386-disc4.iso
6.FC4-i386-rescuecd.iso
二、VMware软件的安装
1.双击安装文件,按照提示进行下一步
2.需要输入注册码时,运行注册机目录下的keygen..exe,点击generate,serial框中的即为注册码。
3.安装完成后,运行汉化补丁目录下的HF_Vmware5.5进行汉化
三、FedoraCore4Linux发行版的安装
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.按提示点击下一步,设置自己的用户名,系统默认有个超级用户root
18.在提示输入用户名时,可以输入自己设置的用户名和密码(进入系统后,使用用户权限,安全),也可以输入root用户,密码为在第11步里设置的(进入系统后,使用超级用户权限)
实验二VMwaretools的安装
【实验目的】
一、了解VMwaretools的用途
二、掌握VMwaretools的安装方法
三、初步了解部分Linux命令的使用
【实验内容】
一、VMvaretools的用途:
1.在Linux中方便地访问Windows系统下的文件(通过目录/mnt/hgfs)
2.增强桌面图形性能,屏幕分辨率
3.鼠标可以在Windows系统和虚拟机之间方便切换
二、VMwaretools的安装
1.打开VMware软件,启动已安装的Linux系统,通过菜单虚拟机->安装vmware工具,点击install
2.在Linux桌面上,点鼠标右键,打开终端
3.输入以下命令:
mount–tiso9660/dev/cdrom/mnt
4.cd/mnt
5.cpVMwareTools-5.5.0-18463.tar.gz/tmp
6.cd/tmp
7.umount/dev/cdrom
8.tarzxvfVmwareTools-5.5.0-18463.tar.gz
9.cdvmware-tools-distrib
10../vmware-install.pl
11.一路回车
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,group2
3、将用户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命令:
将文件系统挂在目录的某个位置之上。
这个命令可以被用来挂上任何的文件系统,甚至可以用-oloop选项将某个一般的文件当成硬盘分区挂载。
这对于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创建之。
三、退出vi
1、在命令模式下输入“:
wq”,保存文件并退出vi
2、若不需要保存文件,输入“:
q”
3、若文件已修改,但不保存,输入“:
q!
”强制退出vi
4、其它一些不常用的方法在此省略。
四、命令模式下的常用编辑命令
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行
:
nwfile,将第n行写入file文件
:
n,mwfile,将第n行至第m行写入file文件
:
w,将编辑的内容写入原始文件
:
wq,将编辑的内容写入原始文件并退出编辑程序
:
wfile,将编辑的内容写入file文件,保持原有文件的内容不变
:
ffile,将当前文件重命名为file
:
efile,编辑新文件file代替原有内容
:
f,打印当前文件的状态,如文件的行数,光标所在的行号等
:
!
<命令>,执行相应shell命令
六、三种工作模式的切换
1、在Linuxshell下,键入vi或vi<文件名>进入命令模式
2、在命令模式下,键入:
进入末行模式
3、在命令模式下,键入文本编辑命令如i,a,o等进入文本输入模式
4、在文本输入模式下,按esc键进入命令模式
5、在末行模式下,按backspace键或del键进入命令模式
6、在末行模式下,键入q或wq,退出vi,饭后到Linuxshell下
实验七使用GCC编译C语言程序
【实验目的】
一、了解GNUgcc编译器
二、掌握使用GCC编译C语言程序的方法
【实验内容】
一、使用vi或其它文本编辑器,输入C语言程序,并保存为test.c
二、在Linuxshell下,输入命令gcc–otesttest.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–oprogmain.ctest1.ctest2.c
其中,“-oprog”指定输出的可执行文件名为prog,如果没有指定-o参数,gcc将使用默认的可执行文件名a.out
Gcc的命令选项有许多项,但经常使用的几个选项是:
1、-c:
只预处理,编译和汇编源程序,不进行连接
2、-oexefile,确定输出文件为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引起的问题,然后继续查找下一个bug
GDB的使用可以直接在shell命令行下输入gdb并回车,再在gdb
命令行下指定要调试的程序。
也可以用gdbfilename在启动时指定要调试的程序名。
为了使GDB能够正常工作,必须使程序在编译时包含调试信息,即在
使用gcc时加-g选项即可。
在GDB启动后,就进入GDB命令方式,下面是一些常用的GDB命令:
1、file,载入程序命令,如要加载hello程序用filehello
2、quit,退出gdb命令,也可以用ctrl+d来退出
3、run,运行程序命令,如果程序需要参数,可在run指令后接着输入参数。
4、info,查看程序信息
5、list,列出源程序命令,如listFUNCTION,listLINENUM,listFILENAME:
FUNCTION
6、break,设置断点,在程序被载入并且当前没有正在运行时,就能设置、修改、删除断点。
如breakFUNCTION,breakLINENUM,break*ADDRESS,break……ifCOND
7、watch,设置监视点命令,监视某个表达式或变量,当它被读或被写时让程序停下来,如watchEXPRESSION
8、print,显示表达式的值,如printexp
9、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.otest2.o
Gcc–otesttest1.otest2.o
Test1.o:
test1.ctest1.h
Gcc–c–otest1.otest1.c
Test2.o:
test2.ctest2.h
Gcc–c–otest2.otest2.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可以输入maketarget,target是makefile文件中定义的目标,如果省略target,make就将更新makefile文件的第一个目标。
Make在检查一个目标是否已经过时并需要更新时,采用的是按相关性递归的办法,make在构建一个目标之前要生成该目标所依赖的所有文件,并递归地前进,从而确保这些文件都是新的。
目标clean是makefile中常用的一种专用目标,即删除所有的目标模块。
一般不作它用。
Makefile中还可以使用预先定好的所写和宏,还支持一些隐含规则,makefile的高级使用请查阅相关文档。
当然,自己编写makefile比较繁琐,一般来说,可以找到一些参考的makefile文件模板,再根据自己的实际情况稍作修改即可。
同时还有一些专门的工具软件比如automake、autoconf来生成makefile文件。
实验十嵌入式Linux开发环境建立及内核编译
【实验目的】
一、了解嵌入式开发环境及交叉编译器
二、了解嵌入式Linux的相关特性
三、掌握如何建立一个嵌入式Linux开发环境
四、如何利用交叉编译器来编译内核
【实验设备】
硬件:
THUGA-1型实验箱,PC机
软件:
PC机操作系统:
Linux
【实验内容】
一、建立交叉编译环境
该交叉编译工具在光盘的Linux\toolchains文件夹下的cross-3.3.2.ta
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 系统 概论 实验 指导书