您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 汕头大学嵌入式实验一
实验一Linux的基本操作姓名:学号:时间:2014/11/1地点:C座305目的:1熟悉Linux基本命令与文件目录系统2全屏幕编辑器的使用3Shell脚本编程实验4GDB调试程序4.Makefile设备:PC机,虚拟机Linux系统,一个U盘实验内容:一.完成下列操作,并将执行过程和运行结果附上。1)建立目录/home/学号2)将/arm2410cl/exp/basic/01_hello的目录及目录下的内容,拷贝到/home/学号下面3)查看拷贝到/home/学号下的文件的属性4)更改文件名,将文件hello.c的名字改为helloworld.c.5)在/mnt下建立目录usb6)将u盘挂载到/mnt/usb,察看u盘内容。(具体步骤如下,需要进行适当地修改)#fdisk–l;察看u盘的设备名#mount/dev/XXXX/mnt/usb(说明xxx,为u盘的设备名,根据fdisk-l显示的内容填写)#ls/mnt/usb7)将u盘的某个文件复制到/home/学号8)给虚拟机pc-linux系统设置网络地址192.168.1.2,察看网络地址9)给pc-win机设置网络地址192.168.1.10,察看网络地址10)查看网络是否通畅,在虚拟机与pc-win通信。11)在pc-win与虚拟机pc-linux通信。12)进入/home/学号/01_hello目录下13)查看hello.c文件的内容。14)将/home/学号/下的文件打包并压缩15)将/arm2410cl/gui/tools/arm-linux-gcc-3.4.1.tar.bz2解压到目录/opt下面。二.练习(vi)vim的命令,分别指出每个命令处于何种模式下。(1)进入”/home/学号”目录#cd/home/学号(2)将文件“/etc/inittab”复制到目录“/home/学号”目录下#cp/etc/inittab./(3)使用vi打开/home/学号目录下的文件inittab#vi./inittab(4)设定行号,指定设定initdefault的所在行号:setnu(底行模式)(5)将光标移到该行17enter(命令行模式)(6)复制该行内容yy(命令模式)(7)将光标移动到最后一行行首G(命令模式)(8)粘帖复制行的内容p(命令模式)(9)撤销第8步的动作u(命令模式)(10)将光标移动到最后一行的行尾$(命令模式)(11)粘帖复制行的内容p(命令模式)(12)光标移动到“si::sysinit:/etc/rc.d/rc.sysinit”21G(命令模式)(13)删除该行dd(命令模式)(14)存盘但不退出:w(底行模式)(15)将光标移动到行首1G(命令模式)(16)插入模式下输入“Hello,thisisViworld!”I(插入模式)并输入Hello,thisisviworld!(17)返回命令行模式Esc(18)向下查找字符串“0:wait”/0:wait(底行模式)(19)再向上查找字符串“halt”?halt(底行模式)(20)强制退出Vi,不存盘。:q!(底行模式)该实验的最后的结果只对“/home/学号/inittab”增加了一行复制的内容:“id:5:initdefault”三shell程序的创建与执行1)创建一个内容如下的文件,文件名为datex,将其存放在/root目录下#programdatex#showthedateinthiswayecho“Mr.$USER,Todayis:”echo‘date’echoWhishyoualuckyday!设置执行权限#chmodu+x/root/datex#ls–l/root执行程序#/root/datex使用bash命令执行程序#bash/root/datex(在不设置可执行权限时,可以这样执行)2).建立一个欢迎界面的shell程序,文件名为welcom,(函数的使用)#!/bin/bash#filename:welcomefirst(){echo“============================================”echo“Hello!Everyone!WelcomtotheLinuxWorld!”echo“============================================”}second(){echo“*****************************************************”}firstsecondsecondfirst执行#chomdu+xwelcome#./welcome四、调试器GDB的使用1.用vi编辑源代码(书p59mxl.c)#includestdio.h#defineMAX_RECORD_NUMBER10intrecord[MAX_RECORD_NUMBER]={12,76,48,62,94,17,37,52,69,32};swap(int*x,int*y){inttemp;temp=*x;*x=*y;*y=temp;}Intmain(){inti,j;for(i=0;iMAX_RECORD_NUMBER-1;i++){for(j=MAX_RECORD_NUMBER-1;ji;j--)if(record[j]record[j-1])swap(&record[j],&record[j-1]);}for(i=0;iMAX_RECORD_NUMBER-1,i++)printf(“%d”,record[i]);printf(“\n”);return1;}2.编译mxl.c文件#gcc–g–omxlmxl.c3.调mxl文件。#gdbmxl在swap处设置断点在23行设置断点查看断点信息将23行设为条件断点,条件为j=5时执行断点操作。运行程序在断点分别查看x,*x,*y的信息单步执行察看temp的信息单步执行察看*x的信息删除断点1继续运行程序在条件断点处停下,看条件是否满足j=5,满足条件看record的内容五Makefile文件的编写1)建立文件。五个文件分别是main.c、display1.h、display1.c、display2.h、display2.c,具体的代码如下:#vimmain.c#includestdio.hintmain(intargc,char**argv){display1(hello);display2(hello);}#vimdisplay1.hvoiddisplay1(char*print_str);#vimdisplay2.hvoiddisplay2(char*print_str);#vimdisplay1.c#includedisplay1.hvoiddisplay1(char*print_str){printf(Thisisdisplay1print%sn,print_str);}#vimdisplay2.c#includedisplay2.hvoiddisplay2(char*print_str){printf(Thisisdisplay2print%sn,print_str);}(1)如果上述文件在同一个目录,请编写Makefile文件。#vimMakefileCC=gcc//CC=/opt/host/armv4l/bin/armv4l-unknown-linux-gcc(交叉编译)all:main.odisplay1.odisplay2.o$(CC)main.odisplay1.odisplay2.o-omainsmain.o:main.c$(CC)-cmain.c-omain.odisplay1.o:display1.cdisplay1.h$(CC)-cdisplay1.c-odisplay1.odisplay2.o:display2.cdisplay2.h$(CC)-cdisplay2.c-odisplay2.oclean:rm*.omains(2)用$@,$,$^简化上面的Makefile文件。(3)执行make
本文标题:汕头大学嵌入式实验一
链接地址:https://www.777doc.com/doc-3554369 .html