论文部分内容阅读
与桌面系统应用开发相比,实时嵌入式系统(RTES)软件还是采用过时的或者晦涩的C/C++或汇编语言等手段进行研发,然而这些开发手段的诸多缺点难以满足嵌入式系统的发展趋势,因此需要引入新的开发语言和手段到嵌入式系统中。Java技术的面向对象、语言级并发支持、安全等特点使得它在Internet领域得到广泛应用,并且引起了嵌入式编程人员的高度重视,Java实时规范(RTSJ)的出现就是最好的例证,其通过各种工具和机制使Java规范具备了实时性。龙芯2F处理器是我国自主研发的高性能通用处理器,其主要面向高端嵌入式应用。但是,目前在龙芯平台上运行的Java,应用程序都是基于Java虚拟机的并且不具备实时性,使得龙芯平台应用于实时嵌入式领域受到很大限制。
根据上述不足,设计一款以龙芯2F处理器硬件平台和实时Linux操作系统为运行环境,符合RTSJ标准的实时Java编译系统。首先,深入研究了龙芯2F处理器的体系结构及硬件平台各IO模块,并且详细地分析了操作系统的实时特性及内存管理子系统,为实时Java类库的设计和应用程序数据对象的分配及释放做好准备:在此基础上,根据RTSJ标准引入异步事件、实时线程、物理内存访问和优先级调度策略等实时扩展技术设计实现本编译系统的实时Java类库,提供了能够创建、验证、分析、执行和管理实时Java线程的应用程序接口,这些接口确保了Java在嵌入式应用中的实时性;最后,深彻研究编译技术,以实现RTSJ标准的jRate及sun公司的GJC编译系统为参考,设计不依赖Java虚拟机能够直接生成龙芯2F处理器目标代码的实时Java交叉编译器。在编译器设计过程中,采用单遍扫描语法制导翻译模式,以语法分析程序单元为核心,使用C++作为宿主语言设计完成编译器的词法分析器,语法/语义分析器和代码生成器等主要部分;同时,引入面向对象方法和类库技术消除语法和语义产生歧义的情况,这样做不但避免了大量的重复操作,而且还提高了实时Java交叉编译器本身的可扩充性和可复用性。
经测试,编译器基本实现了Java源程序到MIPS汇编指令的编译工作。本文引入实时Java技术从新的角度为龙芯平台的应用研究提供了更加广阔的应用前景,大大增强了国产CPU的开发能力。