论文部分内容阅读
软件复用是在软件开发中避免重复劳动的有效解决方案,软件构件技术是软件复用的主要手段,随着嵌入式手持设备的广泛应用,嵌入式领域的构件技术也成为国内外研究的热点之一。Linux系统采用面向过程的C语言开发和拥有强大的开源社区的技术支持,可以很好的满足嵌入式系统的时间和空间要求,在Linux系统驱动开发中可以发现重复使用率比较高的代码片段,这就形成课题研究的切入点。课题把软件构件技术应用于嵌入式Linux系统驱动开发中,由于Linux驱动开发采用面向过程的语言,在这基础上本课题将详细研究如何获取驱动构件,进行驱动构件的建模,对驱动构件进行描述以及组装驱动构件。对Linux驱动中的字符设备驱动程序进行抽象和提取,分析其代码框架,发现其重复使用率非常高的功能代码段,按照功能的不同提取驱动构件;采用树型模型对驱动构件进行建模,给出驱动构件的调入接口和调用接口的定义,同时定义根驱动构件模型、连接驱动构件模型和叶驱动构件模型;考虑Linux驱动主要采用C语言开发,因此课题实现类似C注释语句的驱动构件描述语言,驱动构件描述语言主要刻画驱动构件的属性,描述组成驱动构件的开发语言要素和构件的功能接口;在驱动构件模型和驱动构件描述语言的基础上对驱动构件进行组装,结合实际Linux字符设备驱动的代码结构给出驱动构件组装算法;通过上述步骤驱动构件组装后形成的代码模版可以提供驱动自身的模块初始化和注销以及对应用层提供的接口和Linux内核层对驱动的支持。同样可以类似的应用于Linux驱动中的块设备驱动和网络设备驱动。基于驱动构件理论的支持,课题实现ESM(Embedded System Maker)系统,该系统是华中科技大学软件工程实验室研制的软件生产线SoftMaker在嵌入式领域的应用的子系统。ESM主要功能有:制作可移植的Linux内核、录入驱动构件、驱动构件组装、制作可移植u-boot及制作文件系统。