文档介绍:Tsinghua University 嵌入式系统实验报告 Java 虚拟机 Kaffe 移植 1| P a g e 实验任务将 Java 虚拟机 Kaffe 移植到 Sitsang 平台上部署的 Linux 中。实验目的 1. 通过实验熟悉 Java 虚拟机的实现,学习 Kaffe 的代码。 2. 在实验过程中逐渐理解交叉开发模式,掌握交叉编译技术。 3. 提高阅读文档的能力。实验内容平台搭建?开发环境: Ubuntu gcc- ?调试环境: Windows XP SP2 ? Kaffe 版本: 在 SITSANG 平台上安装 LINUX 这一步骤即为基础实验的重复。主要包括以下几部分内容: 1. 通过 Jflashui 将 RedBoot 烧录进实验板。 2. 通过超级终端与 RedBoot 通信,将打过 patch 的 Linux 内核和 jffs2 文件系统通过以太网接口传入实验板。 3. 将存在于内存的 Linux 内核和文件系统烧录到 flash 芯片上。这里应当注意的是,在将 jffs2 文件系统烧录到 flash 芯片时,执行以下命令, f is create JFFS2 -b 0xa0800000 -l 0x01800000 –f 0x00200000 应将参数 0x01800000 改为 0x03400000 , 即将文件系统的大小由 24M 改为 52M 。因为 kaffe 编译完成之后需要十几兆的空间,加之其他的链接库文件,实验指导书中所原有的 24M 大小已经不能满足空间的需要,需要将其改大。通过命令 fis list 可以查看 flash 芯片上已经存在的分区大小, 可以看到将 jffs2 文件系统的大小调整为 52M , 不会对已有的分区造成影响。在 PC 上编译 KAFFE 2| P a g e 由于交叉编译 Kaff e 时需要用 Kaff e中的 kaffe h 程序将 Jav a的 Native Librar y 转换成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