摘要: 1.触摸屏的简介 触摸屏是标准的输入设备,在写驱动程序时采用的之前讲过的输入子系统那套框架。我们无需关心对设备文件的操作,只需关心对硬件寄存器的操作和上报事件即可。 触摸屏是附在LCD上的一层薄膜,并不是我们平时认识的触摸屏,它只是起到确定坐标的作用。 S3C2440提供的触摸屏接口有4种处理模式, 阅读全文
posted @ 2017-01-11 18:21 wade_linux 阅读(1300) 评论(0) 推荐(0) 编辑
摘要: 参考s3c2410fb.c总结出框架 1.代码分析 1.1 入口函数 注册一个platform_driver结构体,如果存在同名的设备dev时,将调用probe函数。 搜索s3c2410-lcd可得下面的s3c_device_lcd结构体 1.2 probe函数(只列出关键性代码) 由此可知,其主要 阅读全文
posted @ 2017-01-10 16:13 wade_linux 阅读(376) 评论(2) 推荐(0) 编辑
摘要: 1 平台总线的简介 平台总线是一种虚拟的总线,相应的设备则为platform_device,而驱动则为platform_driver。总线将设备和驱动绑定,在系统每注册一个设备的时候,会寻找与之匹配的驱动;相反的,在系统每注册一个驱动的时候,会寻找与之匹配的设备,而匹配由总线完成。 我们可以把一个驱 阅读全文
posted @ 2017-01-09 16:37 wade_linux 阅读(549) 评论(0) 推荐(1) 编辑
摘要: 之前我们做的按键驱动程序都是应用程序主动open设备/dev/buttons而现实情况不能来打开这个设备甚至不知道这个设备的存在。 解决方案:变成通用的驱动程序。接下来我们引入的输入子系统可以完成该任务。 1.输入子系统的简介 1.1 引入输入子系统的好处: (1)统一了物理形态各异的相似的输入设备 阅读全文
posted @ 2017-01-09 13:27 wade_linux 阅读(376) 评论(0) 推荐(0) 编辑
摘要: 一.以查询方式实现 1.写出驱动框架 1.1 仿照其他程序加一些必要的头文件 1.2 构造一个结构体file_operations 1.3 根据file_operations的所选项写出所需的函数,并构建出来 1.4 入口函数、出口函数的注册和卸载 1.5 修饰入口函数和出口函数 1.6 给sysf 阅读全文
posted @ 2017-01-08 21:08 wade_linux 阅读(409) 评论(0) 推荐(0) 编辑
摘要: 1.写出leds_open,leds_write函数2.1告诉内核这几个函数的存在?定义一个结构体file_operations2.2把这个结构体告诉内核?用register_chrdev(major,name,file_operations) //将主设备号与file_operations结构一起 阅读全文
posted @ 2017-01-07 01:06 wade_linux 阅读(339) 评论(0) 推荐(0) 编辑
摘要: 1、以4.3.2版本的编译器为例 将arm-linux-gcc-4.3.2.tar.bz2放在/work目录下 解压缩: sudo tar jxvf /work/arm-linux-gcc-4.3.2.tar.bz2 -C / 添加环境变量: sudo vi /etc/environment 注释掉 阅读全文
posted @ 2017-01-07 00:55 wade_linux 阅读(1185) 评论(0) 推荐(0) 编辑
摘要: 前面讲到,使用非阻塞方式有许多的缺点。主要是单线程,一直占用CPU资源,其他程序无法执行,造成资源的浪费。只能用于较简单循环的场所。而线程灵活,CPU占用率小,适用于大部分场合。 1.条件变量的使用 条件变量是用来通知共享数据的状态信息的机制。由于涉及共享数据,所以一般和互斥量配合使用。 1.1创建 阅读全文
posted @ 2016-12-27 12:36 wade_linux 阅读(830) 评论(0) 推荐(0) 编辑
摘要: nonblock函数的原型如下: nonblock函数主要完成以下工作: a.从标准输入获取状态,存放在ttystate中 b.关闭the canonical mode,通过置0的方式实现。 c.通过ttystate设置标准输入的状态。 kbhit函数的原型如下: 该函数主要通过timeval和se 阅读全文
posted @ 2016-12-25 23:05 wade_linux 阅读(2914) 评论(0) 推荐(0) 编辑
摘要: 1.1在这之前,我们需要了解程序的编译过程 a.预处理:检查语法错误,展开宏,包含头文件等 b.编译:*.c-->*.S c.汇编:*.S-->*.o d.链接:.o +库文件=*.exe 1.2体验在VC下程序的编译 a.先编译,在链接 b.修改了哪个文件,就单独编译此文件,在链接 c.修改了哪个 阅读全文
posted @ 2016-12-24 14:39 wade_linux 阅读(2490) 评论(0) 推荐(0) 编辑