嵌入式编程技术实验指导.docx
- 文档编号:25833143
- 上传时间:2023-06-15
- 格式:DOCX
- 页数:77
- 大小:5.09MB
嵌入式编程技术实验指导.docx
《嵌入式编程技术实验指导.docx》由会员分享,可在线阅读,更多相关《嵌入式编程技术实验指导.docx(77页珍藏版)》请在冰豆网上搜索。
嵌入式编程技术实验指导
嵌入式编程技术实验
实验指导
2015~2016学年度第一学期
课程名称学时学分32学时
专业班级
授课教师
院(系)部
实验一Linux系统安装及认识
第一步VMware下安装Ubuntu10.04
1.安装VMware
VMware和普通软件安装一样,这里不再赘述
2.下载Ubuntu10.04的镜像文件
Ubuntu官方下载地址:
3.VMware下安装Ubuntu10.04
打开虚拟机软件,如下图:
每新建分区后继续点击“空闲”行,之后点击“添加”按钮
到这里就算安装Ubuntu成功结束了,但是在开发之前还要进行一些系统的升级:
1)点击“System”——“Administration”——“SoftwareSources”——“输入密码”——“Downloadfrom”——“Serverfor中国——Other…——中国——”——“ChooseServer”——“Close”——“Reload”
2)点击“System”——“Administration”——“LanguageSupport”——“Update”
3)点击“System”——“Administration”——“UpdateManager”——“Check”
——“InstallUpdates”
实验2Linux基础命令--系统管理
一、实验目的
1.学会不同Linux用户登录的方法。
2.掌握常用Linux命令的使用方法。
3.了解Linux命令中参数选项的用法和作用。
二、实验工具与设备
已安装Linux操作系统的计算机。
三、实验预备知识
1.Linux命令的执行
可以在Linux命令提示符下,直接输入Linux命令,然后按回车键。
如果命令不在缺省路径,需要输入命令和完整的路径。
2.Linux命令区分大小写字母
3.缺省路径:
默认的查找执行文件的路径。
每个用户登录时都有缺省路径,若输入命令不指定路径,则在缺省路径中的所有路径中按顺序检查与命令相关联的文件。
4.文件和目录操作命令
查看文件命令(ls)、显示文件内容命令(cat)、文件复制命令(cp)、文件改名命令(mv)、删除文件命令(rm)、改变当前目录命令(cd)、显示当前目录命令(pwd)、建立子目录(mkdir)、删除子目录(rmdir)、修改访问权限(chmod)、链接(ln)、文件查找(find)和内容查询(grep)。
5.用户和系统管理操作命令
用户和系统管理操作命令主要包括登录和注销命令(login和logout)、添加和更改用户(useradd)、修改用户密码命令(passwd)和关机命令(shutdown)。
6.其他操作命令
清屏命令(clear),显示日期、时间和月历命令(date),获取注册信息命令和查看命令帮助信息命令(man,help)等。
Linux的命令很多,用法也很灵活,熟练掌握这些命令不可能通过一两个实验就能完成,需要大量反复的练习。
四、实验内容和步骤
1.查看文件与目录
用以下命令查看文件与目录:
ls/usr/bin
问题:
执行以上三个命令,你看到了几种类型的文件?
结果中出现几种颜色的字符?
ls–l
ls-ail
问题:
以上两个命令结果区别在哪里?
2.显示文件内容命令(cat,head,tail)
首先在系统中使用文本编辑软件创建文件text1(目录为/root下),并在文件中写入5行字符,然后执行以下命令
cattext1
head–n3text1
tail-n3text1
问题:
以上三个命令的作用分别是什么?
3.文件复制命令(cp)
cptext1b
cptext1/temp
cp–r/root/*/temp(带目录复制)
ls/temp(查看操作结果)
4.文件改名命令(mv):
了解mv命令的功能和使用方法,并注意各命令的区别:
mvbnewtext
mvnewtext/home
问题:
以上两个命令的作用分别是什么?
5.删除文件命令(rm)
rmnewtext
6.改变当前目录命令(cd)和显示当前目录命令(pwd)
cd/root
cd..(返回上一级目录)
cd(返回到用户目录内)
pwd(显示当前目录在文件系统层次中的位置)
7.建立子目录命令(mkdir)
在用户目录下创建如图4所示的目录结构。
mkdira1
cda1
mkdira2
mkdirb2
……
目录X:
登陆用户主目录
图1建立目录结构
8.删除子目录命令(rmdir)
在图1所建立的目录结构中,删除a1和b1目录。
命令如下:
rmdir/home/X/b1
rm–r/home/X/a1
rm–rf/home/X/a1
问题:
选项-r和-f的作用是什么
9.添加用户命令
以root用户登录后,用adduser命令为新用户创建账号。
操作方法:
在root账号提示符下输入命令adduser,按系统提示依次输入新账号的名称及口令等信息,即可创建一个新账号。
10.修改用户密码命令(passwd)
用passwd命令可以修改用户口令。
由于用户口令必须由用户本人设置,因此,用passwd命令修改的是当前用户的口令。
输入passwd命令后,系统提示用户输入旧口令,检验通过后才提示输入新口令。
问题:
请将9实验中创建的用户lucy口令重新设置为123456,请写出过程或者方法
11.转换用户
一般情况下,登录其他账号必须退出当前的用户账号。
在Linux中,可以在不退出当前账号的情况下登录另一个用户,并可用su命令在用户间进行转换。
执行su命令时,系统提示用户输入口令。
若输入的口令不正确,程序将给出错误信息后退出。
su命令的格式:
su[用户名]
#su
命令作用:
系统默认为转换到超级用户(root用户)。
问题:
将当前用户转换为用户testuser,再转换回root,请问两个转换过程有什么区别?
12.链接命令(ln)
首先在/root下创建text1文件,创建/home/X/b1目录(如前面题目已经创建此文件和目录则不用重复操作)
ln/root/text1/home/X/b1
ls/root
ls/home/X/b1
以上两个命令为查看文件text1信息,然后使用rm删除文件后,观察它在另一个目录的存在情况:
rm/home/X/b1/text1
ls/root/
问题:
rm删除链接文件了吗?
ln命令与cp命令的区别是什么?
创建sun.txt,为sun.txt创建其硬链接sun002.txt。
然后看一下sun.txt和sun002.txt的属性的变化;
[root@localhost~]#touchsun.txt
[root@localhost~]#ls-lisun.txt
2408263-rw-r--r--1rootroot2904-2221:
02sun.txt
[root@localhost~]#lnsun.txtsun002.txt
[root@localhost~]#ls-lisun*
问题:
使用ls命令查看到的sun*信息共同点是什么?
用以下命令在/root目录下创建text1文件的符号链接,命令如下:
[root@localhostroot]#ln-stext1text002
[root@localhostroot]#ls-litext1text002
2408274-rw-r--r--1rootroot2904-2221:
53text1
2408795lrwxrwxrwx1rootroot1504-2221:
54text002—>text1
问题:
使用ls命令查看到的text1,text002信息区别是什么?
如果同样执行删除命令,删除text1,还可以在访问text002吗?
13.权限管理命令(chmod)
chmod:
改变文件包括目录文件(符号链接文件除外)的访问许可。
格式:
chmod [选项] 文件和目录列表
#touchlinuxsir007.txt
#touchlinuxsir008.txt注:
创建文件;
#ls-lhlinuxsir007.txtlinuxsir008.txt
-rw-r--r--1rootroot004-2320:
11linuxsir007.txt
-rw-r--r--1rootroot004-2320:
11linuxsir008.txt
#chmodu+x,og+xlinuxsir008.txt
#chmod755linuxsir007.txt
#ls-lhlinuxsir007.txtlinuxsir008.txt
-rwxr-xr-x1rootroot004-2320:
11linuxsir007.txt
-rwxr-xr-x1rootroot004-2320:
11linuxsir008.txt
问题:
请写出两种方法,修改文件text1的权限为属主用户可读可写可执行,属组用户可读可写,其他用户不可读,不可写,不可执行。
14查看命令帮助信息命令(man,help)
联机帮助命令。
manls
ls–help
15.文件搜索命令
通过文件名查找
#find/root-name“httpd.conf”–print
根据部分文件名查找
#find/root–name“*http*”-print
根据文件的特征查询
例如,知道一个文件尺寸小于为2500bytes
#find/etc–size2500b–print
问题:
在系统中查找文件名字包含字母“t”的所有文件
16.mv命令
问题:
请使用mv命令修改文件text1的名字为hello,然后讲该文件移动到/home/testuser中
17.请自己联系使用课本中其他命令。
五、实验总结
1.写出实验报告
2.练习题
将图a所示的目录结构变为图b所示的目录结构。
请用最少的命令完成操作,并写出所使用的命令(图中方框表示目录,圆圈表示文件)。
图a 目录结构图图b 目录结构图
实验报告
1.实验题目
2.实验目的
3.实验内容
此处请回答以上实验内容中的问题部分(红色字符)
4.实验小结
此处请写出实验中遇到的问题,并完成练习题
实验三常用命令及工具实验
【实验目的】
1、了解minicom配置串口通信参数的过程,掌握利用minicom进行传输文件方法
2、了解网络文件系统nfs的配置,掌握利用nfs进行文件的传输和异地运行目标板程序
3、掌握ftp的使用方法
【实验步骤】
一、Minicom的使用
第1步首先在桌面上点击打开vmware软件,并开启虚拟机,进入linux系统,如下所示:
图1打开虚拟机
第2步在虚拟机当中用利用鼠标右键,单击打开终端,如下所示:
图2打开linux终端
第3步在终端当中输入minicom-s命令,如下所示:
[root@localhostroot]#minicom–s
图3输入minicom–s打开minicom视图
第4步在如下图4当中,选择SerialPortSetup菜单选项,并按照如下图5、6、7的提示,来对串口进行配置,在图5当中按A,进行配置串口,在图6当中按E和I,对串口进行波特率进行配置,在图7当中,对串口硬件流进行配置,在如下所示。
图4选择SerialPortSetup配置菜单
有关串口通信选项的含义:
"Filenamesandpaths":
选择需要传输的文件和路径
"Filetransferprotocols":
选择传输文件的通信协议
"Serialportsetup":
设置串口通信参数
"Savesetupasdfl":
将设置好的各项参数保存为dfl
"Savesetupas":
将设置好的各项参数保存为自定义的文件名
"Exit":
退出返回到minicom设置好后的终端
"ExitfromMinicom":
从minicom命令中退出返回Linux终端
将光标移到"Serialportsetup",按回车键会弹出串口通信参数的配置菜单。
1)串口通信口的选择:
(A-SerialDevice)
接"A"键把光标移动到SerialDevice。
如果串口线连在PC机的串口1上,则把Serialdevice设置为/dev/ttyS0。
如果连在串口2上,则把Serialdevice设置为/dev/ttyS1,然后按下回车键。
图5配置SerialDevice
2)串口参数的设置(E-Bps/Par/Bits)
按"E"键来设置通信波特率、数据位、奇偶校验位和停止位。
可以通过按下不同的键来设置通信参数。
例如XSBase270平台需要把波特率设为115200,数据位设为8,奇偶校验位设为无,停止位设为1。
可以分别通过按"I"、"V"、"L"、"W"键设置波特率、数据位、奇偶校验位和停止位。
设置完后按"Esc"返回。
图6配置串口波特率
3)数据流的控制选择(F-HardwareFlowControl、G-SoftwareFlowControl)
按"F"键可以完成硬件流控制切换,即完成"Yes"与"No"之间的切换。
按"G"键完成软件流控制切换,即完成"Yes"与"No"之间的切换。
下图显示的是串口配置好的后完整信息。
图7硬件流控制图
第5步配置完成后,按下“Esc”键,将会出现下图的配置菜单。
选择“Savesetupasdfl”按ENTER键来保存,当配置保存后,按下“Esc”键完成设置。
图8串口配置完成选项
第6步当minicom窗口出现后,重起XSBase270将会看到启动信息。
如果没有出现启动信息,请检查mincom的设置和线缆连接是否有错。
图9minicom配置成功选项视图
第7步利用串口通信文件传输
在与目标板连接后,可以通过串口下传一些文件到目标板,具体操作步骤如下:
1)在与目标正确连接后,进入[root@51board~],按下CTRL+A键后,再按Z键,系统调出minicom的命令选项菜单;
图10minicom帮助菜单选项
其中Sendfiles和Receivefiles两项负责文件数据的传输,所用命令使用热键进行激活。
如上传文件只需按S键。
2)当向目标板上传文件时,按S键,系统弹出串口通信协议选项,利用方向键选中zmodem传输协议,按回车键,进入文件选择菜单。
图11文件传输配置视图
3)文件传输
文件选择菜单弹出后,利用空格键选中需要上传的文件,一次可以选择多个文件,选好需要传输的文件后按回车键,便可以进行文件数据传输。
当数据传输完毕,系统会弹出传输完毕提示菜单(如下图所示)。
图11文件传输进程视图
二、网络文件系统nfs的配置
网络文件系统nfs可以将PC机上的一部分文件系统作为目标机的资源,这样可以弥补目标机存储空间的不足。
在使用网络文件之时,应对网络文件配置进行一定的设置。
第1步、利用mkdir命令,在Linux主机端的终端命令行模式下,创建一个nfs目录(在mnt目录下),并利用vi命令打开/etc/exports文件,添加如图13所示的内容,如下所示:
[root@localhostroot]#mkdir/mnt/nfs
[root@localhostroot]#vi/etc/exports
图12新建/mnt/nfs文件视图
将主机的/mnt/nfs目录设置为能够通过网络文件系统访问可读写的目标。
/mnt/nfs(rw,no_root_squash)
图13编辑/etc/exports内容
第2步、重新启动nfs
[root@localhostroot]#servicenfsstop
[root@localhostroot]#servicenfsstart
图14启动NFS服务
第3步、目标机设置(假设主机的IP地址为192.168.0.99)
[root@51Board~]#portmap
[root@51Board~]#mount–tnfs192.168.0.99:
/mnt/nfs/mnt/usb
图15挂载NFS文件系统
上述设置实现将主机上的/mnt/nfs目录挂载到目标机的/mnt目录下,并作为目标机文件系统的一部分。
这时,可以将需要传输的文件或需要运行的程序保存在主机的/mnt/nfs目录下,然后在目标机对主机/mnt/nfs上的文件进行运行或复制等相应的处理。
三、ftp文件传输
文件传输协议ftp(FileTransimitProtocol)利用以太网实现文件的传输。
ftp相对于串口传输文件来说,传输速度快,所以上传比较大的文件一般采用ftp来实现,需要上传的文件应保存到主机的/var/ftp/pub目录下。
下面具体介绍ftp文件传输过程(假设主机的IP地址为192.168.0.100)。
(ftp的具体其他用法可以在linux终端提示符输入manftp查看)。
第1步、在目标板的调试终端输入ftp命令
[root@51Board~]#ftp192.168.0.100
第2步、输入用户名和密码:
用户采用匿名登陆网络(anonymous),无需输入密码。
如果用户需要采用其他的用户名登陆,必须修改(脚本)
第3步、当用户名和密码都正确后,在调试终端显示登陆成功信息和ftp提示符,如图所示。
图16登录192.168.0.100服务器
第4步、文件传输:
ftp提示符下利用cd命令转到主机的pub目录下,利用get命令上传需要传输的文件。
假设需要上传的文件为facedect(确保文件保存在主机的/var/ftp/pub目录下)
ftp>getfacedect
第5步、文件传输完毕后,ftp输出成功信息和被传输文件的字节数。
(如图所示)
图17获取ftp数据成功提示信息视图
实验四、Vi文本编辑器和GCC编译器的使用
一、实验目的:
1、掌握Linux系统终端方式使用的编辑器vi;
2、学习vi的启动、存盘、文本输入、现有文件的打开、光标移动、复制/剪贴、查找/替换等命令。
3、掌握GCC编译器的使用。
二、实验内容:
1、用Vi文本编辑器对你的计算机进行网络配置。
网络配置文件有:
文件1:
/etc/sysconfig/network;
文件2:
/etc/sysconfig/network-scripts/ifcfg-eth0;
文件3:
/etc/resolv.conf;
要求:
在图形界面下配置,看相应配置文件有没有被修改;修改配置文件看图形界面是否被修改。
2、将显示器配置文件(自己查),复制到//home目录下(一定要复制,对副本进行操作,否则出现异常后果自负),并重命名为i.打开i文件,设置行标,将第89行至第96行的内容复制到第116行,并将第62行至第86行的Option替换为type.并将整篇文章中的Section替换成choose.将修改后的文件另存为j.并将j复制到/usr目录下,并重命名为k.
3、在vi中编写一个abc.c程序,对程序进行编译、连接、运行。
具体如下:
[student@enjoyabc]$viabc.c
main()
{
inti,sum=0;
for(i=0;i<=100;i++)
{
sum=sum+i;
}
printf("\n1+2+3+...+99+100=%d\n",sum);}
[student@enjoyabc]$gcc-oabcabc.c
[student@enjoyabc]$ls
abcabc.c
[student@enjoyabc]$./abc
1+2+3+...+99+100=5050
[student@enjoyabc]$
[student@enjoyabc]$
4、从如上内容的基础上总结vi的启动、存盘、文本输入、现有文件的打开、光标移动、复制/剪贴、查找/替换等命令。
5、编写一个程序解决“鸡兔同笼”问题。
参考程序:
#include
main()
{
inth,f;
intx,y;
printf("请输入头数和脚数:
");
scanf("%d,%d",&h,&f);
x=(4*h-f)/2;
y=(f-2*h)/2;
printf("鸡=%d兔子=%d",x,y);
}
运行结果:
请输入头数和脚数:
18,48
鸡=12兔子=6
实验五Makefile及Bootloader实验
【实验目的】
1、了解Makefile的基本概念和基本结构
2、初步掌握编写简单Makefile的方法
3、了解递归Make的编译过程
4、初步掌握利用GNUMake编译应用程序的方法
5、了解BootLoader的基本概念和框架结构
6、了解BootLoader引导操作系统的过程
7、掌握bootloader程序的编译方法
8、掌握BootLoader程序的使用方法
【实验原理】
在Linux或Unix环境下,对于只含有几个源代码文件的小程序(如hello.c)的编译,可以手工键入gcc命令对源代码文件逐个进行编译;然而在大型的项目开发中,可能涉及几十到几百个源文件,采用手工键入的方式进行编译,则非常不方便,而且一旦修改了源代码,尤其头文件发生了的修改,采用手工方式进行编译和维护的工作量相当大,而且容易出错。
所以在Linux或Unix环境下,人们通常利用GNUmake工具来自动完成应用程序的维护和编译工作。
实际上,GNUmake工具通过一个称为Makefile的文件来完成对应用程序的自动维护和编译工作。
Makefile是按照某种脚本语法编写的文本文件,而GNUmake能够对Makefile中指令进行解释并执行编译操作。
Makefile文件定义了一系列的规则来指定哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作。
GNUmake工作时的执行步骤如下:
1、读入所有的Makefile。
2、读入被include的其它Makefile。
3、初始化文件中的变量。
4、推导隐晦规则,并分析所有规则。
5、为所有的目标文件创建依赖关系链。
6、根据依赖关系,决定哪些目标要重新生成。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 编程 技术 实验 指导