论文部分内容阅读
近年来,嵌入式系统广泛应用于自动化、交通电子和消费电子等领域,并获得了快速的发展。同时嵌入式软件的规模和复杂性也迅速增长,而嵌入式系统的传统丌发语言c语言甚至汇编语言已经不能很好得控制这种复杂性,而且代码重用性和开发效率不高。因此需要新的开发方法和手段。Java语言以其面向对象的特性、丰富的API、可重用性、快速开发、安全等特性成为首选解决方案。嵌入式系统大多数为实时系统,对于程序运行的确定性和期限性要求比较高,而Java语言中的垃圾回收机制、动态类加载和本地代码编译等特性成为其应用在实时系统开发中的障碍。实时Java规范(RTSJ)正是为了解决上述问题提出的。本文研究了RTSJ对于传统Java的各种改进机制,包括实时线程、不朽内存、领域内存、异步传输控制等,并在研究使用RTSJ和分析Ravenscar-Java实时编程模型的基础上,将该模型中的一些限制去掉,特别是关于领域内存使用的一些限制,同时规定多个线程只能够在同一个领域内存中启动以共享该领域内存,其他情况则不允许多线程共享领域内存,以便能够更灵活地使用领域内存,并更好地指导软实时系统的开发。本文从实际的企业需求出发设计并实现了USB摄像头控制系统。本文首先使用Java开发了一个普通的控制系统,没有使用RTSJ,通过测试发现不能满足实时性要求,之后详细分析了其中存在的实时问题。然后在实时模型指导下开发了基于RTSJ的USB摄像头控制系统。系统在Linux环境下开发,通过V4L2实现对摄像头的访问控制,另外还用到JNI和SDLJava,运行于TimeSys的实时虚拟机RI上。系统实现的功能包括,从摄像头采集视频数据,接收用户操作指令拍摄视频,抓取图片,对摄像头的各项属性进行调整,如对比度、亮度、摄像头的上下、左右角度等。最后进行了测试,表明基于RTSJ的控制系统能够满足实时要求。