本文摘要:章节 WinCE下GPIO端口驱动大多使用流模块驱动的方式展开研发,在构建上主要相结合PlatformBuilder编译器环境将驱动程序编译成动态链接库,并统合到WinCE内核中。
章节 WinCE下GPIO端口驱动大多使用流模块驱动的方式展开研发,在构建上主要相结合PlatformBuilder编译器环境将驱动程序编译成动态链接库,并统合到WinCE内核中。但在实际项目的研发中,PlatformBuilder在驱动程序的研发和柴火中举上过于便利,且在统合动态链接库和WinCE内核时,必须展开繁复的参数配备,整个过程更为简单。
笔者以飞凌S3C2440开发板为事例,得出在VisualStudio编译器环境中使用动态读取方式来设计GPIO端口驱动程序的思路,较好地改良了目前常用的GPIO端口驱动设计方法,提升了研发效率。 1GPIO端口的流驱动设计 1.1过程详述 关于GPIO端口流驱动的设计原理,大量论文及书籍中均有讲解,这里仍然赘述。其设计步骤也遵循相同的设计模式,按照撰写驱动构建代码、驱动程序配备、编译器调试的顺序展开。
1.1.1撰写驱动构建代码 WinCE流式驱动实质上是按照相同的流函数模块构建的一个动态链接库。在构建时,创立涉及的.cpp文件、.h文件和.def文件,根据必须构建xxx_Init、xxx_Read、xxx_Write等流接口函数才可。
1.1.2驱动程序配备 WinCE配置文件分成源代码配置文件和镜像配置文件,通过这两种配置文件,PlatformBuilder编译器环境构建对驱动代码和内核的编译器、统合。明确还包括: ①创立涉及获取登记信息的.reg文件以供在WinCE注册表中登记GPIO驱动程序。
②在PlatformBuilder的涉及目录下,配备Dirs文件、Makefile文件、Sources文件和Platform.bib文件中的涉及参数,PlatformBuilder在编译器时按照配备的参数编译器驱动程序并将其统合到内核镜像中。 1.1.3编译器调试 用于PlatformBuilder编译器环境编译器驱动程序和WinCE内核,编译器顺利之后即获得按照硬件平台自定义的所含驱动程序动态链接库的内核镜像文件,当WinCE启动时,该驱动不会被自动读取。
1.2设计方法的严重不足 基于以上叙述,流模块驱动程序设计方法中不存在以下两个问题: ①在整个设计过程中,驱动程序的编译器、调试全部相结合的是PlatformBuilder编译器环境。PlatformBuilder编译器环境虽然也能构建对驱动程序的编译器和后期调试,但在实际工程项目的研发中限于面不甚广,在用于操作者、功能获取等方面皆不如VisualStladio,其在实际工程项目中主要是用来自定义WinCE内核。
另外,为了将驱动程序统合到WinCE内核中,必须开发者更为熟知PlatformBuilder编译器环境中对源代码配置文件和内核镜像配置文件的改动及原理,而大多数开发者回应基本上正处于比葫芦所画瓢的仿效层次,自学入门门槛较高。 ②在设计中,出于统合资源的目的,将端口驱动程序的动态链接库编译器到WinCE内核中,但实质上这种方法造成驱动程序的动态链接库与内核融合过分密切,每次对驱动程序的任何改动都必须随后用于PlatformBuilder编译器环境对内核新的展开编译器,往返重复、效率低落。
从程序设计的角度谈,驱动程序和内核分属有所不同功能类型的模块,与程序设计中功能模块内紧外松的耦合思想不完全一致。
本文来源:必一运动·(B-Sports)官方网站-www.qdhnzc.com