本文主要分析linux-2.6.28内核版本的字符设备抽象层源码文件char_dev.c。该文件代码量不大,但其为linux应用程序访问实际字符型硬件设备搭建了桥梁,进一步限定了linux字符设备驱动的设计框架。 void __init chrdev_init(void) { cdev_...
分类:
系统相关 时间:
2014-08-17 18:20:22
阅读次数:
237
一、linux系统将设备分为3类:字符设备、块设备、网络设备。使用驱动程序:1、字符设备:是指只能一个字节一个字节读写的设备,不能随机读取设备内存中的某一数据,读取数据需要按照先后数据。字符设备是面向流的设备,常见的字符设备有鼠标、键盘、串口、控制台和LED设备等。2、块设备:是指可以从设备的任意位...
分类:
系统相关 时间:
2014-08-04 17:13:17
阅读次数:
644
Linux应用层想要操作kernel层的API,比如想操作相关GPIO或寄存器,可以通过写一个字符设备驱动来实现。
1、先在rootfs中的 /dev/ 下生成一个字符设备。注意主设备号 和 从设备号。可用如下shell脚本生成:
if [ ! -e audioIN ];then
sudo mknod audioIN c 240 0
fi
生成的设备为 /d...
分类:
系统相关 时间:
2014-07-18 22:36:04
阅读次数:
349
第零章:扯扯淡 特此总结一下写的一个简单字符设备驱动程序的过程,我要强调一下“自顶向下”这个介绍方法,因为我觉得这样更容易让没有接触过设备驱动程序的童鞋更容易理解,“自顶向下”最初从《计算机网络 自顶向下方法》这本书学到的,我觉得有时候这是一种很好的方式。第一章:测试程序 咦?你怎么跟别人的思路.....
分类:
系统相关 时间:
2014-06-29 00:24:24
阅读次数:
691
前段时间在学习linux设备驱动的时候,看了陈学松著的《深入Linux设备驱动程序内核机制》一书。说实话,这是一本很好的书,作者不但给出了在设备驱动程序开发过程中的所需要的知识点(如相应的函数和数据结构),还深入到linux内核里去分析了这些函数或数据结构的原理,对设备驱动开发的整个过程和原理都分析的很到位。但可能是由于知识点太多,原理也比较深的原因,这本书在知识点的排版上跨度有些大,所以读起来显...
分类:
系统相关 时间:
2014-06-28 08:15:08
阅读次数:
353
本篇文章记录字符设备的驱动框架:1.定义cdev接口体和class结构体#define HELLO_CNT 2static int major = 0;//主设备号为0,需要让系统自动生成主设备号static struct cdev hello_cdev;static struct class *c...
分类:
系统相关 时间:
2014-06-27 22:36:58
阅读次数:
423
裸机下控制LED灯非常方便,只需要配置好GPIO引脚功能,然后向GPIO引脚映射的内存地址处写入数据即可,但linux下驱动就不那么简单了,需要结合字符设备驱动的架构,然后将功能实现添加进去,笔者参考linux设备驱动程序(第三版)中介绍的新的接口来实现驱动。友善之臂官网提供的源码是基于miscde...
分类:
其他好文 时间:
2014-06-11 13:21:38
阅读次数:
408
最近正在学习驱动开发,进展到字符设备驱动开发阶段。
先不多说,首先把刚看的一篇学习驱动步骤的帖子记录如下: 1. 学会写简单的makefile 2. 编一应用程序,可以用makefile跑起来 3.
学会写驱动的makefile 4. 写一简单char驱动,makefile编译通过,可以insmo....
分类:
系统相关 时间:
2014-05-15 21:56:49
阅读次数:
435