新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > KVM在嵌入式Linux上的移植

KVM在嵌入式Linux上的移植

作者:时间:2011-05-20来源:网络收藏

  # 注释掉CC = gcc, 事实上由于ifeq ($(GCC), true) 不成立,该处不会执行到。

  # CC = gcc

  CFLAGS = -Wall $(CPPFLAGS) $(ROMFLAGS) $(OTHER_FLAGS)

  DEBUG_FLAG = -g

  OPTIMIZE_FLAG = -O2

  else

  # 注释掉CC = cc 一行,这样,系统采用CC=arm-elf-gcc 编译

  # CC = cc

  CFLAGS = -Xa $(CPPFLAGS) $(ROMFLAGS) $(OTHER_FLAGS)

  DEBUG_FLAG = -g -xsb

  OPTIMIZE_FLAG = -xO2

  endif

  DEBUG_FLAG += -DINCLUDEDEBUGCODE=1

  $(TOP)/tools/jcc/ROMjavaUnix.c $(TOP)/tools/jcc/nativeFunctionTableUnix.c: jcc

  Unix

  .PHONY: jccUnix

  jccUnix:

  @(cd $(TOP)/tools/jcc; $(MAKE) unix)

  kvm$(j)$(g): obj$j$g/ $(CLEANUPXPM) $(OBJFILES)

  @echo Linking ... $@

  # 注释掉@$(CC) $(OBJFILES) -o $@ $(LIBS) $(EXTLIBS) 一行

  # @$(CC) $(OBJFILES) -o $@ $(LIBS) $(EXTLIBS)

  # 用arm-elf-ld连接目标文件

  $(LD) -o kvm.x $(WEC_LDFLAGS) -r -d $(OBJFILES) $(LIBS) $(EXTLIBS) -Map kvm.map

  5. 编译uC版本的

  修改Makefile后,切换到j2me_cldc/build/linux目录,执行make命令编译kvm。如果不能通过编译,建议用arm-elf-gcc3.0以上版本的交叉编译工具进行编译。编译完成后,将在j2me_cldc/kvm/VmUnix/build目录下生成kvm.x文件,因为uClinux操作系统上可执行文件都必须为Flat格式,需用elf2flt工具对kvm.x进行转换。在终端提示符下执行如下命令:

  elf2lft –o kvm kvm.x

  生成kvm可执行文件,至此,整个kvm编译过程完成。

  6. 测试

  这样编译出来的kvm是针对ARM体系结构的,所以在Red Hat 7.3系统上无法运行,读者可以编辑“Hello World”程序。然后在终端提示符下做如下测试:

  ./kvm –classpath j2me_cldc/samples/classes HelloWorld

  程序报错,这说明当前编译出来的KVM不是针对X86体系结构。接下来下载kvm到运行uClinux操作系统的设备上,再测试kvm。

  拷贝kvm以及HelloWorld.class到 uClinux-dist/romfs/bin目录下执行make image,生成包含kvm及HelloWorld.class的romfs.img

  下载image.ram和romfs.img到板子上uClinux系统启动后,输入如下命令测试

  ./kvm –classpath /bin HelloWorld

  7. 小结

  本文以uC操作系统为例讨论了KVM的过程,若读者希望在其他体系结构的Linux(比如PPC Linux, MIPS Linux)系统上KVM,可以根据其编译环境修改KVM的Makefile进行编译。如果为让系统支持更多的功能,如MIDP等,则需要作进一步的研究与探索。

linux操作系统文章专题:linux操作系统详解(linux不再难懂)

c语言相关文章:c语言教程


linux相关文章:linux教程


pos机相关文章:pos机原理



上一页 1 2 下一页

关键词: 移植 Linux 嵌入式 KVM

评论


相关推荐

技术专区

关闭