首页 嵌入式系统实验报告

嵌入式系统实验报告

举报
开通vip

嵌入式系统实验报告嵌入式系统实验报告 Tsinghua University 嵌入式系统实验报告 Java虚拟机Kaffe移植 2006011299 孔祥欣 2006011293 胡玮玮 2006011291 卿 培 2006011290 周 煌 实验任务 将Java虚拟机Kaffe移植到Sitsang平台上部署的Linux中。 实验目的 1.​ 通过实验熟悉Java虚拟机的实现,学习Kaffe的代码。 2.​ 在实验过程中逐渐理解交叉开发模式,掌握交叉编译技术。 3.​ 提高阅读文档的能力。 实验内容 平台搭建 ​ 开发环境:U...

嵌入式系统实验报告
嵌入式系统MATCH_ word word文档格式规范word作业纸小票打印word模板word简历模板免费word简历 _1714036823715_0 Tsinghua University 嵌入式系统实验 报告 软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载 Java虚拟机Kaffe移植 2006011299 孔祥欣 2006011293 胡玮玮 2006011291 卿 培 2006011290 周 煌 实验任务 将Java虚拟机Kaffe移植到Sitsang平台上部署的Linux中。 实验目的 1.​ 通过实验熟悉Java虚拟机的实现,学习Kaffe的代码。 2.​ 在实验过程中逐渐理解交叉开发模式,掌握交叉编译技术。 3.​ 提高阅读文档的能力。 实验内容 平台搭建 ​ 开发环境:Ubuntu 9.04 gcc-4.4 ​ 调试环境:Windows XP SP2 ​ Kaffe版本:1.1.9 1.1.4 在Sitsang平台上安装Linux 这一步骤即为基础实验的重复。主要包括以下几部分内容: 1.​ 通过Jflashui将RedBoot烧录进实验板。 2.​ 通过超级终端与RedBoot通信,将打过patch的Linux内核和jffs2文件系统通过以太网接口传入实验板。 3.​ 将存在于内存的Linux内核和文件系统烧录到flash芯片上。 这里应当注意的是,在将jffs2文件系统烧录到flash芯片时,执行以下命令, fis create JFFS2 -b 0xa0800000 -l 0x01800000 –f 0x00200000 应将参数0x01800000改为0x03400000,即将文件系统的大小由24M改为52M。因为kaffe编译完成之后需要十几兆的空间,加之其他的链接库文件,实验指导书中所原有的24M大小已经不能满足空间的需要,需要将其改大。通过命令 fis list 可以查看flash芯片上已经存在的分区大小,可以看到将jffs2文件系统的大小调整为52M,不会对已有的分区造成影响。 在PC上编译Kaffe 由于交叉编译Kaffe时需要用Kaffe中的kaffeh程序将Java的Native Library转换成C的头文件和源代码以便于Java程序和C的Native Library进行连接,所以需要有一个可以在PC上运行的kaffeh,也就需要在PC上编译一遍Kaffe。 将下载到的Kaffe源代码解压缩,按照文档,顺序执行如下命令: ./configure make make install 就可以编译并安装Kaffe到/usr/local/kaffe。 不过实际操作的时候,由于我们的实验环境是默认配置全新安装的Ubuntu,缺少很多必要的库,在configure时遇到了种种提示。将需要的库都下载、编译、安装之后,成功在PC上编译出Kaffe。 此时我们测试了test 目录 工贸企业有限空间作业目录特种设备作业人员作业种类与目录特种设备作业人员目录1类医疗器械目录高值医用耗材参考目录 下的测试java程序,确认Kaffe能够正确运行。 Kaffe1.1.9 交叉编译KAFFE1.1.9 在PC上编译完成kaffe之后,我们便进行开始交叉编译kaffe的工作,但在编译的过程中却出现了诸多的问题,主要是交叉编译环境中缺少kaffe必要的库文件所致。 交叉编译zlib 在交叉编译Kaffe时,提示找不到zlib。 下载最新版本的zlib源代码,并用如下命令叉编译: export PATH=/usr/local/arm-linux/bin:$PATH ./configure --host=arm-linux --build=i686-linux 发现zlib并不支持--host参数,因此换成 CC=arm-linux-gcc LD=arm-linux-ld ./configure 发现arm-linux-ld命令并不能将编译的结果连接起来,原因不明,最终使用以下的命令, CC=arm-linux-gcc ./configure --prefix=/usr/local/arm-linux make make install 将zlib的相应文件安装到交叉编译环境中去。 交叉编译ZZIP 在交叉编译Kaffe时,提示找不到libzzip,因此在交叉编译环境中安装zzip。 export PATH=/usr/local/arm-linux/bin:$PATH ./configure --prefix=/usr/local/arm-linux --host=arm-linux --build=i686-linux --with-zlib=/usr/local/arm-linux make make install 将zzip安装到交叉编译环境中 交叉编译LIBLTDL 在交叉编译Kaffe时,提示找不到libltdl,因此在交叉编译环境中安装ltdl。 export PATH=/usr/local/arm-linux/bin:$PATH ./configure --prefix=/usr/local/arm-linux --host=arm-linux --build=i686-linux make make install 将ltdl安装到交叉编译环境中 编译选项 在交叉编译kaffe的过程中,需要的库的数量远远超出了我们的预期,有些库的安装又需要其他的库文件,形成了递归的交叉编译的局面,工作量实在太大。因此我们考虑是不是可以通过configure选项的方式,禁掉一些功能而解除库的依赖关系。 首先,kaffe上的图形组件需要x11或者qt,这两个组件在sitsang上均没有实现,因此加上相关的编译选项。 其次,指定zzip为我们交叉编译的zzip。 最终的编译过程如下: export KAFFEH=/usr/local/kaffe/bin/kaffeh export PATH=/usr/local/arm-linux/bin:$PATH ./configure --prefix=/usr/local/arm-linux/kaffe --host=arm-linux --build=i686-linux --with-includes=/usr/local/arm-linux/include --with-libraries=/usr/local/arm-linux/lib --with-engine=intrp --enable-pure-java-math --disable-sound --without-x --disable-gtk-peer --without-classpath-gtk-awt --without-kaffe-qt-awt --without-kaffe-x-awt --enable-debug ZZIP_LIBS='/usr/local/arm-linux/lib/libzzip.la' --disable-Werror --enable-xscale make make install 并成功通过编译,在/usr/local/arm-linux/kaffe目录下生成了所需的各种文件。 移植KAFFE1.1.9 先将编译生成的kaffe目录打包为kaffe.tar.gz,并在主机上建立ftp服务器。 通过telnet和sitsang板进行通信,在sitsang上通过ftp客户端压缩包下载到sitsang上。 通过命令 tar zvxf kaffe.tar.gz 将kaffe解压到/usr/local/arm-linux/kaffe目录下。 测试KAFFE1.1.9 通过ftp上传一个编译好的HelloWorld程序的class文件Hello.class 进入/usr/local/arm-linux/kaffe/bin目录下,运行如下命令 ./java 成功出现了帮助信息 运行如下命令, ./java Hello 出现了错误提示,未找到java核心库javanio.so等一系列错误。经过我们的分析,我们认为应该在sitsang平台上安装classpath。 交叉编译CLASSPATH 编译classpath需要禁用classpath的一些功能,从而不需要sitsang上所没有的库文件。 经过不断的尝试,终于通过以下命令交叉编译classpath export PATH=/usr/local/arm-linux/bin:$PATH ./configure --host=arm-linux --prefix=/usr/local/arm-linux --disable-gtk-peer --disable-gconf-peer --disable-plugin --with-jni make make instal 将位于/usr/local/arm-linux/lib/classpath目录下的各种java库文件移植到sitsang板上之后。 运行命令 ./java Hello 出现了一个为 ExceptionInitializerError 的异常,对于这个问题,我们认为应当是硬件的配置与代码中的定义不符造成的,但是我们研究了很久依然没有找到解决的方法,因此最终放弃了kaffe1.1.9 KAFFE1.1.4 我们仔细考察了kaffe的各个版本之后,认为,高版本的kaffe由于实现了很多的额外功能,移植中出现的问题必然会多一些,因此我们决定移植一个低版本的kaffe试试看。 我们选择了kaffe1.1.4版本。由于之前的kaffe1.1.9的工作,已经将各种需要的库文件移植到sitsang板上,因此,在编译kaffe1.1.4的过程中,没有出现任何问题,很顺利的完成了编译工作。 交叉编译KAFFE1.1.4 进行Kaffe的交叉编译,命令如下: export KAFFEH=/usr/local/kaffe/bin/kaffeh export PATH=/usr/local/arm-linux/bin:$PATH CC=arm-linux-gcc ac_cv_c_char_unsigned=yes ./configure --prefix=/usr/local/arm-linux/kaffe --host=arm-linux --build=i386-linux --target=arm-linux --enable-pure-java-math --with-awt=no --with-jar=/usr/local/arm-linux/classpath/share/classpath/glibj.zip --with-engine=jit --disable-sound make make install 移植KAFFE1.1.4 先将编译生成的kaffe目录打包为kaffe.tar.gz,并在主机上建立ftp服务器。 通过telnet和sitsang板进行通信,在sitsang上通过ftp客户端压缩包下载到sitsang上。 通过命令 tar zvxf kaffe.tar.gz 将kaffe解压到/usr/local/arm-linux/kaffe目录下。 测试KAFFE1.1.4 通过ftp上传一个编译好的HelloWorld程序的class文件Hello.class 进入/usr/local/arm-linux/kaffe/bin目录下,运行如下命令 ./java Hello 出现了我们一直期待的画面。 至此,kaffe在sitsang板上移植成功。 实验 总结 初级经济法重点总结下载党员个人总结TXt高中句型全总结.doc高中句型全总结.doc理论力学知识点总结pdf 到此为止,本学期嵌入式系统的实验基本就结束了。从开始的基础实验,到最后的创新实验,我们觉得收获了很多。最重要的是,我们了解了如何进行嵌入式系统的移植和简单开发,在此之前,我们并没有了解过类似的知识,也并没有过类似的实验经验。 我们非常感谢老师为我们提供详细的基础实验指导书,让我们能够顺利的完成基础实验,同时对于一些基本的嵌入式系统移植及开发相关的技术有了一定的了解,为后续的创新实验打下了良好的基础。 对于创新实验,我们完成了在sitsang板上移植kaffe虚拟机,虽然与我们之前的预期目标还有一定的差距,但是我们也最终实现了sitsang板上的一次移植。对于嵌入式系统的移植有了比较深的了解与认识。当然我们的创新实验过程中也存在一定的不足,总结如下:首先作为大四的一门课,我们组内同学积极性不是像大三那么高,对于实验本身兴趣也不是很大,所以能够提供的帮助也就不是很多,我们觉得这是最重要的一个问题。正是由于大家的积极性都不是很高,所以整个实验过程就比较拖沓,前面很长一段时间,直到中期检查,我们实际上都并没有做很多事情,这就导致了后面我们的时间有点紧张,甚至直接影响到了我们缩减实验目标。我们认为这是最需要总结的地方。 谈一下我们的主要收获。在移植kaffe的过程中,我们遇到了很多的问题。从刚开始完全不知道如何交叉编译,一步一步摸索。刚开始就在PC上用gcc编译,在这一步就发现了很多问题,我们发现我们的ubuntu系统缺少了很多库,导致了一些错误,我们安装一个库,就出现了另一个新的错误,就这样不断重复,最终编译成功了。现在回过头来看,在PC上编译成功可以算是一个新的节点,但是离最终完成还有很长一段距离。后来开始进行交叉编译,在编译的过程中,我们发现交叉编译工具链版本有点旧,里面缺少一些交叉编译的库,于是我们又开始重复之前的工作,只不过这一次全部变成了交叉编译,在经过很多次“递归”交叉编译以后,我们最终编译成功。即使这样了,在把编译好的东西传到sitsang板的过程中,我们也遇到了很多问题,经过很长时间的努力,我们移了上去。但是最终kaffe 1.1.9还是没有成功运行,我们查找了很多材料,也重新交叉编译,重新上传,重新测试了很多遍,但是还是没有发现问题在哪。最终我们移植了kaffe 1.1.4版本,anyway,我们还是成功移植了一个kaffe。体验到了实验成功的喜悦,的确,在不断调试不断测试的那几天时间里,我们组的心情还是很郁闷的,特别是周围同学一组一组都已经查完实验了之后。 最后感谢陶品老师,郑宁汉老师以及助教对我们的帮助!谢谢!
本文档为【嵌入式系统实验报告】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_583107
暂无简介~
格式:doc
大小:141KB
软件:Word
页数:8
分类:
上传时间:2011-02-28
浏览量:135