嵌入式系统实验指导书n.docx

上传人:b****6 文档编号:5586830 上传时间:2022-12-28 格式:DOCX 页数:17 大小:287.23KB
下载 相关 举报
嵌入式系统实验指导书n.docx_第1页
第1页 / 共17页
嵌入式系统实验指导书n.docx_第2页
第2页 / 共17页
嵌入式系统实验指导书n.docx_第3页
第3页 / 共17页
嵌入式系统实验指导书n.docx_第4页
第4页 / 共17页
嵌入式系统实验指导书n.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

嵌入式系统实验指导书n.docx

《嵌入式系统实验指导书n.docx》由会员分享,可在线阅读,更多相关《嵌入式系统实验指导书n.docx(17页珍藏版)》请在冰豆网上搜索。

嵌入式系统实验指导书n.docx

嵌入式系统实验指导书n

嵌入式系统实验指导书

专业:

计算机

班级:

12级(1,2)、11(3)

指导教师:

张文哲

实验一linux常用命令及vi的使用

实验目的:

掌握常用Linux命令的使用,掌握vi的使用。

实验原理:

Linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等。

所以,在Linux系统上工作离不开使用系统提供的命令。

要想真正理解Linux系统,就必须从Linux命令学起,通过基础的命令学习可以进一步理解Linux系统。

不同Linux发行版的命令数量不一样,但Linux发行版本最少的命令也有200多个。

这里把比较重要和使用频率最多的命令,按照它们在系统中的作用分成下面六个部分一一介绍。

◆安装和登录命令:

login、shutdown、halt、reboot、install、mount、umount、chsh、exit、last;

◆文件处理命令:

file、mkdir、grep、dd、find、mv、ls、diff、cat、ln;

◆系统管理相关命令:

df、top、free、quota、at、lp、adduser、groupadd、kill、crontab;

◆网络操作命令:

ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、nslookup;

◆系统安全相关命令:

passwd、su、umask、chgrp、chmod、chown、chattr、sudops、who;

◆其它命令:

tar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode。

Vi是linux下最常用的文本编辑工具,经常用于源代码的编写。

实验内容一:

练习常用命令的使用

首先新建一个终端然后练习电子文档中红色命令。

(一)   login

1.作用

login的作用是登录系统,它的使用权限是所有用户。

2.格式

login[name][-p][-h主机名称]

3.主要参数

-p:

通知login保持现在的环境参数。

-h:

用来向远程登录的之间传输用户名。

如果选择用命令行模式登录Linux的话,那么看到的第一个Linux命令就是login:

一般界面是这样的:

ManddrakeLinuxrelease9.1(Bamboo)fori586

renrel2.4.21-0.13mdkoni686/tty1

localhostlogin:

root

password:

上面代码中,第一行是Linux发行版本号,第二行是内核版本号和登录的虚拟控制台,我们在第三行输入登录名,按“Enter”键在Password后输入账户密码,即可登录系统。

出于安全考虑,输入账户密码时字符不会在屏幕上回显,光标也不移动。

登录后会看到下面这个界面(以超级用户为例):

[root@localhostroot]#

lastlogin:

Tue,Nov1810:

00:

55onvc/1

上面显示的是登录星期、月、日、时间和使用的虚拟控制台。

4.应用技巧

Linux是一个真正的多用户操作系统,可以同时接受多个用户登录,还允许一个用户进行多次登录。

这是因为Linux和许多版本的Unix一样,提供了虚拟控制台的访问方式,允许用户在同一时间从控制台(系统的控制台是与系统直接相连的监视器和键盘)进行多次登录。

每个虚拟控制台可以看作是一个独立的工作站,工作台之间可以切换。

虚拟控制台的切换可以通过按下Alt键和一个功能键来实现,通常使用F1-F6。

例如,用户登录后,按一下“Alt+F2”键,用户就可以看到上面出现的“login:

”提示符,说明用户看到了第二个虚拟控制台。

然后只需按“Alt+F1”键,就可以回到第一个虚拟控制台。

一个新安装的Linux系统允许用户使用“Alt+F1”到“Alt+F6”键来访问前六个虚拟控制台。

虚拟控制台最有用的是,当一个程序出错造成系统死锁时,可以切换到其它虚拟控制台工作,关闭这个程序。

(二)   mount

1.作用

mount命令的作用是加载文件系统,其使用权限是超级用户或/etc/fstab中允许的使用者。

2.格式

mount-a[-fv][-tvfstype][-n][-rw][-F]devicedir

3.主要参数

-h:

显示辅助信息。

-v:

显示信息,通常和-f用来除错。

-a:

将/etc/fstab中定义的所有文件系统挂上。

-F:

这个命令通常和-a一起使用,它会为每一个mount的动作产生一个行程负责执行。

在系统需要挂上大量NFS文件系统时可以加快加载的速度。

-f:

通常用于除错。

它会使mount不执行实际挂上的动作,而是模拟整个挂上的过程,通常会和-v一起使用。

-tvfstype:

显示被加载文件系统的类型。

-n:

一般而言,mount挂上后会在/etc/mtab中写入一笔资料,在系统中没有可写入文件系统的情况下,可以用这个选项取消这个动作。

4.应用技巧

在Linux和Unix系统上,所有文件都是作为一个大型树(以/为根)的一部分访问的。

要访问CD-ROM上的文件,需要将CD-ROM设备挂装在文件树中的某个挂装点。

如果发行版安装了自动挂装包,那么这个步骤可自动进行。

在Linux中,如果要使用硬盘、光驱等储存设备,就得先将它加载,当储存设备挂上了之后,就可以把它当成一个目录来访问。

挂上一个设备使用mount命令。

在使用mount这个指令时,至少要先知道下列三种信息:

要加载对象的文件系统类型、要加载对象的设备名称及要将设备加载到哪个目录下。

(1)Linux可以识别的文件系统

◆Windows95/98常用的FAT32文件系统:

vfat;

◆WinNT/2000的文件系统:

ntfs;

◆OS/2用的文件系统:

hpfs;

◆Linux用的文件系统:

ext2、ext3;

◆CD-ROM光盘用的文件系统:

iso9660。

虽然vfat是指FAT32系统,但事实上它也兼容FAT16的文件系统类型。

(2)确定设备的名称

在Linux中,设备名称通常都存在/dev里。

这些设备名称的命名都是有规则的,可以用“推理”的方式把设备名称找出来。

例如,/dev/hda1这个IDE设备,hd是HardDisk(硬盘)的,sd是SCSIDevice,fd是FloppyDevice(或是FloppyDisk?

)。

a代表第一个设备,通常IDE接口可以接上4个IDE设备(比如4块硬盘)。

所以要识别IDE硬盘的方法分别就是hda、hdb、hdc、hdd。

hda1中的“1”代表hda的第一个硬盘分区(partition),hda2代表hda的第二主分区,第一个逻辑分区从hda5开始,依此类推。

此外,可以直接检查/var/log/messages文件,在该文件中可以找到计算机开机后系统已辨认出来的设备代号。

(3)查找挂接点

在决定将设备挂接之前,先要查看一下计算机是不是有个/mnt的空目录,该目录就是专门用来当作挂载点(MountPoint)的目录。

建议在/mnt里建几个/mnt/cdrom、/mnt/floppy、/mnt/mo等目录,当作目录的专用挂载点。

举例而言,如要挂载下列5个设备,其执行指令可能如下(假设都是Linux的ext2系统,如果是WindowsXX请将ext2改成vfat):

软盘===>mount-text2/dev/fd0/mnt/floppy

cdrom===>mount-tiso9660/dev/hdc/mnt/cdrom

SCSIcdrom===>mount-tiso9660/dev/sdb/mnt/scdrom

SCSIcdr===>mount-tiso9660/dev/sdc/mnt/scdr

不过目前大多数较新的Linux发行版本(包括红旗Linux、中软Linux、MandrakeLinux等)都可以自动挂装文件系统,但RedHatLinux除外。

其他命令参照电子文档练习。

实验内容二:

常用软件的安装

尝试在Redhat中安装一些软件,例如linux版的QQ安装(deb或tar.gz)。

请至飞秋共享自行拷贝。

实验内容三:

vi的使用

使用vi编辑器建立、编辑、显示以及加工处理文本文件

a.进入和退出vi

<1>进入vi

在系统提示符($)下输入命令vi和想要编辑(建立)的文件名(如example),便可进入vi。

<2>退出vi

在命令方式下可有几种方法退出vi编辑器:

wq把编辑缓冲区的内容写到你编辑的文件中,退出编辑器,回到Linuxshell下。

ZZ仅当作过修改时才将缓冲区内容写到文件上。

x与:

ZZ相同。

q!

强行退出vi。

感叹号(!

)告诉vi,无条件退出,丢弃缓冲区内容。

这样,先前对该文件所做的修改或输入都被抛弃。

b.新建文件

<1>在Linux提示符$之后,输入命令:

vimyfile,然后按〈Enter〉键。

<2>输入插入命令i(屏幕上看不到字符i)。

<3>然后,输入以下文本行:

TotheonlywomanthtI,

Formangyearyouhavebeenmywife

<4>发现这两行有错,进行改正:

按〈Esc〉键,从插入方式回到命令方式。

按光标上移键,使光标移到第一行。

按光标左移键,使光标移到“tht”的第二个“t”处。

输入i(这是插入命令),然后输入a。

该行变成如下形式:

TotheonlywomanthatI,

按光标右移键,使光标移到“I”上。

我们想在“I”之后输入一个空格和单词“love”。

为此,输入附加命令“a”。

结果屏幕显示为:

TotheonlywomanthataI,

这是怎麽回事儿?

......原来是:

我们先前使用了插入命令i,至今并未用〈Esc〉键返回命令方式。

所以,输入的所有字符都作为输入文本予以显示。

<5>按〈Esc〉键,返回命令方式。

利用x命令删除错误字符。

然后,进入插入方式,输入正确字符。

<6>最后输入如下所示的文本:

TotheonlywomanthatIlove,

Formanyyearyouhavebeenmywwife

Iliveyouwichmylife

andcouldnothavepickedmuchbetter.

<7>将你编辑的文本文件存盘。

(利用:

wq命令,或者:

x命令)

<8>重新进入vi编辑程序,编辑上面的文件。

(如:

$vimyfile)

<9>在屏幕上见到myfile文件的内容。

在屏幕底边一行显示出该文件的名称、行数和字符个数:

“myfile”4lines,130characters

它仍然有错,需进一步修改。

<10>将光标移到第二行的year的r处。

输入a命令,添加字符s。

<11>按〈Esc〉,回到命令方式。

输入命令18〈Space〉(键盘输入“18”,屏幕上不会显示出来,接着再按一下空格,光标便移动了),光标移至何处?

(提示:

光标右移18个字符位置。

<12>利用取代命令r将mywwife改为mywife。

<13>将光标移至第三行。

输入新行命令O(大写字母),屏幕上有什麽变化?

(注意:

输入命令时,vi应处于命令模式)(提示:

光标移至上一行(新加空行)的开头。

<14>输入新行的内容:

We'vebeenthroughmuchtogether

此时,vi处于哪种工作模式?

(提示:

插入模式)

<15>按〈Esc〉,回到命令方式。

将光标移到第四行的live的i字母处。

利用替换命令s将i改为o。

<16>在第四行的you之后添加单词dearly。

将wich改为with。

<17>修改后的文本是以下内容:

TotheonlywomanthatIlove,

Formanyyearsyouhavebeenmywife

We'vebeenthroughmuchtogether

Iloveyoudearlywithmylife

andcouldnothavepickedmuchbetter.

将该文件存盘,退出vi。

<18>重新编辑该文件。

并将光标移到最后一行的have的v字母处,使用d$命令将v至行尾的字符都删除。

<19>现在想恢复17步的原状,怎麽办?

(提示:

使用复原命令u)

<20>使用dd命令删除第一行;将光标移至through的u字母处,使用C(大写字母)命令进行修改,随便乱输一串字符。

将光标移到下一行的开头,执行5x命令,结果是什么?

(提示:

删掉从光标处开始的5个字符)然后执行重复命令(.),结果是什么?

(提示:

再删掉从光标处开始的5个字符)

<21>屏幕内容乱了!

现在想恢复17步的原状,怎麽办?

(提示:

不写盘,强行退出vi)能用u或U命令恢复屏幕原状吗?

 (提示:

可以)

实验结果及讨论:

1、比较Linux和Windows的文件目录结构有哪些相同和异同。

2、Linux的可执行文件通常放在哪个目录中?

写出该目录的路径。

3、谈谈你今天上实验课的收获,存在的问题或疑问。

如果有实验内容以外的发现也可谈谈。

(字数不限)

注意:

写实验报告时,实验步骤不一定要全抄,可选重要的。

但实验目的、实验内容以及实验步骤中提出的问题及答案一定要写。

实验二嵌入式开发环境及makefile

实验目的:

掌握嵌入式开发环境的搭建及makefile文件的编写。

实验原理:

绝大多数的 Linux 软件开发都是本机(HOST)开发、调试, 本机运行的方式。

这种方式通常不适合于嵌入式系统的软件开发,因为对于嵌入式系统的开发,没有足够的资源在本机(即板子上系统)运行开发工具和调试工具。

通常的嵌入式系统的软件开发采用一种交叉编译调试的方式。

交叉编译调试环境建立在宿主机(即一台 PC 机)上,对应的开发板叫做目标板。

运行 Linux 的 PC(宿主机)开发时使用宿主机上的交叉编译、汇编及连接工具形成可执行的二进制代码(这种可执行代码并不能在宿主机上执行,而只能在目标板上执行),然后把可执行文件下载到目标机上运行。

makefile文件描述了整个工程的编译、连接等规则。

它指引make命令按照对应的要求完成整个工程的编译、连接,生成可执行文件。

实验内容一:

交叉编译环境安装

1、arm-linux-gcc的安装

(1)解压 arm-linux-gcc-4.5.1.tar.bz2(该步骤已完成,到对应位置查看该文件夹是否存在)

复制 arm-linux-gcc-4.5.1.tar.bz2到home

#tar-jxvfarm-linux-gcc-4.5.1.tar.bz2  

解压过程需要一段时间,解压后的文件形成 home/opt/下的文件夹,进入home/opt/文件夹,将4.5.1文件夹拷贝到/opt/下

现在交叉编译程序集都在/opt/4.5.1/bin下面了

(2)修改环境变量,把交叉编译器的路径加入到PATH。

修改/etc/profile文件

在最后加上:

exportPATH=$PATH:

/opt/4.5.1/bin

exportPATH

(如果不能编辑,先修改相关文件的权限使用chmod命令。

保存退出(以上操作用到了那些命令?

(3)立即使新的环境变量生效,不用重启电脑:

对应方法:

#source/etc/profile(有何输出?

(4)检查是否将路径加入到PATH:

#echo$PATH

显示的内容中有/opt/4.5.1/bin,说明已经将交叉编译器的路径加入PATH。

至此,交叉编译环境安装完成。

(5)测试是否安装成功:

首先查看bin目录下可执行文件,某些版本中或许不是arm-linux-gcc

运行arm--linux-gcc–v(查看输出结果)

实验内容二:

MINICOM的配置(如虚拟机无串口,添加一个新串口为物理串口)

输入minicom-s 进入minicom配置界面,

选择Serialportsetup,进入端口设置界面,修改以下几个值:

A---------SerialDevice:

/dev/ttyS0 (端口号使用串口1)

E---------BPS/par/bits :

/1152008N1 (波特率)

F,E硬件流软件流都改为NO,若要使用PC机的串口2来连接板子,则将A选项中的ttyS0改为ttyS1。

选好后按Esc键,并选择Savesetupasdf1保存配置。

配置完成后用连接PC机跟开发板的串口线,启动开发板,输入minicom即可出现启动信息。

(我们用的机器已经配好,大家注意查看上面的配置),下面涉及到开发板的操作都是在minicom中进行的。

实验内容三:

配置NFS服务器

1、修改虚拟机、开发板ip地址使它们与主机在同一网段

编辑网卡配置文件主机:

vi /etc/sysconfig/network-scripts/ifcfg-eth0 ,开发板一般是etc下的eth0-settings文件。

注意:

开发板只需要修改IP地址信息,其他部分不要乱修改!

虚拟机ifcfg-eth0文件示例

2、配置虚拟机网卡为主机物理网卡。

编辑--->虚拟网络编辑器,这个时候出现一个选择框,选中VMnet0,在下面的vmnet0的桥接模式中,桥接到下拉框中选择物理网卡名称就可以。

然后在虚拟机--设置--网络适配器中选桥接模式,复制物理网络连接状态。

3、重启虚拟机网络服务servicenetworkrestart、重启开发板。

4、ping测试连通性。

5、防火墙设置

1)永久性关闭

lokkit--disabled

2)即时生效,重启后失效

service方式

开启:

serviceiptablesstart 

关闭:

serviceiptablesstop

iptables方式

查看防火墙状态:

/etc/init.d/iptablesstatus

暂时关闭防火墙:

/etc/init.d/iptablesstop

重启iptables:

/etc/init.d/iptablesrestart

使用任意上面方法关闭防火墙

6、确认并安装nfs服务依赖软件包

一般nfs服务器要提供服务,必须启动inet,nfs,mount,portmap(RHEL5.5及以下版本)或rpcbind(RHEL6以上版本)这些守护进程并保持在后台运行。

在使用nfs共享文件之前,我们应该首先确认有没有安装这些应用程序,如果没有,则从安装盘中找到它们并安装。

下面显示我们在安装系统时已经显示了安装了nfs服务相关软件。

以上程序注意前面的名称应一致,后面的版本号则可能不同。

如没有对应文件可加载rhel光盘查找对应安装包,进行安装。

rpm –ivh***.rpm

7、修改nfs的配置文件

修改nfs的配置文件/etc/exports,设置需要共享的文件夹访问路径

/home/nfs 192.168.1.*(rw,insecure,no_root_squash,no_all_squash)(ip地址根据自己主机及开发板情况设置)这里的访问IP设置的是192.168.1.0~192.168.1.255。

NFS服务的配置文件为 /etc/exports,这个文件是NFS的主要配置文件,不过系统并没有默认值,所以这个文件不一定会存在,可能要使用vim手动建立,然后在文件里面写入配置内容。

/etc/exports文件内容格式:

<输出目录>[客户端1选项(访问权限,用户映射,其他)][客户端2选项(访问权限,用户映射,其他)]

a.输出目录:

输出目录是指NFS系统中需要共享给客户机使用的目录;

b.客户端:

客户端是指网络中可以访问这个NFS输出目录的计算机

客户端常用的指定方式

∙指定ip地址的主机:

192.168.0.200

∙指定子网中的所有主机:

192.168.0.*

∙指定域名的主机:

∙指定域中的所有主机:

*

∙所有主机:

*

c.选项:

选项用来设置输出目录的访问权限、用户映射等。

NFS主要有3类选项:

访问权限选项

∙设置输出目录只读:

ro

∙设置输出目录读写:

rw

用户映射选项

∙all_squash:

将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnobody);

∙no_all_squash:

与all_squash取反(默认设置);

∙root_squash:

将root用户及所属组都映射为匿名用户或用户组(默认设置);

∙no_root_squash:

与rootsquash取反;

∙anonuid=xxx:

将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx);

∙anongid=xxx:

将远程访问的所有用户组都映射为匿名用户组账户,并指定该匿名用户组账户为本地用户组账户(GID=xxx);

其它选项

∙secure:

限制客户端只能从小于1024的tcp/ip端口连接nfs服务器(默认设置);

∙insecure:

允许客户端从大于1024的tcp/ip端口连接服务器;

∙sync:

将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性;

∙async:

将数据先保存在内存缓冲区中,必要时才写入磁盘;

∙wdelay:

检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率(默认设置);

∙no_wdelay:

若有写操作则立即执行,应与sync配合使用;

∙subtree:

若输出目录是一个子目录,则nfs服务器将检查其父目录的权限(默认设置);

∙no_subtree:

即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率;

8、重新启动rpcbind或者portmap和nfs服务

9、测试nfs

192.168.1.188:

/tftp是服务器地址及目录,/mnt/nfs是开发板目录,以上参数根据自己主机地址及目录修改

客户机:

服务器:

实验内容四:

makefile的编写

关于makefile的编写课堂上已进行了详细讲解,此处不在赘述。

请编写以下源程序,并编写makefile完成编译、连接及可执行文件和.o文件的删除工作。

主程序:

#include

intadd(inta,intb);

intmain(void)

{

intc;

c=add(1,2);

printf("c=%d\n",c);

return0;

}

cal.c文件

#include

intadd(inta,intb)

{

returna+b;

}

实验三进程相关应用程序设计

实验目的:

掌握常用进程命令的使用并能够进行相关程序设计。

实验原理:

进程操作是linux下c编程的常用操作,也是一个难点,常用函数只要有如下几个:

execl(执行文件)

  相关函

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1