北京邮电大学嵌入式操作系统实验报告Word格式文档下载.docx

上传人:b****4 文档编号:17390260 上传时间:2022-12-01 格式:DOCX 页数:11 大小:1.87MB
下载 相关 举报
北京邮电大学嵌入式操作系统实验报告Word格式文档下载.docx_第1页
第1页 / 共11页
北京邮电大学嵌入式操作系统实验报告Word格式文档下载.docx_第2页
第2页 / 共11页
北京邮电大学嵌入式操作系统实验报告Word格式文档下载.docx_第3页
第3页 / 共11页
北京邮电大学嵌入式操作系统实验报告Word格式文档下载.docx_第4页
第4页 / 共11页
北京邮电大学嵌入式操作系统实验报告Word格式文档下载.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

北京邮电大学嵌入式操作系统实验报告Word格式文档下载.docx

《北京邮电大学嵌入式操作系统实验报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《北京邮电大学嵌入式操作系统实验报告Word格式文档下载.docx(11页珍藏版)》请在冰豆网上搜索。

北京邮电大学嵌入式操作系统实验报告Word格式文档下载.docx

姓名:

XX

指导老师:

日期:

2017年12月14日

目录

嵌入式操作系统实验报告1

一、实验步骤3

1.建立Android开发环境3

2.建立交叉编译环境6

3.内核源码编译6

4.内核运行9

5.内核裁剪9

二、实验中遇到的问题及解决方案11

三、实验总结11

一、实验步骤

1.建立Android开发环境:

新建文件夹,命名为学号后四位:

0305,在0305文件夹中再新建文件夹命名为“嵌入式软件实验”,最后在“嵌入式软件实验”文件夹下拷贝三个压缩包JDK、AndroidSDK和交叉编译器。

在终端切换至嵌入式实验文件目录下查询,查看到所有文件已存在。

解压JDK:

tarzxvfjdk-7u15-linux-x64.tar.gz后,执行ls命令,看到实验文件夹下面生成文件夹jdk1.7.0_15:

设置环境变量,编辑文件/etc/profile,执行vi/etc/profile打开profile:

打开profile文件后,在最下面补充:

exportJAVA_HOME=/home/lq/0305/嵌入式软件实验/jdk1.7.0_15

exportJRE_HOME=$JAVA_HOME/jre

exportCLASSPATH=$CLASSPATH:

.:

$JAVA_HOME/lib:

$JAVA_HOME/jre/lib

exportPATH=$PATH:

$JAVA_HOME/bin:

$JAVA_HOME/jre/bin

执行source/etc/profile使对/etc/profile的修改立即生效

执行java-version命令,出现java版本信息为1.7.0_15,此时Java开发环境建立好了。

解压AndroidSDK,看见目录下产生一个文件夹android-sdk-linux

编辑文件/etc/profile,在环境变量PATH后面增加android的环境变量

执行android命令弹出androidSDKmanager窗口

为了获取更新列表,设置AndroidSDKManager-Settings,修改配置:

安装一个Android2.1版本的SDKPlatform,再安装AndroidSDKTools、AndroidSDKPlatform-tools和AndroidSDKBuild-tools:

新建一个虚拟机,创建的虚拟机名称为2.1:

启动新建的虚拟机:

2.建立交叉编译环境:

执行tarjxvfarm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2

在嵌入式软件实验目录下生成一个arm-2014.05文件夹

再次执行vi/etc/profile,在PATH中添加/home/lq/0305/嵌入式软件实验/arm-

2014.05/bin/(注意用冒号隔开),保存退出后执行source/etc/profile。

3.内核源码编译:

在实验目录下新建Kernel文件夹,将goldfish-android-goldfish-2.6.29.tar.gz拷贝到Kernel中:

切换至Kernel文件夹,然后执行tarzxvfgoldfish-android-goldfish-2.6.29.tar.gz解压源码压缩包:

执行viMakefile,找到ARCH和CROSS_COMPILE的定义:

修改为:

再修改kernel目录下的timeconst.pl文件:

将文件末尾的defined()去掉:

************************************更新!

************************************

*********因为实验文件的目录中含有中文命名,为了保证不影响内核编译,***********

****************此处将“嵌入式软件实验”更改为“Research”********************

******************************************************************************

编译内核,执行如下命令:

出现上图所示的问题,上网查阅后发现该问题的原因是64位系统运行32位的程序需要32位运行库,于是安装上对应的运行库:

再次编译内核,发现内核编译成功,问题解决:

在0305/Research/Kernel/arch/arm/boot文件夹下生成一个zImage镜像文件:

在文件属性中查看镜像大小为1624048字节:

4.内核运行:

在终端执行emulator64-arm-avd2.1-kernel./arch/arm/boot/zImage指定虚拟机从编译的内核启动:

启动后在Settings的AboutPhone中可以看到内核版本Kernelversion为2.6.29,在虚拟机编译内核时的用户名为root@lq-virtual-machine。

5.内核裁剪:

(选择了内核中Networkingoptions部分一些关于Ipv6的部分进行注释裁剪。

再次makegoldfish_defconfig

Make编译内核:

新生成的zImage文件覆盖了原先的文件,由于裁剪的内容不多,所以编译后内核

大小变化不大,但还是有所减小。

(1624048字节==>

1615788字节)

再次在终端执行emulator64-arm-avd2.1-kernel./arch/arm/boot/zImage指定虚拟机从编译的内核启动:

裁剪后的内核可以在虚拟机中启动。

二、实验中遇到的问题及解决方案

a.问题一:

在获取安卓更新资源时,发现无论怎么修改Options始终无法更新资源。

解决措施:

通过从网上搜索原因并且在虚拟机中询查错误时,偶然发现虚拟机并不能联网,于是更改了虚拟机的网络适配器的设置,将其改为NAT模式,问题得到解决。

b.问题二:

在编译内核时始终不能成功,执行make指令时总是会出错。

由于此问题在嵌入式的微信讨论群中已经有人提及,所以按照已做的同学提供的教程,即:

64位系统运行32位的程序需要32位运行库,安装上对应的32位的运行库后问题得到解决。

三、实验总结

本次实验于我而言,虽然关于Android相关的开发并不是我特别喜欢的方向,以后也不打算在这方面深入研究。

但是在做整个大作业的时候,我发现Android的方面涉及的其实很浅,主要是让我们熟悉了Linux终端的基本操作指令。

虽然之前有一些Linux下开发的经验,懂得基本操作指令的使用,但是此次实验能够让我更加熟悉Linux环境下的操作,并且附带了解了Android的内核编译与裁剪,这些都是很宝贵的经验!

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

当前位置:首页 > 解决方案 > 学习计划

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

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