嵌入式linux矩阵键盘,嵌入式linux matrix_keypad矩阵键盘驱动
ARM:AM3517
linux2.6.37
TI官方开发板AM3517EVM
我想移植一个8*5的GPIO矩阵键盘,在linux源码/drivers/input/目录下有很多种键盘驱动程序,但是
能用到自己项目上的似乎只有matrix-keypad键盘驱动,我在board-am3517evm.c中定义好了键盘资源,如下:
static const unsigned int matrix_keypad_cols[] = {128,129,130,131,132};
static const unsigned int matrix_keypad_rows[] = {120,121,122,123,124,125,126,127};
static uint32_t am3505_keymap[] __initdata =
{
//KEY(row, col, keycode)
KEY(0,0, KEY_F1), KEY(0,1, KEY_1), KEY(0,2, KEY_4), KEY(0,3, KEY_7), KEY(0,4,KEY_PROG1),
KEY(1,0, KEY_F2), KEY(1,1, KEY_2), KEY(1,2, KEY_5), KEY(1,3, KEY_8),KEY(1,4,KEY_PROG2),
KEY(2,0, KEY_F3), KEY(2,1, KEY_3), KEY(2,2, KEY_6), KEY(2,3, KEY_9),KEY(2,4,KEY_PROG3),
KEY(3,0, KEY_F4),KEY(3,1, KEY_0),KEY(3,2,KEY_DOT),KEY(3,3,KEY_HELP),KEY(3,4,KEY_PROG4),
KEY(4,0, KEY_F5), KEY(4,1, KEY_DELETE), KEY(4,2, KEY_INSERT), KEY(4,3, KEY_SETUP), KEY(4,4, KEY_B),
KEY(5,0, KEY_F6), KEY(5,1, KEY_HOMEPAGE), KEY(5,2, KEY_ESC), KEY(5,3, KEY_LEFT), KEY(5,4, KEY_W),
KEY(6,0, KEY_F7), KEY(6,1, KEY_END), KEY(6,2, KEY_UP), KEY(6,3, KEY_ENTER), KEY(6,4, KEY_DOWN),
KEY(7,0, KEY_F8), KEY(7,1, KEY_PAGEUP), KEY(7,2, KEY_PAGEDOWN), KEY(7,3, KEY_RIGHT), KEY(7,4, KEY_POWER),
};
static struct matrix_keymap_data am3505_keymap_data __initdata =
{
.keymap = am3505_keymap,
.keymap_size =ARRAY_SIZE(am3505_keymap),
};
static struct matrix_keypad_platform_data am3505_keypad_data __initdata =
{
.keymap_data = &am3505_keymap_data,
.col_gpios= matrix_keypad_cols,
.row_gpios= matrix_keypad_rows,
.num_col_gpios= ARRAY_SIZE(matrix_keypad_cols),
.num_row_gpios= ARRAY_SIZE(matrix_keypad_rows),
.col_scan_delay_us= 10,
.debounce_ms= 80,
// .wakeup = 1,
.active_low = 1,
// .no_autorepeat = 1,
};
配置GPIO口
OMAP3_MUX(SDMMC1_CLK, OMAP_MUX_MODE4 | OMAP_PIN_INPUT_PULLDOWN),
OMAP3_MUX(SDMMC1_CMD, OMAP_MUX_MODE4 | OMAP_PIN_INPUT_PULLDOWN),
OMAP3_MUX(SDMMC1_DAT0, OMAP_MUX_MODE4 | OMAP_PIN_INPUT_PULLDOWN),
OMAP3_MUX(SDMMC1_DAT1, OMAP_MUX_MODE4 | OMAP_PIN_INPUT_PULLDOWN),
OMAP3_MUX(SDMMC1_DAT2, OMAP_MUX_MODE4 | OMAP_PIN_INPUT_PULLDOWN),
OMAP3_MUX(SDMMC1_DAT3, OMAP_MUX_MODE4 | OMAP_PIN_INPUT_PULLDOWN),
OMAP3_MUX(SDMMC1_DAT4, OMAP_MUX_MODE4 | OMAP_PIN_INPUT_PULLDOWN),
OMAP3_MUX(SDMMC1_DAT5, OMAP_MUX_MODE4 | OMAP_PIN_INPUT_PULLDOWN),
OMAP3_MUX(SDMMC1_DAT6, OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT),
OMAP3_MUX(SDMMC1_DAT7, OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT),
OMAP3_MUX(SDMMC2_CLK, OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT),
OMAP3_MUX(SDMMC2_CMD, OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT),
OMAP3_MUX(SDMMC2_DAT0, OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT),
加入到设备列表中
static struct platform_device *am3517_evm_devices[] __initdata = {
&am3517_evm_dss_device,
&matrix_device_keypad,
};
1 请问以上的键盘代码移植是否有问题?
2 板卡启动后,行按键中断可以响应,在matrix-keypad.c文件函数matrix_keypad_interrupt中
打印调试信息printk();说明可以响应行中断,schedule_delayed_work(&keypad->work,msecs_to_jiffies(keypad->pdata->debounce_ms));中的keypad->pdata->debounce_ms值为负值,我在上面明明设置抖动时间为80;不知道是说明原因?
|
去掉定义am3505_keypad_data后面的__initdata
嵌入式linux矩阵键盘,嵌入式linux matrix_keypad矩阵键盘驱动相关推荐
- Linux keypad 设备树,matrix_keypad 矩阵按键驱动分析
matrix_keypad 矩阵按键驱动分析 //主要函数调用过程 matrix_keypad_probe matrix_keypad_parse_dt //根据设备树构造 pdata pdata-& ...
- Atmel跑Linux的arm芯片,Atmel针对Linux的低成本嵌入式设计推出新
Atmel针对Linux的低成本嵌入式设计推出新 来源:dengzhiyu 作者:华仔 浏览:957 时间:2016-08-10 14:18 标签: 摘要: AtmelCorporation日前宣布推 ...
- 嵌入式Linux设备驱动程序:在运行时读取驱动程序状态
嵌入式Linux设备驱动程序:在运行时读取驱动程序状态 Embedded Linux device drivers: Reading driver state at runtime 在运行时了解驱动程 ...
- 嵌入式linux结构框图,嵌入式linux系统的结构
原标题:嵌入式linux系统的结构 1.嵌入式系统的硬件架构 嵌入式系统硬件模型结构,此系统主要由微处理器MPU.外围电路,以及外设组成,微处理器为ARM嵌入式处理芯片,如ARM7TMDI系列及ARM ...
- 嵌入式系统开发学习步骤(Linux高级编程学习顺序)
2019独角兽企业重金招聘Python工程师标准>>> 嵌入式系统开发学习步骤(Linux高级编程学习顺序) 1.Linux 基础 安装Linux操作系统 Linux文件系统 Lin ...
- 嵌入式Linux开发教程:Linux常见命令(上篇)
摘要:这是对周立功编著的<嵌入式Linux开发教程>的第7期连载.本期刊载内容有关LinuxLinux常见命令中的导航命令.目录命令和文件命令.下一期将连载网络操作命令.安装卸载文件系统等 ...
- 嵌入式linux学习路线,嵌入式开发视频教程
Linux 是一个开源.免费的操作系统,主要应用于服务器(网站服务器.云计算集群.DNS 等)和嵌入式,同时也被很多程序员用作个人操作系统.Linux 使用 GPL 许可证,允许任何人以任何形式传播其 ...
- 外网访问arm嵌入式linux系统_嵌入式Linux系统移植的四大步骤
最近在学习系统移植的相关知识,在学习和调试过程中,发现了很多问题,也解决了很多问题,但总是对于我们的开发结果有一种莫名其妙的感觉,纠其原因,主要对于我们的开发环境没有一个深刻的认识,有时候几个简单的命 ...
- 嵌入式攻城狮 I Linux基础
一.操作系统概述 1.励志公式 2.什么是OS? 3.不同领域的主流操作系统 4.虚拟机 5.操作系统发展简史 转存失败重新上传取消二.Linux与Windows对比 1.Windows与Linux的 ...
- 嵌入式系统开发:基于Linux学习笔记整理(学期汇总)
Linux命令操作部分 Ubuntu虚拟机使用 快照 拍摄快照是为了方便还原虚拟机,因为虚拟机(Virtual Machine)是虚拟出来的出来的一台物理计算机,如果你在实验中操作不当或者其他原因导致 ...
最新文章
- xcode添加Cocos2d
- Python 网络爬虫笔记1 -- Requests库
- 复现经典:《统计学习方法》第 8 章 提升方法
- 数学建模【建模竞赛与论文写作】
- ExtJS MVC学习手记 1
- [css] css的负边距有哪些应用场景?
- 我的世界1.6.2 java_我的世界Java版1.16.2
- Python 进阶——从 list 到 NumPy 的多维数组
- 华山论剑之JAVA三大代码生成工具:Lombok、AutoValue和Immutables
- 软件开发过程文档规范说明书--敲重点
- 微信分享网页时自定义标题描述和图片
- BP神经网络的非线性曲线拟合和预测(未完)
- 微信运营营销推广方案
- GitHub下载代理设置
- Tomcat 多实例
- 阿里云服务器上安装rabbitmq流程
- 如何设置福昕阅读器的文档背景颜色
- 《空号》:聊聊我在阿里外包3个月学到了什么。。。
- 花滑三周连跳_阿克塞尔三周PK四周跳 花滑女单正式进入新纪元
- USB device hot plug detection
热门文章
- hyperledger cello 0.9.0 项目部署总结
- 【渝粤教育】电大中专计算机职业素养作业 题库
- matlab如何绘制眼图,在MATLAB中利用ADS数据绘制眼图
- java 51nod
- Selenium浏览器自动化测试使用(1)
- Jetpack Compose——remember、mutableStateOf、rememberSaveable
- VSCode将Java文件编译生成的class文件存在哪的?
- 概率与数理统计——大数定律
- 【转贴】【心灵鸡汤】一个不成功的技术路线人士的总结 (长篇)
- 爬虫快速入门——Request对象的使用