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矩阵键盘驱动相关推荐

  1. Linux keypad 设备树,matrix_keypad 矩阵按键驱动分析

    matrix_keypad 矩阵按键驱动分析 //主要函数调用过程 matrix_keypad_probe matrix_keypad_parse_dt //根据设备树构造 pdata pdata-& ...

  2. Atmel跑Linux的arm芯片,Atmel针对Linux的低成本嵌入式设计推出新

    Atmel针对Linux的低成本嵌入式设计推出新 来源:dengzhiyu 作者:华仔 浏览:957 时间:2016-08-10 14:18 标签: 摘要: AtmelCorporation日前宣布推 ...

  3. 嵌入式Linux设备驱动程序:在运行时读取驱动程序状态

    嵌入式Linux设备驱动程序:在运行时读取驱动程序状态 Embedded Linux device drivers: Reading driver state at runtime 在运行时了解驱动程 ...

  4. 嵌入式linux结构框图,嵌入式linux系统的结构

    原标题:嵌入式linux系统的结构 1.嵌入式系统的硬件架构 嵌入式系统硬件模型结构,此系统主要由微处理器MPU.外围电路,以及外设组成,微处理器为ARM嵌入式处理芯片,如ARM7TMDI系列及ARM ...

  5. 嵌入式系统开发学习步骤(Linux高级编程学习顺序)

    2019独角兽企业重金招聘Python工程师标准>>> 嵌入式系统开发学习步骤(Linux高级编程学习顺序) 1.Linux 基础 安装Linux操作系统 Linux文件系统 Lin ...

  6. 嵌入式Linux开发教程:Linux常见命令(上篇)

    摘要:这是对周立功编著的<嵌入式Linux开发教程>的第7期连载.本期刊载内容有关LinuxLinux常见命令中的导航命令.目录命令和文件命令.下一期将连载网络操作命令.安装卸载文件系统等 ...

  7. 嵌入式linux学习路线,嵌入式开发视频教程

    Linux 是一个开源.免费的操作系统,主要应用于服务器(网站服务器.云计算集群.DNS 等)和嵌入式,同时也被很多程序员用作个人操作系统.Linux 使用 GPL 许可证,允许任何人以任何形式传播其 ...

  8. 外网访问arm嵌入式linux系统_嵌入式Linux系统移植的四大步骤

    最近在学习系统移植的相关知识,在学习和调试过程中,发现了很多问题,也解决了很多问题,但总是对于我们的开发结果有一种莫名其妙的感觉,纠其原因,主要对于我们的开发环境没有一个深刻的认识,有时候几个简单的命 ...

  9. 嵌入式攻城狮 I Linux基础

    一.操作系统概述 1.励志公式 2.什么是OS? 3.不同领域的主流操作系统 4.虚拟机 5.操作系统发展简史 转存失败重新上传取消二.Linux与Windows对比 1.Windows与Linux的 ...

  10. 嵌入式系统开发:基于Linux学习笔记整理(学期汇总)

    Linux命令操作部分 Ubuntu虚拟机使用 快照 拍摄快照是为了方便还原虚拟机,因为虚拟机(Virtual Machine)是虚拟出来的出来的一台物理计算机,如果你在实验中操作不当或者其他原因导致 ...

最新文章

  1. xcode添加Cocos2d
  2. Python 网络爬虫笔记1 -- Requests库
  3. 复现经典:《统计学习方法》第 8 章 提升方法
  4. 数学建模【建模竞赛与论文写作】
  5. ExtJS MVC学习手记 1
  6. [css] css的负边距有哪些应用场景?
  7. 我的世界1.6.2 java_我的世界Java版1.16.2
  8. Python 进阶——从 list 到 NumPy 的多维数组
  9. 华山论剑之JAVA三大代码生成工具:Lombok、AutoValue和Immutables
  10. 软件开发过程文档规范说明书--敲重点
  11. 微信分享网页时自定义标题描述和图片
  12. BP神经网络的非线性曲线拟合和预测(未完)
  13. 微信运营营销推广方案
  14. GitHub下载代理设置
  15. Tomcat 多实例
  16. 阿里云服务器上安装rabbitmq流程
  17. 如何设置福昕阅读器的文档背景颜色
  18. 《空号》:聊聊我在阿里外包3个月学到了什么。。。
  19. 花滑三周连跳_阿克塞尔三周PK四周跳 花滑女单正式进入新纪元
  20. USB device hot plug detection

热门文章

  1. hyperledger cello 0.9.0 项目部署总结
  2. 【渝粤教育】电大中专计算机职业素养作业 题库
  3. matlab如何绘制眼图,在MATLAB中利用ADS数据绘制眼图
  4. java 51nod
  5. Selenium浏览器自动化测试使用(1)
  6. Jetpack Compose——remember、mutableStateOf、rememberSaveable
  7. VSCode将Java文件编译生成的class文件存在哪的?
  8. 概率与数理统计——大数定律
  9. 【转贴】【心灵鸡汤】一个不成功的技术路线人士的总结 (长篇)
  10. 爬虫快速入门——Request对象的使用