驱动开发
luobin2024
这个作者很懒,什么都没留下…
展开
-
Linux设备驱动模型
Linux设备驱动模型 原文:http://blog.163.com/pycoming@126/blog/static/1171132092010423104623994/(一)节能之初衷2.6内核增加了一个引人注目的新特性——统一设备模型(device model)。设备模型提供了一个独立的机制专门来表示设备,并描述其在系统中的拓扑结构,从而使得系统具有以下优点:l转载 2012-09-26 17:04:19 · 700 阅读 · 0 评论 -
Datashee常用名词
Interrupt controller 中断控制器non-latched 非锁存latched 锁存Non-volatile memory 非易失性存储器calibration 校准Manual compensation 手动补偿Fast compensation原创 2012-10-24 09:14:42 · 764 阅读 · 0 评论 -
DEVICE_ATTR() 与 sysfs接口
原文地址:DEVICE_ATTR() 与 sysfs接口作者:xxha000721 sysfs接口函数到建立_DEVICE_ATTR 最近在弄Sensor驱动,看过一个某厂家的成品驱动,里面实现的全都是sysfs接口,hal层利用sysfs生成的接口,对Sensor进行操作。说道sysfs接口,就不得不提到函数宏 DEVICE_ATTR原型是#def转载 2012-10-27 16:00:06 · 2343 阅读 · 0 评论 -
我对linux理解之i2c 二
转载出处:amingriyue.blog.chinaunix.net 我们下面开始分析i2c的通信,即读写过程。我们先看读函数,对应i2c core中的i2c_master_recv:int i2c_master_recv(struct i2c_client *client, char *buf ,int count){ struct i2c_adapter *ada转载 2012-10-27 13:55:28 · 1012 阅读 · 0 评论 -
我对linux理解之i2c一
转载出处:amingriyue.blog.chinaunix.net i2c设备是非常普遍的一种设备,我们现在开始i2c子系统的分析。我们先从注册开始:static const struct i2c_device_id IT7260_ts_id[] = { { IT7260_I2C_NAME, 0 }, { } };static str转载 2012-10-27 13:56:32 · 1003 阅读 · 0 评论 -
字符驱动程序second的例子
字符驱动程序的例子:《设备驱动开发详解(宋宝华)》P206-208,编写的second的驱动. 在被打开的时候初始化一个定时器并将其添加到内核定时器链表,每秒钟输出一个当前的jiffies,整个驱动,测试,Makefile的代码如下:/***************************second.c驱动代码************************//*=======原创 2012-11-07 13:12:35 · 1039 阅读 · 0 评论 -
android中各个部件驱动在源码中的位置
Android的专用驱动:Ashmem、binder、logger Ashmem:匿名共享内存驱动Logger:轻量级的log驱动Binder:基于OpenBinder驱动,为android平台提供IPC支持。Android Power Management:定时器驱动,用于唤醒设备 Ashmem路径: kernel/include/linux/ashmem.h原创 2012-09-11 20:10:43 · 6623 阅读 · 0 评论 -
调试触屏的一些积累
原文:http://kaiyuan.blog.51cto.com/930309/589490 最近在做一些调试触屏的工作,经过一段时间的接触,碰到了一些问题,随手记下。 电容屏的的驱动,常见的问题是: 1.虚拟按键的敏感区域不正确比如触碰虚拟按键的图标,按键无反应,但是触碰按键图标的右上角,按键的反应却正常。 2.在触屏测试时,画的线不圆滑,有的折线很明显触转载 2012-10-12 11:43:41 · 1089 阅读 · 0 评论 -
git知识
Linux项目开始后,绝大多数的Linux内核维护工作都花在了提交补丁和保存归档的繁琐事物上(1991——2002年间)。到2002年,整个项目组开始启用分布式版本控制系统BitKeeper来管理和维护代码。到2005年的时候,开发BitKeeper的商业公司同Linux内核开发社区的合作关系结束,他们收回了免费使用BitKeeper的权力。这就使得Linux开源社区不得不开发了自己的版本控制软件转载 2013-02-22 17:47:13 · 866 阅读 · 0 评论 -
AWK工具简介
http://blog.csdn.net/tesge/article/details/64082文对于非常有用的 AWK 文本操作工具进行了介绍,非常有价值。 AWK 实用工具带有其自己的自包含语言,它不仅是 Linux 中也是任何环境中现有的功能最强大的数据处理引擎之一。这种编程及数据操作语言(其名称得自于它的创始人 Alfred Aho、Peter Weinberger 和 B转载 2013-02-22 14:31:18 · 644 阅读 · 0 评论 -
[宏]_IO, _IOR, _IOW, _IOWR 宏的用法与解析
在驱动程序里, ioctl() 函数上传送的变量 cmd 是应用程序用于区别设备驱动程序请求处理内容的值。cmd除了可区别数字外,还包含有助于处理的几种相应信息。 cmd的大小为 32位,共分 4 个域:bit31~bit30 2位为 “区别读写” 区,作用是区分是读取命令还是写入命令。bit29~bit15 14位为 "数据大小" 区,表示 ioctl() 中的 arg 变量转载 2013-02-22 11:35:38 · 5058 阅读 · 2 评论 -
Linux驱动开发学习的一些必要步骤
1. 学会写简单的makefile 2. 编一应用程序,可以用makefile跑起来 3. 学会写驱动的makefile4. 写一简单char驱动,makefile编译通过,可以insmod, lsmod, rmmod. 在驱动的init函数里打印hello world, insmod后应该能够通过dmesg看到输出。5. 写一完整驱动, 加上read, write, ioctl,转载 2012-09-05 11:27:51 · 13605 阅读 · 0 评论 -
I2C驱动
http://www.cnblogs.com/cute/archive/2011/08/30/2159326.html一:I2C 概述I2C是philips提出的外设总线.I2C只有两条线,一条串行数据线:SDA,一条是时钟线SCL ,使用SCL,SDA这两根信号线就实现了设备之间的数据交互,它方便了工程师的布线。因此,I2C总线被非常广泛地应用在EEPROM,实时钟,转载 2013-07-27 12:05:39 · 1168 阅读 · 0 评论 -
linux kernel 工作队列
原文地址:http://blog.sina.com.cn/s/blog_55465b470100kn8d.html INIT_DELAYED_WORK(&data->work, bma250_work_func);是一个宏,我们给它传递了两个参数.&data->work和bma250_work_func。.对设备驱动熟悉的人不会觉得INIT_DELAYED_WORK()很陌生,其实早就有这转载 2012-11-01 15:01:32 · 1376 阅读 · 0 评论 -
Linux中Workqueue机制分析
Linux中Workqueue机制分析软硬件协同设计是未来发展的主流,软硬件的界限越来越模糊,软硬件的设计思想是相通的,实现方法是各异的,实现的结果上当然也存在较大差别,因此,很有必要做好软硬件的协同设计。 什么是workqueue?Linux中的Workqueue机制就是为了简化内核线程的创建。通过调用workqueue的接口就能创建内核线程。并且可以根据当前系统CPU的个数创建线程的数转载 2012-11-01 15:30:04 · 2786 阅读 · 0 评论 -
Linux设备驱动调试技术
以下为转载http://mp.tongji.edu.cn/cgi-bin/topic.cgi?forum=5&topic=14&changemode=1文档上面的内容,个人觉得通过改变打印等级是每个Linux工程师都应该掌握的,所以在此转载.给自己作一个参考.... 对于任何一位内核代码的编写者来说,最急迫的问题之一就是如何完成调试。由于内核是一个不与特定进程相关的功能集合,所以内核代码无转载 2012-10-22 14:35:36 · 5826 阅读 · 0 评论 -
最简单的驱动hello.c与Makefile模板
一、hello.c文件分析#include#includeMODULE_LICENSE("Dual BSD/GPL");static int hello_init(void){ printk(KERN_ALERT "Hello,init the module!"); return 0;}static void hello_exit(void){ prin转载 2012-09-14 14:16:07 · 7202 阅读 · 1 评论 -
S3C2440上触摸屏驱动实例开发讲解
一、开发环境主 机:VMWare--Fedora 9 开发板:Mini2440--64MB Nand, Kernel:2.6.30.4 编译器:arm-linux-gcc-4.3.2 二、前提知识1、Linux输入子系统(Input Subsystem): 在Linux中,输入子系统是由输入子系统设备驱动层、输入子系统核心层(Input Core)和输入子系统事件处理层(转载 2012-09-11 20:04:43 · 1364 阅读 · 0 评论 -
S3C2410驱动分析之ADC通用驱动
内核版本:2.6.36源码路径:arch/arm/plat-samsung/adc.c 在Linux-2.6.36中,提供了一个S3C2410的ADC通用驱动模块,定义在arch/arm/plat-samsung/adc.c文件中。用户要使用ADC,可以使用该通用驱动模块提供的接口进行注册和读取。首先我们来看初始化函数adc_init:[cpp] view plaincopyp转载 2012-09-13 14:21:14 · 1272 阅读 · 0 评论 -
Fedora5下构造内核树 .
Fedora5下构造内核树1.查看自己的内核版本: [root@localhost /]# uname -rm显示: 2.6.15-1.2054_FC5 i6862.根据自己的内核版本下载相应的源代码包,我下载的是kernel-2.6.15-1.2054_FC5.src.rpm。下载网址:http://rpm.pbone.net/index.php3?stat=26&d转载 2012-09-29 16:30:08 · 666 阅读 · 0 评论 -
编译驱动scull出错后解决方案
编译驱动scull出错后解决方案1、scripts/Makefile.build:49: *** CFLAGS was changed in "/home/robin/drivers/scull/Makefile".Fix it to use EXTRA_CFLAGS. Stop.将makefile中的 CFLAGS 替换成 EXTRA_CFLAGS就可以了。原因是在2.6的内核原创 2012-09-14 15:50:17 · 1540 阅读 · 0 评论 -
S3C2410驱动分析之触摸屏驱动
内核版本:2.6.36源码路径:drivers/input/touchscreen/s3c2410_ts.c 在Linux-2.6.36中,S3C2410对应的触摸屏驱动程序是drivers/input/touchscreen/s3c2410_ts.c,本文对这个文件进行分析,详细介绍相关知识点。S3C2410的触摸屏驱动和ADC驱动紧密联系在一起,在读本文之前,请大家先看我的上一篇博转载 2012-09-13 14:18:03 · 2736 阅读 · 0 评论 -
加载驱动模块时Device or resource busy的解决方法
加载驱动模块时Device or resource busy的解决方法加载驱动模块时Device or resource busy的解决方法insmod或modprobe驱动模块时Device or resource busy的解决方法 在编译好memdev驱动模块后,通过insmod加载模块时发现以下错误提示: #insmod memdev.koinsmod: error转载 2012-09-17 11:17:26 · 40032 阅读 · 1 评论 -
Kconfig和Makefile的修改
Kconfig文件的作用内核源码树的目录下都有两个文件Kconfig(2.4版本是Config.in)和Makefile。分布到各目录的Kconfig构成了一个分布式的内核配置数据库,每个Kconfig分别描述了所属目录源文件相关的内核配置菜单。在内核配置make menuconfig(或xconfig等)时,从Kconfig中读出菜单,用户选择后保存到.config的内核配置文件中。转载 2012-09-18 10:56:49 · 4676 阅读 · 0 评论 -
Kconfig和Makefile的编写例子
从Kconfig中读出菜单,用户选择后保存到.config的内核配置文件中。在内核编译时,主Makefile调用这个.config,就知道了用户的选择。Kconfig就是对应着内核的配置菜单。如果要想添加新的驱动到内核的源码中,可以修改Kconfig,这样就可以选择这个驱动,如果想使这个驱动被编译,要修改Makefile代码位置:\kernel\drivers\input\touchscr原创 2012-09-18 11:31:10 · 1642 阅读 · 0 评论 -
error: void value not ignored as it ought to be .
转自:http://blog.csdn.net/nemo2011/article/details/7301469在编译字符设备驱动文件时出现了一个 error: void value not ignored as it ought to be 错误。 本人表示非常恼火。问题出在: int ret = unregister_chrdev(Major,DEVICE_NAME); 编译器检转载 2012-09-17 11:19:11 · 1608 阅读 · 0 评论 -
触摸屏移植
OK6410 A板 4.3 寸移植操作是:1、注销掉头文件 #include2、添加头文件 #include2.1 copy arch/arm/mach-s3c64xx/include/mach/ts.h 到目标内核目录//2.2 copy arch/arm/plat-samsung/include/plat/ts.h 到目标内核目录//2.3 copy i转载 2012-10-09 16:58:16 · 901 阅读 · 0 评论 -
DEVICE_ATTR() 与 sysfs接口
另外一个详细的讲解网址:http://www.xxlinux.com/linux/article/development/kernel/20090112/14828_2.html 说道sysfs接口,就不得不提到函数宏 DEVICE_ATTR原型是#define DEVICE_ATTR(_name, _mode, _show, _store) \struct device_attr转载 2012-10-17 16:25:25 · 732 阅读 · 0 评论 -
Linux驱动程序接口
原文:http://www.eefocus.com/manu20/blog/08-07/152596_64f24.html正如Linux torvalds 所说\"we\re back to the times when men were men and wrote their device drivers\",come on ,then!以下我将我的小心得与大家分享,并请高手指点江山啊!转载 2012-10-17 16:20:51 · 2739 阅读 · 0 评论 -
input 输入设备平台驱动
原文:http://blog.163.com/jlz_325/blog/static/19174000920111175129216/linux 3.1内核的驱动路(3) ---- input 输入设备平台驱动 1,主机环境:VMare下linux5.7 ,384内存。2,编译编译环境:arm-linux-gcc v4.4.33,开发板:FL2440,4M转载 2012-10-22 14:38:48 · 1053 阅读 · 0 评论 -
驱动中id_table的分析
http://blog.csdn.net/huyugv_830913/article/details/5905938一、I2C驱动probe***i2c_device_id用于device与drive配对static const struct i2c_device_id tps65010_id[] = { { "tps65010", TPS65010 }, {转载 2012-10-31 10:56:54 · 5599 阅读 · 1 评论