嵌入式操作系统实验一建立交叉编译环境.doc
文本预览下载声明
嵌入式操作系统实验报告
姓名 王威 学号 S所在班级 系统芯片 实验名称 实验一 队友:张圣 苗亚
实验内容
准备工作工作:安装virtualbox虚拟机工具,并安装ubuntu10.10系统、增强型工具,实现共享文件夹的自动挂载。
利用crosstool提供的脚本安装和相关资源编译面向的ARM的GCC工具。
详细内容1:安装虚拟机软件和虚拟机时要完成的主要步骤有:安装virtualbox,建立一台虚拟机,分配内存和硬盘,指定共享文件夹(主机和虚拟机可共同操作),指定操作系统镜像文件路径(相当于光盘,第一次启动时安装),安装虚拟操作系统,安装增强工具包,实现共享文件夹的自动挂载。 有几点需要注意:
1、虚拟硬盘尽量分配大一些,之后再扩就比较麻烦。
2、共享文件夹不要有中文路径,不然挂载后看不到中文名称文件。
3、安装操作系统时,不能断网,需要下载各种资源,不然会异常。
详细内容2:安装gcc-4.1替换操作系统中的gcc-4.4.5,用它编译交叉编译器gcc-3.4.5和库文件glibc-2.3.2、gdb-6.5。为了完成这样的目标,我们需要安装与脚本相关的工具,需要修改crosstool中的配置文件arm.dat以指定编译的目标位arm-linux。需要修改crosstool中的脚本文件,指定编译的源文件和目的文件夹(后来建立),指定配置文件为gcc-3.4.5-glibc-2.3.2.dat,在该配置文件中,指定了交叉编译器和调试器、C库的版本。最后运行脚本,实现了对GCC工具包的安装,包括gcc预处理器、汇编器、编译器、链接器、调试器、反汇编工具等等。整个实验中我们需要的资源是crosstool-0.43.tar、gdb-6.5.tar、linux-2.6.8.tar,将放置在共享文件夹的crosstool工具拷贝到主文件夹下并解压,将gbd和linux文件拷贝到crosstool文件夹,拷贝linux-2.6.8.tar是因为编译时需要内核文件。
实验步骤
实验准备:
在实验准备中,在安装完增强工具包(安装vmware tools实现与XP文件共享)并重启之后,需要实现对共享文件夹的自动挂载,只需要修改etc目录中的配置文件rc.local,rc.local是很多linux系统管理员的偏爱,因为凡是需要随系统自动启动的服务、程序等,
Linux下有一个SUDO命令,使得普通用户能够行使超级用户的部份权利,
在/etc/sudoers中设置了可执行sudo指令的用户。若其未经授权的用户企图使用sudo,则会发出警告的邮件给管理员。用户使用sudo时,必须先输入密码,之后有5分钟的有效期限,超过期限则必须重新输入密码。
apt-get 一个下载的命令参数有install 安装 update 更新 remove 移除 check 检查。比如: sudo apt-get install samba-3.0-7 下载并安装一个名字为samba-3.0-7的程序
在UNIX早期时代,编写一个编译器是一件非常耗时的工作。人们为了简化开发过程,开发了Lex和YACC程序来解决第一个任务,根据用户描述的语言,生成能够解决问题的C/C++语言代码,供开发者使用。
将源代码文件分解为各种词汇(Lex)
找到这些词汇的组成方式(YACC
GNU软件协会开发了Flex和BISON,其功能与LEX和YACC基本兼容,并且在Lex和YACC提供的功能的基础上进行了各种扩展。
Lex能够将输入数据流分类为各类词汇,为后来的语法分析做准备
该文件本质上就是一个C语言的源代码作用就是对输入文件进行语法分析Ubuntu缺省情况下,并没有提供C/C++的编译环境,因此还需要手动安装。如果单独安装gcc以及g++比较麻烦,幸运的是,Ubuntu提供了一个build-essential软件包。 查看该软件包的依赖关系,可以看到以下内容:
也就是说,安装了该软件包,编译c/c++所需要的软件包也都会被安装。因此如果想在Ubuntu中编译c/c++程序,只需要安装软件包就可以了。make menuconfig配置linux内核,要装libncurses5-dev linux中一个非常重要命令它的功能是为某一个文件在另外一个位置建立一个同不的链接,这个命令最常用的参数是-s,具体用法是:ln -s 源文件 目标文件。当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在其它的 目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间用ls -l命令去察看,可以看到link的路径了Ubuntu默认使用dash,而不是bash,由于dash更小,
显示全部