Tsinghua University
嵌入式系统实验报告
Java虚拟机Kaffe移植
2006011299 孔祥欣
2006011293 胡玮玮
2006011291 卿培
2006011290 周煌
将Java虚拟机Kaffe移植到Sitsang平台上部署的Linux中。
通过实验熟悉Java虚拟机的实现,学习Kaffe的代码。
在实验过程中逐渐理解交叉开发模式,掌握交叉编译技术。
提高阅读文档的能力。
平台搭建
开发环境:Ubuntu gcc-
调试环境:Windows XP SP2
Kaffe版本:
在SITSANG平台上安装LINUX
这一步骤即为基础实验的重复。主要包括以下几部分内容:
通过Jflashui将RedBoot烧录进实验板。
通过超级终端与RedBoot通信,将打过patch的Linux内核和jffs2文件系统通过以太网接口传入实验板。
将存在于内存的Linux内核和文件系统烧录到flash芯片上。
这里应当注意的是,在将jffs2文件系统烧录到flash芯片时,执行以下命令,
fiscreateJFFS2 -b 0xa0800000 -l 0x01800000–f0x00200000
应将参数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目录下的测试java程序,确认Kaffe能够正确运行。
在PC上编译完成kaffe之后,我们便进行开始交叉编译kaffe的工作,但在编译的过程中却出现了诸多的问题,主要是交叉编译环境中缺少kaffe必要的库文件所致。
交叉编译ZLIB
在交叉编译Kaffe时,提示找不到zlib。
下载最新版本的zlib源代码,并用如下命令叉编译:
export PATH=/usr/local/arm-linux/bin:$PATH
./configure--host=arm-linux --build=i68
嵌入式系统实验报告 来自淘豆网m.daumloan.com转载请标明出处.