arm-linux

http://armboard.taobao.com/

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2010年7月28日

摘要: Linux 的 Input Device 是重要的一個 subsystem,在進行實例介紹前,先大略了解一下相關的 API。Linux Input Deviceinput.c是Linux的”input”驅動程式,主要支援鍵盤與滑鼠的輸入;input.c介面有趣的地方是採用了事件(event)的方式來處理輸入,以下是input.c介面重要的資料結構與函數:* struct input_dev* void input_event(struct input_dev *dev, unsigned int type, unsigned int code, int value)* void input_ 阅读全文
posted @ 2010-07-28 20:31 arm-linux 阅读(562) 评论(0) 推荐(0) 编辑

摘要: 好久没来了!写点东西.关于linux 2.6下面的键盘驱动的实现. 2.6内核采用"input sub system" 的概念.将输入驱动分成三块: driver,input core和Event handler. "一个输入事件,如鼠标移动,键盘按键按下,joystick的移动等等通过 Driver -> InputCore -> Eventhandler -> userspace 的顺序到达用户空间传给应用程序。" 关于输入子系统详细的文章有一个老兄写了一篇: http://blog.csdn.net/colorant/archiv 阅读全文
posted @ 2010-07-28 20:09 arm-linux 阅读(1463) 评论(0) 推荐(0) 编辑

摘要: --作者:老树--发布时间:2010-6-2 15:01:19--Android 架构解析及驱动 键盘篇一、用户空间 ADROID 2.1 架构解析 7 键盘 以上链接,详细介绍了Android用户空间按键的操作,最终通过不断轮询所有设备,直到读取有POLLIN事件产生的设备状态:if(mFDs[i].revents & POLLIN) {res = read(mFDs[i].fd, &iev, sizeof(iev));......二、底层驱动1.设备注册static struct resource s3c_keypad_resource[] = {[0] = { .star 阅读全文
posted @ 2010-07-28 19:23 arm-linux 阅读(2587) 评论(0) 推荐(0) 编辑

摘要: 将addr的第nr位置为1 假设*addr = 0, nr = 3;则执行结果为1000(二进制数)extern __inline__ int set_bit(int nr,long * addr)...{ int mask, retval; addr += nr >> 5; //(1) mask = 1 << (nr & 0x1f); //(2) cli(); retval = (mask & *addr) != 0; *addr |= mask; //(3) sti(); return retval;}(1)如果nr>31则将nr的高27为截取 阅读全文
posted @ 2010-07-28 18:57 arm-linux 阅读(6041) 评论(0) 推荐(0) 编辑

摘要: Linux 的 Input Device 是重要的一个 subsystem,在进行实例介绍前,先大略了解一下相关的 API。 Linux Input Device input.c是Linux的"input"驱动程式,主要支援键盘与滑鼠的输入;input.c介面有趣的地方是采用了事件(event)的方式来处理输入,以下是input.c介面重要的资料结构与函数: * struct input_dev * void input_event(struct input_dev *dev, unsigned int type, unsigned int code, int value) 阅读全文
posted @ 2010-07-28 18:12 arm-linux 阅读(928) 评论(0) 推荐(0) 编辑

摘要: 一、让LCD显示可爱的小企鹅还是先说说环境吧,处理器为S3C2410,linux的版本当然是2.6.20的。下面先说说怎样让LCD上显示出可爱的小企鹅。最直接的步骤如下(记住不要问为什么哈~_~,一步一步跟着走就行了):1. 添加s3c2410处理器的LCD控制寄存器的初始值,具体做法为在文件arch/arm/mach-s3c2410/mach-smdk2410.c中添加struct s3c2410fb_mach_info类型的寄存器描述讯息,如下所示:static struct s3c2410fb_mach_info smdk2410_lcd_platdata = {.fixed_syncs 阅读全文
posted @ 2010-07-28 18:00 arm-linux 阅读(3563) 评论(1) 推荐(0) 编辑

摘要: memcpy() -- 拷贝内存内容2007年07月06日 星期五 09:07相关函数: bcopy(), memccpy(), memmove(), strcpy(), strncpy()表头文件: #include <string.h>定义函数: void *memcpy(void *dest, const void *src, size_t n)函数说明: memcpy()用来拷贝src所指的内存内容前n个字节到dest所指的内存地址上。与strcpy()不同的是,memcpy()会完整的复制n个字节,不会因为遇到字符串结束'/0'而结束返回值: 返回指向de 阅读全文
posted @ 2010-07-28 17:34 arm-linux 阅读(1588) 评论(0) 推荐(0) 编辑

摘要: 浅析linux下键盘设备工作和注册流程【浅析linux下鼠标驱动的实现】input_init()=>=>class_register(&input_class);注册input类input_proc_init();创建proc下的目录和文件register_chrdev(INPUT_MAJOR, "input", &input_fops);注册驱动程序到cdev_map上,以待驱动设备.drivers/input/keyboard/pxa3xx_keypad.c为我们的keyboard设备,pxa3xx_keypad_probe=>requ 阅读全文
posted @ 2010-07-28 17:31 arm-linux 阅读(1196) 评论(0) 推荐(0) 编辑

摘要: Android、X windows、qt等众多应用对于linux系统中键盘、鼠标、触摸屏等输入设备的支持都通过、或越来越倾向于标准的input输入子系统。因为input子系统已经完成了字符驱动的文件操作接口,所以编写驱动的核心工作是完成input系统留出的接口,工作量不大。但如果你想更灵活的应用它,就需要好好的分析下input子系统了。一、input输入子系统框架下图是input输入子系统框架,输入子系统由输入子系统核心层( Input Core ),驱动层和事件处理层(Event Handler)三部份组成。一个输入事件,如鼠标移动,键盘按键按下,joystick的移动等等通过 input 阅读全文
posted @ 2010-07-28 17:22 arm-linux 阅读(383) 评论(0) 推荐(0) 编辑

摘要: Linux 系统提供了input子系统,按键、触摸屏、键盘、鼠标等输入都可以利用input接口函数来实现设备驱动,因此,12.1~12.2节的按键和触摸屏设备驱动都可以作为input设备驱动而实现。在Linux 内核中,input设备用input_dev 结构 体描述,使用input子系统实现输入设备驱动的时候,驱动的核心工作是向系统报告按键、触摸屏、键盘、鼠标等输入事件(event,通过input_event结构 体描述),不再需要关心文件操作接口,因为input子系统已经完成了文件操作接口。驱动报告的事件经过InputCore和 Eventhandler最终到达用户空间。通过input子系 阅读全文
posted @ 2010-07-28 17:17 arm-linux 阅读(1831) 评论(0) 推荐(0) 编辑

摘要: 通过Platform机制开发发底层驱动的大致流程为:定义platform_device---注册platform_device---定义platform_driver-----注册platform_driver。 1.Platform_device定义于kernel/include/linux/platform_device.h中,structplatform_device{constchar*name;u32id;structdevicedev;u32num_resources;structresource*resource;};定义一个platform_device一般需要初始化两个方面的 阅读全文
posted @ 2010-07-28 16:05 arm-linux 阅读(4083) 评论(1) 推荐(0) 编辑

摘要: Author: taoyuetaoEmail: tao_yuetao@yahoo.com.cnBlog: http://www.eetop.cn/blog/?11145 2006-11-21================================从2.6版本开始引入了platform这个概念,在开发底层驱动程序时,首先要确认的就是设备的资源信息,例如设备的地址,在2.6内核中将每个设备的资源用结构platform_device来描述,该结构体定义在kernel/include/linux/platform_device.h中,struct platform_device {const 阅读全文
posted @ 2010-07-28 14:46 arm-linux 阅读(514) 评论(0) 推荐(0) 编辑

摘要: 系统# uname -a # 查看内核/操作系统/CPU信息# head -n 1 /etc/issue # 查看操作系统版本# cat /proc/cpuinfo # 查看CPU信息# hostname # 查看计算机名# lspci -tv # 列出所有PCI设备# lsusb -tv # 列出所有USB设备# lsmod # 列出加载的内核模块# env # 查看环境变量资源# free -m ... 阅读全文
posted @ 2010-07-28 14:06 arm-linux 阅读(1398) 评论(0) 推荐(0) 编辑