




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、专业:计算机科学与技术班级:14级嵌入式方向指导教师:张文哲实验一 linux的安装实验目的:了解vmware的使用;掌握vmware下系统安装的方法;掌握linux系统的安装过程。实验原理:vmware workstation是一款功能强大的桌面虚拟计算机软件,提供用户可在单一的桌面上同时运行不同的操作系统,和进行开发、测试 、部署新的应用程序的最佳解决方案。vmware workstation可在一部实体机器上模拟完整的网络环境,以及可便于携带的虚拟机器,其更好的灵活性与先进的技术胜过了市面上其他的虚拟计算机软件。linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作、文件
2、存取、目录操作、进程管理、文件权限设定等。所以,在linux系统上工作我们首先必须会安装linux系统,然后进一步理解linux系统。实验内容一:vmware的使用1. 打开vmware workstation-新建虚拟机(或在文件菜单选择新建)2. 22 新建虚拟主机向导-下一步3. 34. 43下一步到虚拟机名称选择4这一步设置好后一直下一步到磁盘容量5 磁盘大小任意,注意图中标记 下一步-硬件定义完成后虚拟机就已经定义好了,下一步是安装系统。6选择iso镜像路径,如果用光盘安装这步可以省略下面启动虚拟机即可安装操作系统了。操作系统的安装过程和在真正的系统中安装是相同的。首先确定光驱正常。
3、如果虚拟机的光驱使用的是真实机器的光驱,就把操作系统的安装光盘放在真实机器的光驱中;如果设置虚拟机光驱使用的是真实机器硬盘上的iso文件,就在刚才的光驱设置的界面中设定虚拟机光驱所使用的iso文件,然后虚拟机中点击开机。7 开机后就象在真正的机器中安装操作系统一样了,首先是硬件自检的过程在,启动的过程中鼠标在虚拟机中点击就激活了虚拟机的窗口是当前窗口,也一样可以按f2键进入虚拟机的cmos设置,如图是进入虚拟机cmos的截图:cmos的操作和真实的机器一样,最常用的选项调整是选择启动的设备,比如从硬盘,光驱或者软驱,usb启动等等。设定好虚拟机的光驱后就可以从光盘开始安装操作系统了,安装的过程
4、和真实机器中安装过程一样。实验内容二:linux的安装1. 放入安装盘,从光驱启动,就看见以下画面;ps:直接按回车进行图形界面安装,你如果不选择30秒后默认进行图形化界面安装2. 22 用移动键选择“skip”-进行跳过检查,这里就不做图说明;3下面图片依次是:下一步-安装的语言“我们是中国人,当然用简体中文”-选择键盘配置“us”-选择鼠标类型“ps2”下面正式开始配置与安装linux系统了;这里我们选择安装个人桌面,其他等以后再详讲如果自动分区就出现这样界面现在列出了所有硬盘上的分区挂载点选根分区“/”即可,linux不支持fat分区,所以我们选择ext3或ext2注意:这里要建了交换分
5、区才能进行下一步安装点击格式化后,系统开始对硬盘进行格式挂操作3选择默认进入的系统 dhcp设置,建议使用默认3. 6防火墙设置,一般使用 中级4. 语言包安装,建议选中文,不然你要查看中文文档需要另外安装中文包5. 设置时区-设置root账号的密码。ps:root账户类似于windows的administrator账户,必须设置密码,但是必须记住这个密码,以后再安装软件包和设置的时候需要切换到root账户进行操作!下面开始进行安装,如果你是用的cd盘的,系统会自动提示你进行换光盘,按照提示进行更换就ok;安装完成后显示下面画面,选 否 不创建引导盘.10. 重启后显示该画面进行
6、选择你要进入的系统11.12. 然后就进入我们祈祷已久的linux系统界面了,hoho13.实验结果及讨论:1、 比较linux和windows的安装哪些异同。2、 linux的可执行文件通常放在哪个目录中?写出该目录的路径。3、 谈谈你今天上实验课的收获,存在的问题或疑问。如果有实验内容以外的发现也可谈谈。(字数不限)注意:写实验报告时,实验步骤不一定要全抄,可选重要的。但实验目的、实验内容以及实验步骤中提出的问题及答案一定要写。实验二 linux 基础命令实验目的:了解linux命令的基本格式;了解linux的启动模式;掌握linux常用命令的使用。实验原理:linux提供了大量的命令,利
7、用它可以有效地完成大量的工作,如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等。所以,在linux系 统上工作离不开使用系统提供的命令。要想真正理解linux系统,就必须从linux命令学起,通过基础的命令学习可以进一步理解linux系统。不同linux发行版的命令数量不一样,但linux发行版本最少的命令也有200多个。我们把比较重要和使用频率最多的命令,进行重点练习。实验内容:1、 启动linux。首先,启动电脑进入windows操作系统,然后双击桌面上vmware workstation图标, 选择左侧栏中的linux,再点击工具栏中的“运行”按钮,启动linux。【注意】进入系
8、统界面右击桌面选择新建终端,进入命令终端,实验内容都在此窗口中完成。例如: 输入pwd指令, 查看自己所位于linux的哪个目录,写出该目录的路径,/home/stu20092、 在linux中进行以下基本操作:1) 在当前目录下新建一个名为(自己姓名首字母缩写+学号后3位数)的子目录。写出你所用的指令。(例如:mkdir abc123 )mkdir lyf446进入刚创建的子目录环境下。(提示:指令cd)2) 在刚创建的子目录下新建一个名为abc.txt的文件。写出你所用的指令。(提示:新建文件的指令是touch)touch abc.txt3) 将/目录下(即根目录下)的welcome.tx
9、t文件复制到自己的子目录下,写出你所用的指令。(注意:请自行在根目录下创建welcome.txt,并输入少量文字即可)gedit welcome.txt :文字:hello4) 写出welcome.txt文件的内容。(提示:用cat指令查看)cat welcome.txt3、 在linux中进行以下基本操作:1)进入自己的主目录。写出你使用的指令。2)运行指令: cd /usr/binls列出看到当前目录里的文件列表。思考:当前目录里的文件列表和windows有何异同。3)运行指令: cd /home/stu2009lslist.txt这时再ls,会发现目录中多了list.txt这个文件,打开
10、它查看里面的内容(用cat指令),你有什么发现?cat b list.txt4)运行以下指令,每运行一条,就ls查看当前目录内容。思考每一条指令的作用。cp list.txt dir.txt运行该指令后,当前目录里多了文件dir.txt,该指令的作用是将当前目录下的文件list.txt复制dir.txtrm list.txt运行该指令后,当前目录里少了文件list.txt.该指令的作用是将当前目录下的文件list.txt删除。mkdir mydir运行该指令后,当前目录里新增了文件mydir,该指令的作用是在当前目录下创建文件mydir.cp dir.txt mydir/ 运行该指令后,文件m
11、ydir中多了文件dir.txt.该指令是将当前目录下的文件dir.txt复制到文件mydir中。(运行这条指令后不是用ls查看,而是用ls mydir查看“mydir”目录里面的内容。) 5)尝试运行 cd /root 命令,能否成功?得到什么提示?不成功,得到:bash:cd:/root:permission denied练习给定电子文档中的命令实验结果与讨论:1、针对实验内容中的问题给出你的回答2、谈谈你今天上实验课的收获,存在的问题或疑问。如果有实验内容以外的发现也可谈谈。注意:写实验报告时,实验步骤不一定要全抄,可选重要的。但实验目的、实验内容以及实验步骤中提出的问题及答案一定要写。
12、实验三linux 下的c 编程辅助命令实验目的:掌握vi编辑器的使用;了解shell基本知识。掌握shell编程的基本方法。实验原理:vi是我们在linux中最常用的编辑器。vi是linux最基本的文本编辑工具,虽然没有图形界面编辑器那样点鼠标的简单操作,但vi编辑器在系统管理、服务器管理字符界面中,永远不是图形界面的编辑器能比的。注意:vi是linux操作系统中最经典的文本编辑器,只能是编辑字符,不能对字体、段落进行排版;它既可以新建文件,也可以编辑文件,且命令繁多。虽然vi的操作方式与其他常用的文本编辑器(如gedit)很不相同 ,但是由于其运行于字符界面,并可用于所有linux环境,目前
13、仍被经常使用。shell本身是一个用c语言编写的程序,它是用户使用unix/linux的桥梁,用户的大部分工作都是通过shell完成的。对于用户来说,shell是最重要的实用程序,深入了解和熟练掌握shell的特性极其使用方法,是用好unix/linux系统的关键。实验内容:使用vi编辑器建立、编辑、显示以及加工处理文本文件a.进入和退出vi进入vi 在系统提示符($)下输入命令vi和想要编辑(建立)的文件名(如example),便可进入vi。退出vi 在命令方式下可有几种方法退出vi编辑器:wq 把编辑缓冲区的内容写到你编辑的文件中,退出编辑器,回到linux shell下。:x 与仅当作过
14、修改时才将缓冲区内容写到文件上。:zz 相同。:q! 强行退出vi。感叹号(!)告诉vi,无条件退出,丢弃缓冲区内容。这样,先前对该文件所做的修改或输入都被抛弃。b.新建文件在linux提示符$之后,输入命令 :vi myfile,然后按enter键。输入插入命令i(屏幕上看不到字符i)。然后,输入以下文本行:to the only woman tht i,for mang year you have been my wife发现这两行有错,进行改正:按esc键,从插入方式回到命令方式。按光标上移键,使光标移到第一行。按光标左移键,使光标移到“tht”的第二个“t”处。输入i(这是插入命令),
15、然后输入a。该行变成如下形式:to the only woman that i,按光标右移键,使光标移到“i”上。我们想在“i”之后输入一个空格和单词“love”。为此,输入附加命令“a”。结果屏幕显示为:to the only woman that ai,这是怎麽回事儿?.原来是:我们先前使用了插入命令i,至今并未用esc键返回命令方式。所以,输入的所有字符都作为输入文本予以显示。按esc键,返回命令方式。利用x命令删除错误字符。然后,进入插入方式,输入正确字符。最后输入如下所示的文本:to the only woman that i love,for many year you have
16、been mywwifei live you wich my lifeand could not have picked much better.将你编辑的文本文件存盘。(利用 :wq 命令,或者 :x 命令)重新进入vi编辑程序,编辑上面的文件。(如:$ vi myfile)在屏幕上见到myfile文件的内容。在屏幕底边一行显示出该文件的名称、行数和字符个数:“myfile”4 lines,130 characters它仍然有错,需进一步修改。将光标移到第二行的year的r处。输入a命令,添加字符s。按esc,回到命令方式。输入命令18space(键盘输入“18”,屏幕上不会显示出来,接着再
17、按一下空格,光标便移动了),光标移至何处?(提示:光标右移18个字符位置。)利用取代命令r将mywwife改为my wife。将光标移至第三行。输入新行命令o(大写字母),屏幕上有什麽变化? (注意:输入命令时,vi应处于命令模式)(提示:光标移至上一行(新加空行)的开头。)输入新行的内容:weve been through much together此时,vi处于哪种工作模式? (提示:插入模式)按esc,回到命令方式。将光标移到第四行的live的i字母处。利用替换命令s将i改为o。在第四行的you之后添加单词dearly。将wich改为with。修改后的文本是以下内容:to the onl
18、y woman that i love,for many years you have been my wifeweve been through much togetheri love you dearly with my lifeand could not have picked much better.将该文件存盘,退出vi。重新编辑该文件。并将光标移到最后一行的have的v字母处,使用d$命令将v至行尾的字符都删除。现在想恢复17步的原状,怎麽办?(提示:使用复原命令u)使用dd命令删除第一行;将光标移至through的u字母处,使用c(大写字母)命令进行修改,随便乱输一串字符。将光标
19、移到下一行的开头,执行5x命令,结果是什么?(提示:删掉从光标处开始的5个字符)然后执行重复命令(.),结果是什么?(提示:再删掉从光标处开始的5个字符)屏幕内容乱了!现在想恢复17步的原状,怎麽办?(提示:不写盘,强行退出vi)能用u或u命令恢复屏幕原状吗?(提示:可以)shell俗称壳(用来区别于核),是指“提供使用者使用界面”的软件(命令解析器)。它类似于windows下的cmd.exe。它接收用户命令,然后调用相应的应用程序。shell有两种执行命令的方式:交互式(interactive):解释执行用户的命令,用户输入一条命令,shell就解释执行一条。批处理(batch):用户事先写
20、一个shell脚本(script),其中有很多条命令,让shell一次把这些命令执行完,而不必一条一条地敲命令。shell脚本和编程语言很相似,也有变量和流程控制语句,但shell脚本是解释执行的,不需要编译,shell程序从脚本中一行一行读取并执行这些命令,相当于一个用户把脚本中的命令一行一行敲到shell提示符下执行。shell初学者请注意,在平常应用中,建议不要用 root 帐号运行 shell 。作为普通用户,不管您有意还是无意,都无法破坏系统;但如果是 root,那就不同了,只要敲几个字母,就可能导致灾难性后果。打开文本编辑器,新建一个文件,扩展名为sh(sh代表shell),扩展名
21、并不影响脚本执行,见名知意就好。输入代码:#!/bin/bashecho hello world !保存为test.sh终端运行 chmod +x ./test.sh #使脚本具有执行权限./test.sh #执行脚本注意,一定要写成./test.sh,而不是test.sh。运行其它二进制的程序也一样,直接写test.sh,linux系统会去path里寻找有没有叫test.sh,用./test.sh告诉系统说,就在当前目录找。根据电子书要求实现如下shell程序实验结果与讨论:1、针对实验内容中的问题给出你的回答2、谈谈你今天上实验课的收获,存在的问题或疑问。如果有实验内容以外的发现也可谈谈。
22、注意:写实验报告时,实验步骤不一定要全抄,可选重要的。但实验目的、实验内容以及实验步骤中提出的问题及答案一定要写。实验四gcc编译器与gdb 调试器实验目的:掌握gcc编译器的使用;掌握gdb的使用方法。实验原理:gcc(gnu compiler collection)是一套功能强大、性能优秀的编程语言编译器,它是gnu计划的代表作品之一。gcc是linux平台下最常用的编译器,gcc原名为gnu c compiler,即gnu c语言编译器,随着gcc支持的语言越来越多,它的名称也逐渐变成了gnu compiler collection。在命令终端下键入gcc程序名,以及一些命令参数,就可以
23、对程序进行编译或者是其他选择的操作,以生成可执行的程序。在使用gcc编译器的时候,我们必须给出一系列必要的调用参数和文件名称。gcc编译器的调用参数大约有100多个,这里只介绍其中最基本、最常用的参数。gcc最基本的用法是gcc options filenames其中options就是编译器所需要的参数,filenames给出相关的文件名称。gcc编译器的基本选项如下表:前四项为编译的四个阶段类型说明-e预处理后即停止,不进行编译、汇编及连接-s编译后即停止,不进行汇编及连接-c编译或汇编源文件,但不进行连接-o file指定输出文件file-g生成用于调试的程序-c,只编译,不链接成为可执行
24、文件,编译器只是由输入的.c等源代码文件生成.o为后缀的目标文件,通常用于编译不包含主程序的子程序文件。-o output_filename,确定输出文件的名称为output_filename,同时这个名称不能和源文件同名。如果不给出这个选项,gcc就给出预设的可执行文件a.out。-g,产生符号调试工具(gnu的gdb)所必要的符号资讯,要想对源代码进行调试,我们就必须加入这个选项。例如当前目录下有test.c的代码,要生成可执行程序需要执行以下命令:gcc test.c -o test 其中test是可执行文件,如果省略就会生成a.out。gdb是linux下的程序调试工具,有非常强大的功
25、能。db中的命令固然很多,但我们只需掌握其中十个左右的命令,就大致可以完成日常的基本的程序调试工作。命令解释示例file 加载被调试的可执行程序文件。因为一般都在被调试程序所在目录下执行gdb,因而文本名不需要带路径。(gdb) file gdb-samplerrun的简写,运行被调试的程序。如果此前没有下过断点,则执行完整个程序;如果有断点,则程序暂停在第一个可用断点处。(gdb) rccontinue的简写,继续执行被调试程序,直至下一个断点或程序结束。(gdb) cb b b *b *d 编号b: breakpoint的简写,设置断点。两可以使用“行号”“函数名称”“执行地址”等方式指定
26、断点位置。其中在函数名称前面加“*”符号表示将断点设置在“由编译器生成的prolog代码处”。如果不了解汇编,可以不予理会此用法。d: delete breakpoint的简写,删除指定编号的某个断点,或删除所有断点。断点编号从1开始递增。(gdb) b 8(gdb) b main(gdb) b *main(gdb) b *0x804835c(gdb) ds, ns: 执行一行源程序代码,如果此行代码中有函数调用,则进入该函数;n: 执行一行源程序代码,此行代码中的函数调用也一并执行。s 相当于其它调试器中的“step into (单步跟踪进入)”;n 相当于其它调试器中的“step over
27、 (单步跟踪)”。这两个命令必须在有源代码调试信息的情况下才可以使用(gcc编译时使用“-g”参数)。(gdb) s(gdb) nsi, nisi命令类似于s命令,ni命令类似于n命令。所不同的是,这两个命令(si/ni)所针对的是汇编指令,而s/n针对的是源代码。(gdb) si(gdb) nip print的简写,显示指定变量(临时变量或全局变量)的值。(gdb) p i(gdb) p nglobalvardisplay .undisplay display,设置程序中断后欲显示的数据及其格式。例如,如果希望每次程序中断后可以看到即将被执行的下一条汇编指令,可以使用命令“display /
28、i $pc”其中 $pc 代表当前汇编指令,/i 表示以十六进行显示。当需要关心汇编代码时,此命令相当有用。undispaly,取消先前的display设置,编号从1开始递增。(gdb) display /i $pc(gdb) undisplay 1iinfo的简写,用于显示各类信息,详情请查阅“help i”。(gdb) i rqquit的简写,退出gdb调试环境。(gdb) qhelp 命令名称gdb帮助命令,提供对gdb名种命令的解释说明。如果指定了“命令名称”参数,则显示该命令的详细说明;如果没有指定参数,则分类显示所有gdb命令,供用户进一步浏览和查询。(gdb) help disp
29、lay实验内容:1、 根据下面程序test.c练习gcc和gdb的使用#include int nglobalvar = 0;int tempfunction(int a, int b) printf(tempfunction is called, a = %d, b = %d n, a, b); return (a + b);int main() int n; n = 1; n+; n-; nglobalvar += 100; nglobalvar -= 12; printf(n = %d, nglobalvar = %d n, n, nglobalvar); n = tempfunctio
30、n(1, 2); printf(n = %dn, n); return 0;gcc的使用1) 输入gcc -e test.c -o test.i 预处理2) 输入gcc -s test.i -o test.s 编译3) 输入gcc -c test.s -o test.o 汇编4) 输入gcc test.o -o test 链接5) 执行 输入 . / testgdb的使用编译时使用命令gcc test.c -g -o test 进入调试环境gdb test。gdb常用命令如下(gdb) l - l命令相当于list,从第一行开始例出原码。(gdb) b(break) 10 - 设置断点,在源程
31、序第10行处(gdb) info b(break) - 查看断点信息。(gdb) p n - 打印变量n的值,print命令简写。(gdb) n - 单条语句执行,next命令简写。(gdb) r - 运行程序,run命令简写。(gdb) c - 继续运行程序,continue命令简写。(gdb) q - 退出gdb。2.编写程序完成下面的要求,并进行编译和调试、运行根据输入的三角形的三边判断是否能组成三角形,若可以则输出它的面积和三角形的类型(等腰、等边、直角、普通三角形);否则输出“三条边不能构成三角形”。实验五:linux下的makefile实验目的:掌握makefile的结构;熟悉li
32、nux下程序编译的过程;掌握makefile文件的编写方法。实验原理:在 linux环境下使用gnu 的make工具能够比较容易的构建一个属于你自己的工程,整个工程的编译只需要一个命令make就可以完成编译、连接以至于最后的执行。不过这需要我们完成一个称为makefile 文件。makefile 文件描述了整个工程的编译、连接等规则。其中包括:工程中的哪些源文件需要编译以及如何编译、需要创建那些库文件以及如何创建这些库文件、如何最后产生我们想要的可执行文件。尽管看起来可能是很复杂的事情,但是为工程编写makefile 的好处是能够使用一行命令来完成“自动化编译”,一旦提供一个(通常对于一个工程
33、来说会是多个)正确的 makefile。编译整个工程你所要做的唯一的一件事就是在shell 提示符下输入make命令。整个工程完全自动编译,极大提高了效率。make是一个命令工具,它解释makefile 中的指令(应该说是规则)。在makefile文件中描述了整个工程所有文件的编译顺序、编译规则。makefile 有自己的书写格式、关键字、函数。像c 语言有自己的格式、关键字和函数一样。而且在makefile 中可以使用系统shell所提供的任何命令来完成想要的工作。makefile(在其它的系统上可能是另外的文件名)在绝大多数的ide 开发环境中都在使用,已经成为一种工程的编译方法。实验内容
34、:makefile文件的基本格式:单条规则target : prerequisites commandmakefile 就是这种规则的不断重复,当然最后一般会加一条不太一样的clean标签。target也就是一个目标文件,可以是object file,也可以是执行文件。还可以是一个标签(label)。prerequisites就是要生成那个target所需要的文件或是目标。command也就是make需要执行的命令。这是一个文件的依赖关系,也就是说,target这一个或多个的目标文件依赖于prerequisites中的文件,其生成规则定义在command中。说白一点就是说,prerequisi
35、tes中如果有一个或以上的文件比target文件要新的话,command所定义的命令就会被执行。这就是makefile的规则。详见见实验教程p64实验六:cross compiler 安装实验目的:了解交叉编译的相关知识;学会搭建嵌入式交叉编译环境;比较和分析i386 用编译器和arm 用编译器,了解各自的特性。制作简单的c 程序和执行文件。实验原理:交叉编译,简单地说,就是在一个平台上生成另一个平台上的可执行代码。同一个体系结构可以运行不同的操作系统;同样,同一个操作系统也可以在不同的体系结构上运行。例如x86可以运行windows和linux,而linux又可以运行在x86及arm平台上。
36、需要交叉编译的原因:因为目的平台上不允许或不能够安装我们所需要的编译器,而我们又需要这个编译器的某些特征;有时是因为目的平台上的资源贫乏,无法运行我们所需要编译器。例如在项目起始阶段,目的平台尚未建立,因此需要做交叉编译,以生成我们所需要的bootloader(启动引导代码)以及操作系统核心;其次,当目的平台能启动之后,由于目的平台上资源的限制,当我们编译大型程序时,依然可能需要用到交叉编译。对于我们用的实验平台因为它上面没有对应编译环境,所以只能采用交叉编译,也就是在普通台式机上进行程序编译,然后复制到开发板上运行。实验内容:一:交叉编译环境安装1、 arm-linux-gcc的安装(1)解
37、压arm-linux-gcc-4.5.1.tar.bz2复制arm-linux-gcc-4.5.1.tar.bz2到home#tar -jxvf arm-linux-gcc-4.5.1.tar.bz2解压过程需要一段时间,解压后的文件形成home/opt/下的文件夹,进入home/opt/文件夹,将4.5.1文件夹拷贝到/opt/下现在交叉编译程序集都在/opt/4.5.1/bin下面了(2)修改环境变量,把交叉编译器的路径加入到path。修改/etc/profile文件在最后加上:export path=$path:/opt/4.5.1/binexport path(如果不能编辑,先修改相关
38、文件的权限使用chmod命令。)保存退出(以上操作用到了那些命令?)(3)立即使新的环境变量生效,不用重启电脑:对应方法:# source /etc/profile(有何输出?)(4)检查是否将路径加入到path:# echo $path显示的内容中有/opt/4.5.1/bin,说明已经将交叉编译器的路径加入path。至此,交叉编译环境安装完成。(5)测试是否安装成功:首先查看bin目录下可执行文件,某些版本中或许不是arm-linux-gcc运行 arm-linux-gcc v(查看输出结果)二、交叉编译环境的使用输入以下程序并保存为prep.c,然后用gcc编译,运行#include i
39、nt main()printf(the file is %sn, _file_);/文件名printf(the line is %dn, _line_);/所在行printf(the function is %sn, _function_);/所在函数printf(the date is %sn, _date_);/日期printf(the time is %sn, _time_);/时间return 0;使用arm-linux-gcc -o prep prep.c编译查看结果,试着运行该程序,能运行吗,有什么样的提示?思考它应该在什么样的环境中运行。编写程序求斐波那契数列前40项之和,b=并
40、分别用gcc和arm-linux-gcc编译查看编译结果并执行。斐波那契数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、在数学上,斐波纳契数列以如下被以递归的方法定义:f(0)=0,f(1)=1,f(n)=f(n-1)+f(n-2)(n2,nn*)实验七 主机开发环境配置实验目的:了解嵌入式开发环境的组成,掌握嵌入式开发环境的搭建实验原理:绝大多数的linux软件开发都是本机(host)开发、调试,本机运行的方式。这种方式通常不适合于嵌入式系统的软件开发,因为对于嵌入式系统的开发,没有足够的资源在本机(即板子上系统)运行开发工具和调试工具。通常的嵌入式系统的软件开发采用
41、一种交叉编译调试的方式。交叉编译调试环境建立在宿主机(即一台pc机)上,对应的开发板叫做目标板。运行linux的pc(宿主机)开发时使用宿主机上的交叉编译、汇编及连接工具形成可执行的二进制代码(这种可执行代码并不能在宿主机上执行,而只能在目标板上执行),然后把可执行文件下载到目标机上运行。实验内容一:minicom 的配置(如虚拟机无串口,添加串口为物理串口)输入minicom -s进入minicom配置界面,选择serial port setup,进入端口设置界面,修改以下几个值:a-serial device:/dev/ttys0(端口号使用串口1)e-bps/par/bits:/1152
42、00 8n1(波特率)f,e硬件流软件流都改为no,若要使用pc机的串口2来连接板子,则将a选项中的ttys0改为ttys1。选好后按esc键,并选择save setup asdf1保存配置。配置完成后用连接pc机跟开发板的串口线,启动开发板,输入minicom即可出现启动信息。(我们用的机器已经配好,大家注意查看上面的配置)实验内容二:配置nfs服务器 1、修改虚拟机、开发板ip地址使它们与主机在同一网段编辑网卡配置文件主机:vi /etc/sysconfig/network-scripts/ifcfg-eth0,开发板一般是etc下的eth0-settings文件。虚拟机ifcfg-eth
43、0文件示例2、配置虚拟机网卡为主机物理网卡。编辑-虚拟网络编辑器,这个时候出现一个选择框,选中vmnet0,在下面的vmnet0的桥接模式中,桥接到下拉框中选择物理网卡名称就可以。然后在虚拟机-设置-网络适配器中选桥接模式,复制物理网络连接状态。3、重启虚拟机网络服务service network restart、重启开发板。4、ping测试连通性。5、防火墙设置 service iptables stop1)永久性关闭lokkit -disabled2) 即时生效,重启后失效service 方式开启: service iptables start关闭: service iptables st
44、opiptables方式查看防火墙状态:/etc/init.d/iptables status暂时关闭防火墙:/etc/init.d/iptables stop重启iptables:/etc/init.d/iptables restart使用任意上面方法关闭防火墙6、确认并安装nfs服务依赖软件包一般nfs服务器要提供服务,必须启动inet,nfs,mount,portmap (rhel5.5及以下版本)这些守护进程并保持在后台运行。在使用nfs共享文件之前,我们应该首先确认有没有安装这些应用程序,如果没有,则从安装盘中找到它们并安装。下面显示我们在安装系统时已经显示了安装了nfs服务相关软件
45、。以上程序注意前面的名称应一致,后面的版本号则可能不同。如没有对应文件可加载rhel光盘查找对应安装包,进行安装。rpmivh *.rpm7、修改nfs的配置文件在虚拟机添加 /home/nfs修改nfs的配置文件/etc/exports,设置需要共享的文件夹访问路径/home/nfs 192.168.1.*(rw, insecure, no_root_squash, no_all_squash)(ip地址根据自己主机及开发板情况设置)这里的访问ip设置的是55。nfs服务的配置文件为/etc/exports,这个文件是nfs的主要配置文件,不过系统
46、并没有默认值,所以这个文件不一定会存在,可能要使用vim手动建立,然后在文件里面写入配置内容。/etc/exports文件内容格式: 客户端1 选项(访问权限,用户映射,其他) 客户端2 选项(访问权限,用户映射,其他)a. 输出目录:输出目录是指nfs系统中需要共享给客户机使用的目录;b. 客户端:客户端是指网络中可以访问这个nfs输出目录的计算机客户端常用的指定方式 指定ip地址的主机:00 指定子网中的所有主机:192.168.0.* 指定域名的主机: 指定域中的所有主机:*. 所有主机:*c. 选项:选项用来设置输出
47、目录的访问权限、用户映射等。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:将远程访问的所有用户组都映
48、射为匿名用户组账户,并指定该匿名用户组账户为本地用户组账户(gid=xxx);其它选项 secure:限制客户端只能从小于1024的tcp/ip端口连接nfs服务器(默认设置); insecure:允许客户端从大于1024的tcp/ip端口连接服务器; sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性; async:将数据先保存在内存缓冲区中,必要时才写入磁盘; wdelay:检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率(默认设置); no_wdelay:若有写操作则立即执行,应与sync配合使用; subtree:若输出目录是一个子目录,则
49、nfs服务器将检查其父目录的权限(默认设置); no_subtree:即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率;8、重新启动portmap和nfs服务9、测试nfsmount o nolock 00: /home/nfs /mnt/192.168. 13.100: /home/nfs是服务器地址及目录,/mnt/是开发板目录,以上参数根据自己主机地址及目录修改客户机:服务器:实验八 内核裁剪与编译实验教程p73使用makefile递归执行,能够执行subdirs指定的子目录内的makefile。plainview plaincopy
50、1. makefile。2. subdirs=modual-amodual-bmodual-c3. 4. .phony:subdirs$(subdirs)5. subdirs:$(subdirs)6. $(subdirs):7. $(make)-c$变量subdirs,指定当前目录下,要递归编译的子目录。 .phony及subdirs目标结构,能保证递归到子目录中。编译命令:def放入linux-3.5/arch/arm/configs中,运行make arch=arm tiny4412_linux_defconfig cross_compile=arm-linux- zimage实验九 构建
51、嵌入式linux 文件系统实验教程p83实验十 制作和烧写文件系统实验目的:了解flash 存储的种类,了解常用的文件系统,掌握镜像文件的制作。实验原理:嵌入式linux中都需要构建根文件系统,构建根文件系统的规则在fhs(filesystem hierarchy standard)文档中,下面是根文件系统顶层目录。目录 内容bin 存放所有用户都可以使用的、基本的命令。sbin 存放的是基本的系统命令,它们用于启动系统、修复系统等。usr 里面存放的是共享、只读的程序和数据。proc 这是个空目录,常作为proc文件系统的挂载点。dev 该目录存放设备文件和其它特殊文件。etc 存放系统配置
52、文件,包括启动文件。lib 存放共享库和可加载块(即驱动程序),共享库用于启动系统、运行根文件系统中的可执行程序。boot 引导加载程序使用的静态文件home 用户主目录,包括供服务账号锁使用的主目录,如ftpmnt 用于临时挂接某个文件系统的挂接点,通常是空目录。也可以在里面创建空的子目录。opt 给主机额外安装软件所摆放的目录。root root用户的主目录tmp 存放临时文件,通常是空目录。var 存放可变的数据。实验内容:1 开发板设置及连接tiny4412 支持sd卡和 emmc两种启动模式,通过 s2 开关来进行切换启动模式,如下图所示:一般开发板在日常使用时,s2 应拨向 nan
53、d那一侧,除非你需要烧写系统或者要从 sd 卡启动系统。初次使用 tiny4412开发板,可参照以下步骤连接开发板: 使用交叉串口线(蓝色头)连接开发板的串口0(图中的 com0)到 pc机的串口;用5v电源适配器连接到板上的 5v输入插座(注意不要太用力,以免损坏电源插座);把音箱或者耳机的插头接入板上的绿色音频输出口;如果有液晶屏,按照数据线头的方向与开发板的lcd接口相连 (lcd接口在背面) 。2 制作用于安装系统的sd 卡 一般 tiny4412 出厂时已经安装好 android4.2.2 系统,以后要重新烧写系统,则需要 sd 卡来烧写系统,无论是通过 usb 烧写,还是 sd 卡
54、脱机烧写,都需要使用 sd 卡启动开发板来进行。 制作用于安装系统的 sd卡的本质是: 将tiny4412的bootloader (superboot4412.bin)烧写到sd卡的第一个分区, 这样以后tiny4412就可以通过 sd 卡启动了,利用 superboot 的 sd 卡脱机烧写功能,将系统烧写到 emmc,达到重新安装系统的目的。 使用 sd-flasher 工具烧写 superboot 到 sd 卡 本步骤将执行以下操作: sd-flasher.exe 会对 sd卡进行分区,第一个分区为 130m 用于存放 superboot4412,剩下的空间格式化为 friendlyarm 分区,用于存放系统文件 images。 以下是详细步骤,基于 windows7 环境: s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 河南省安阳市文源高级中学2024-2025学年高二下学期开学调研质量检测考试数学试卷
- 2025年高考历史风标训练卷1(含解析)
- 交通工程设施施工方案
- 2025年二手烟试题及答案
- 电影布景设计施工方案
- 2025年jvm面试题库及答案
- 2025年三基护理院感试题及答案
- 回廊屋面施工方案范本
- 等比数列与夹逼定理
- 高空栈道施工方案
- (一模)2025届安徽省“江南十校”高三联考地理试卷(含官方答案)
- 数学-2025届安徽省江南十校联考试题和解析
- 普通高中学生综合素质评价自我陈述报告
- 《展示设计》课件-第一章 展示设计概述
- 介入手术术中安全护理措施
- 学生常见传染病的预防
- 2024年长沙民政职业技术学院单招职业技能测试题库及答案解析
- 《森林资源资产评估》课件-森林资源经营
- 2024年中国高软化点沥青市场调查研究报告
- 护士5年职业生涯规划
- DB32T 3549-2019 医疗卫生机构医疗废物暂时贮存设施设备设置规范
评论
0/150
提交评论