
linux驱动
qingfengtsing
这个作者很懒,什么都没留下…
展开
-
linux设备分类
linux驱动程序分为三类1、字符设备 steam方式,顺序访问,没有缓冲2.、块设备 block方式,随机访问,有缓冲3、网络设备 破坏了linux设备的规则(任何设备可以按文件访问),是通过socket调用的,所以单独列出来。原创 2014-01-19 16:35:19 · 1314 阅读 · 0 评论 -
implicit declaration of function 'i2c_transfer'
今天在编译vtl_ts模块时(触摸屏)出现好多关于i2c函数没有定义的错误。但是打开vtl_ts.c文件发现有#include 在i2c.h头文件中也发现有extern i2c_transfer(××××);此时我就有点疑惑了,后来想到可能内核没有选择i2c驱动模块,所以链接时出现问题。于是make menuconfig ,选中i2c模块,make uimage。再make原创 2014-12-31 18:34:49 · 1848 阅读 · 0 评论 -
嵌入式 十个最值得阅读学习的C开源项目代码
转载地址:http://blog.youkuaiyun.com/skdkjzz/article/details/40393957开源世界有许多优秀的开源项目,我选取其中十个最优秀的、最轻量级的C语言的项目,希望可以为C语言开发人员提供参考。十个最值得阅读学习的C开源项目代码1. Webbench2. Tinyhttpd3. cJSON4. CMockery5. Libev6. Mem转载 2014-12-06 14:30:46 · 8317 阅读 · 0 评论 -
usb接口速度
USB协会早就取消了USB1.1的标准,现在所有接口都统称USB2.0接口,按速度划分为3大类: USB2.0 High Speed 理论速度480M/s,正牌的mp3多数是这个速度。USB2.0 Full Speed 理论速度12M/s,对应以前我们常说的USB1.1; USB2.0 Low Speed 理论速度1.5M/s.我的两个摄像头插上两个板卡前后两个usb接口时,h原创 2014-12-04 17:28:53 · 1594 阅读 · 0 评论 -
linux 2.6.21支持vimcro摄像头驱动的调试过程
最近在搞中星微摄像头,想在linux下使用usb摄像头。但是网上看的uvc驱动是从linux2.6.27以后才支持的,以前都是单独的摄像头驱动。而我用的是linux2.6.21,在multimedia devices居然有z0301驱动。我使用了两款中星微摄像头vendor id product id 分别为 0ac8 301b 0ac8转载 2014-12-04 11:48:37 · 1580 阅读 · 0 评论 -
OMAPL138 eCAP capture
最近在弄OMAPL138的ecap的驱动。之前对eCAP一无所知,后来查了一下好像类似PWM驱动(脉冲调试)。参考OMAPL138http://processors.wiki.ti.com/index.php/OMAP-L1_Linux_Drivers_Usage#eCAP这样对eCAP有所了解,eCAP module can function either in PWM mode原创 2015-01-28 13:57:47 · 936 阅读 · 0 评论 -
Linux内核访问外设I/O资源的方式
转载地址:http://blog.chinaunix.net/uid-20643761-id-1594857.htmlAuthor: DongasDate: 08-08-02 我们知道默认外设I/O资源是不在Linux内核空间中的(如sram或硬件接口寄存器等),若需要访问该外设I/O资源,必须先将其地址映射到内核空间中来,然后才能在内核空间中访问它。 Linux内核访问外转载 2014-05-02 20:18:34 · 765 阅读 · 0 评论 -
也谈零拷贝(一) 抛砖篇
转载地址:http://blog.youkuaiyun.com/linuxdrivers/article/details/7487618首先,如果读者之前不熟悉什么是零拷贝,请参考下面的链接: Linux中的零拷贝技术,第1部分 http://www.ibm.com/developerworks/cn/linux/l-cn-zerocopy1/index.ht转载 2014-04-16 06:23:42 · 845 阅读 · 0 评论 -
linux napi网卡驱动原理
转载地址:http://blog.chinaunix.net/uid-26902809-id-4100219.htmlNAPI(New API) 将中断与轮讯结合在一起,避免频繁的中断造成的系统开销。基本思路是:中断到来--->关闭中断--->调度softirq--->在softirq里面多设备进行轮询,直到没有包为止--->开启中断/* * Structure for转载 2014-02-14 21:10:25 · 2430 阅读 · 0 评论 -
linux 内核崩溃处理
pc : [1.定位代码崩溃在内核中还是xxx.kocat /proc/kallsyms >1.txtc0034818 T __kmalloc...c00082a8 t quiet_kernel /*最开始的是虚拟地址*/...bf000000 t $a [cdd] ..由此可看代码崩溃在xxx.ko2.定位崩溃在xxx.ko中的哪个函数转载 2014-01-19 17:26:57 · 3962 阅读 · 0 评论 -
linux驱动杂项知识点
阻塞/非阻塞可以用信号量,自旋锁或原子量轮询中主要用到了等待队列异步通知主要是信号,fasyn,更新硬盘数据转载 2014-01-19 21:00:47 · 715 阅读 · 0 评论 -
linux kernel中typeof和container_of的理解
1.typeof引入原因#define min(x,y) ((x) > (y) ? (y) : (x))如果min(x++ , y++),这个宏定义就会有问题#define min(X,Y) \(__extension__ \({ \ typeof(X) __x=(X), __y=(Y); \ (__x}) \) 此时linux原创 2014-01-19 16:25:55 · 2568 阅读 · 0 评论 -
linux字符设备驱动框架理解
字符设备框架主要有四个主要数据结构1. struct cdev2. struct file_operations3. struct inode4. struct file进程通过文件表(file table)的fd访问inode,在open之前cdev的file_operations赋值给filep->file_operations。设备open时驱动可以通过ino转载 2014-01-19 14:28:31 · 1904 阅读 · 0 评论 -
中断号和芯片中断引脚的关系
转载地址:http://zhwen.org/xlog/?p=315一直以来搞不懂这个中断号的来历,总以为是中断控制器自己规定的一个号,但是最近在看了s3c2440的中断控制后才发现不是这么一回事.2440的中断处理只能处理32个中断,但是其在内核中出现的中断号却有51,58等.而且它的外部中断INT4~7共享一个中断控制寄存器的一位,INT8~23也是共享控制寄存器的一位.我就好奇了,转载 2014-01-19 21:24:54 · 7018 阅读 · 2 评论 -
linux gpio字符设备驱动
在linux下编写led驱动,控制相应的gpio管脚。在这里有两种方式1) 直接操作相应的寄存器2) 通过内核提供的gpio操作库函数第一种方式就省略了,只讲第二种方式。这里板卡上有两个led灯,在用户空间采用两种方式控制led1. /dev/led0 /dev/led1fd0 = open("/dev/led0", O_RD_WR);ioctl(fd0, 1, 0转载 2014-01-19 15:00:01 · 4290 阅读 · 0 评论 -
gpio脉冲用软件实现
代码一: while(ADS_DATA_HI == 0);while(ADS_DATA_HI);count++;代码二:while(ADS_DATA_HI == 0); if(ADS_DATA_HI == 0){ count++}我总是觉得如果想执行count++,ADS_DATA_HI管脚需要满足下降沿。但是代码二是不满足的。因为下降沿是有个宽度转载 2015-02-05 21:07:30 · 1531 阅读 · 0 评论