原创 windML输入设备

2007-1-10 17:07 3735 7 5 分类: MCU/ 嵌入式

 


<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 





点击看大图


低级别输入驱动
低级别输入驱动作为IO驱动执行,通常在系统内核配置。这个驱动当初始化的时候连接内核系统的IO系统。它的响应包括以下几方面:
初始化设备控制器和输入设备
通过设备控制器生成中断句柄
从输入设备接收原始数据并且降队列用IO系统传给高级驱动。数据排队完,输入设备激活使用select机制
从高级驱动接收命令和应答。例如在键盘控制LED
开发一个低级输入驱动,必须理解怎样微操作系统写IO驱动,并且理解设备控制器和你所开发的输入设备。
经常,输入设备连接串行接口,例如Vxworks提供的标准串行设备。例如,触摸屏经常通过串口能被连接到标准的串行设备如/tyCo/1。
高级输入驱动
高级输入驱动主要响应接收从低级输入驱动传来的原始输入数据,打包作为输入消息,并将消息放到消息队列里。


执行低级输入驱动
低级输入驱动是标准繁的IO系统驱动提供基础的IO接口open,close,read,write,ioctl
除此之外,驱动必须提供select的支持,提供给检测输入数据用。
当执行低级输入设备时,为一般操作系统,不同的硬件,不同的目标板设计。你能够通过写不同硬件结构驱动代码达到目的。怎么编驱动和怎么使用windML的硬件抽象层,看12
对vxworksIO驱动的一般技术在vxworks programmers guids:IO系统
既然vxwork的styLib提供许多低级驱动的功能,建议使用tyLib的优势。通过这个,你的驱动不用控制读写队列或select程序。这将使开发低级驱动变得很简单。


设备的程序数据
低级驱动不能从输入设备中断数据。可以接收数据并且作为原始数据传给高级输入驱动,没有调整输入结构。例如,一个键盘设备通常发送一列代码包括key up和key down。每一个键的代码需要传给高级驱动。
发送数据到设备
一个低级的设备驱动不能利用write机制从高级的驱动设备接收任何数据。这可能产生输入设备异常。一些需要高级设备驱动写不同的操作模式信息。当为一个特殊的硬件开发一个输入驱动时,你可能需要高级设备驱动网低级设备驱动写程序给特殊需求的设备。
设备控制
低级输入设备需要为依赖于操作的输入设备完成ioctl功能。ioctl功能整个依赖设备类型和控制的不同。例如,键盘输入设备有一个为控制LED的ioctl功能。对于vxworks,ioctl设备必须提供有用的select信号。
完成高级输入设备
以下是写高级驱动的步奏
为windML结构中的的驱动创建资源和头文件。一个头文件甚至需要作为一个二进制驱动,因为配置程序需要在输入设备的头文件中包含子女子。
创建open等程序
创建资源和头文件
包含的文件夹
installDir/target/src/ugl/driver/keyboard
The source file for all keyboard drivers.
installDir/target/h/ugl/driver /keyboard
All header files for the keyboard drivers.
installDir/target/src/ugl/driver/pointer
The source file for all pointer drivers.
installDir/target/h/ugl/driver /pointer
All header files for the pointer drivers.
增加一个新的键盘或鼠标驱动,增加新的资源到路径下。就不需要配置makefile,makefile可以编译这个目录下的所有资源。


PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
7
关闭 站长推荐上一条 /3 下一条