2.2触摸屏驱动
由于本设计是由DSP侧的MCSI接口来发送命令和读取触摸屏数据,而由ARM侧的操作系统将数据传递至界面程序进行处理,所以,本驱动程序应用MAILBOX双核通信来实现中间的传递。
ARM侧的处理流程如下:
(1)ARM侧的MAILBOX中断;
(2)由MAILBOX中断服务程序从数据寄存器DSP2ARM和命令寄存器DSP2ARM2B读取X、Y,并将其封装成触摸屏返回结构TS_RET,最后通过写指针写入队列;
(3)由应用程序通过读指针读取数据并进行相应处理。
驱动程序中有下面两个比较重要的结构:
3键盘输入设计
OMAP5912可以支持键盘专用的8×8 I/O接口以及KB.R[7:0]和KB.C[7:0]。其中KBR_LATCH为键盘行输入,KBC_REG为键盘列输出,通过对这两个寄存器进行读写,可以进行行、列的扫描。本设计为了节省系统资源,提高使用效率,因而采用中断和扫描相结合的方法来实现3×3键盘驱动。
当按键中断产生时,为了消除抖动,先不判断按键值,而是启动定时器,并在定时器中断中读取键值。读取键值的过程是首先判断行线,然后通过列扫描码来确定按键值。
下面给出的是键盘中断服务程序:
定时器中断服务程序如下:
下面是扫描程序:
4结束语
本文介绍了OMAP5912平台下人机接口的驱动开发方法,完成后的驱动程序可在MontavistaLinux操作系统下正常运行,因而对于在此平台下开发其他设备的驱动程序具有一定的启发作用。OMAP开放式多媒体应用平台也为今后系统的拓展预留了足够的空间,相信该系统会具有巨大的市场潜力。