- 13
- 0
- 约7.88千字
- 约 3页
- 2018-01-26 发布于河北
- 举报
基于嵌入式Linux的QT键盘设计与实现
2009 年第 3 期 重庆三峡学院学报 No.3.2009
第 25 卷(117 期) JOURNAL OF CHONGQING THREE GORGES UNIVERSITY Vol.25 No.117
基于嵌入式 Linux 的 QT 键盘设计与实现
徐家良
(重庆三峡学院数学与计算机科学学院,重庆万州 404000)
摘 要:本文以 smdk2410开发板为硬件平台,嵌入式 Linux为软件平台,阐述了如何通过修
改 QT 库源代码和添加键盘驱动模块,将 QT 图形界面系统移植到嵌入式 Linux 平台上,并使该 QT
图形界面可以响应键盘输入.
关键字:SMDK2410;嵌入式 Linux; QT;键盘驱动
中图分类号:TP316.81 文献标识码:A 文章编号:1009-8135(2009)03-0048-03
1 引言
S3C2410 芯片是由韩国三星公司推出的基于 ARM920T 核的通用处理器,是为应用于小型掌上设备嵌
入式系统应用而提供的微控制解决方案.SMDK2410 开发板是基于此芯片的示例板.嵌入式 Linux 在操作
系统方面为该开发板提供了完善的支持,使得该类型开发板在国内嵌入式教育领域得到了广泛应用.
移植后的 Linux 操作系统不包括图形界面,不能满足一般应用的需求,面向嵌入式系统的图形界面库
Qt 的出现突破了这一局限.该类库完全采用 C++封装,丰富的控件资源和较好的可移植性是 Qt 最为优秀
的一方面,使用X 下的开发工具 Qt Designer 可以直接开发基于 Qt 的UI 界面.将 QTE 库移植到 Linux 操
作系统需要使用的输入设备触摸屏和键盘的交互式的功能.为了使 QT 应用程序响应触摸屏和键盘的输入,
需要在操作系统中提供触摸屏和键盘的驱动程序,修改 QTE 库中鼠标和键盘接口,使其适合相应的底层驱
动程序.
目前,Linux 对 SMDK2410 触摸屏驱动支持比较完善,在 QTE 中对这一触摸屏接口也提供了支持, QT
应用程序在响应触摸屏输入时只需在移植阶段设置相应编译参数和在 Linux 中设置部分环境变量.但因键
盘缺乏统一性,驱动程序及 QTE 的接口千差万别,使得移植的难度比较大.本文深入介绍键盘驱动和QTE
键盘接口的原理,详细讨论此类移植的一般原则和方法,为这一类问题提供一个有效的解决方案.
2 整体系统
为了能够使支持 QTE 的 Linux 操作系统可以在 SMDK2410 开发板上运行,整个软件系统需要多个部
分,包括引导程序 (BootLoader )、Linux 内核(Kernel )、根文件系统.本文内容假定以上各部分已经完成.在
此基础上,需要三部分工作方可使本软件系统具有图形界面并且支持键盘输入,(1)根据键盘硬件设计,
编写底层驱动程序;(2 )修改 QT 源代码中与键盘接口相关的文件;(3 )编译 QTE 源代码,得到 QTE 运
行库,整体结构如图 1 所示.在图 1 中,实际上驱动程序是操作系统的一部分,而且操作系统和根文件系
统也并非完全互相独立.此外,引导程序并没有在图中表示,该程序只在启动时运行一次,负责初始化硬
件,并将操作系统从电路板中的 Flash 中载入到RAM 中,此后程序的运行就转移到了操作系统.
收稿日期:2009-02-12
作者简介:徐家良(1977-),男,四川内江人,重庆三峡学院数学与计算机科学学院实验师.
-48-
重庆三峡学院学报
S3C2410 的键盘驱动2410-buttons-driver.c 主要
实现三个目标:
(1)中断响应函数:static void buttons_irq(int irq,
void *dev_id, struct pt_
原创力文档

文档评论(0)