博客专栏  >  架构   >  linux驱动开发

linux驱动开发

嵌入式软件开发,linux驱动示例,记录开发驱动程序的框架。

关注
6 已关注
23篇博文
  • Linux驱动程序:统计单词个数

    本例为Android升读探索(卷1):HAL与驱动开发 一书中附带的shili

    2014-06-09 13:18
    1664
  • linux驱动开发--中断:工作者队列实现中断底半部

    1、工作队列 工作队列(work queue)是linux kernel中将工作推后执行的一种机制;这种机制和tasklet不同之处在于工作队列是把推后的工作交由一个内核线程去执行,因此工作队列的优势...

    2014-03-05 10:32
    1393
  • linux驱动开发--中断:tasklet实现中断底半部

    1、在Linux 中实现中断底半部的机制主要是: tasklet、工作队列、软中断 2、tasklet 定义在中 tasklet定义 DECLARE_TASKLET(taskletname,...

    2014-03-05 09:57
    1436
  • linux驱动开发--中断:按键中断

    1、中断定义 中断是指cpu在执行过程中,出现了某些突发事件时cpu必须暂停执行当前的程序,转去处理突发事件,处理完毕后cpu又返回原程序被中断的位置并继续执行。 2、中断分类 3、...

    2014-02-14 09:22
    1971
  • linux驱动开发--字符设备:设备轮询操作select/poll

    select系统调用         用于多路监控,当没有一个文件满足要求时,select调用将引起进程阻塞 设备轮询操作,对应select系统调用         unsigned int(*...

    2014-01-24 15:31
    2257
  • linux驱动开发--字符设备:内核等待队列

    在Linux驱动程序中,可以使用等待队列(wait queue)来实现阻塞进程的唤醒。等待队列可以用来同步对系统资源的访问。 1.定义和初始化队列头 wait_queue_head_t wqh; in...

    2014-01-24 15:05
    1710
  • linux驱动开发--字符设备:信号量

    信号量的使用 信号量(semaphore)是用于保护临界区的一种常用方法,它的使用和自旋锁类似。与自旋锁相同,只有得到信号量的进程才能执行临界区代码。但是与自旋锁不同的是当获取不到信号量时,进程不会...

    2014-01-17 09:23
    1279
  • linux驱动开发--字符设备:自旋锁

    自旋锁的使用 自旋锁(spin lock)是一种对临界资源进行互斥访问的典型手段,其名称来源于它的工作方式。为了获得自旋锁,在某cpu上运行的代码需要先执行一个院子操作,该操作测试并设置某个内存变量...

    2014-01-16 16:15
    1516
  • linux驱动开发--字符设备:原子操作

    解决竞态问题的途径是保证对共享资源的互斥访问,所谓互斥访问是指一个执行单元在访问共享资源的时候,其他的执行单元被禁止访问。 访问共享资源的代码区域称谓临界区(critical sections),临...

    2014-01-08 16:04
    1764
  • linux驱动开发--字符设备:添加文件指针偏移的功能

    设备移位操作llseek 对应lseek系统调用的设备移位操作为llseek 默认情况为允许设备移位操作 大部分字符设备提供的都是数据流而不是一个数据区,比如串口,对于这些设备而言移位操作毫无意...

    2013-12-31 14:35
    2167
  • linux驱动开发--copy_to_user 、copy_from_user函数实现内核空间数据与用户空间数据的相互访问

    设备读操作 如果该操作为空,将使得read系统调用返回负EINVAL失败,正常返回实际读取的字节数 ssize_t (*read)(struct file *filp, char __user *bu...

    2013-12-30 10:33
    3566
  • linux驱动开发--字符设备:通过cdd_cdev结构中的led变量区分是哪个节点,private_data使用

    private_data改进 为设备驱动支持多个设备个体做准备,针对private_data进行改进 在设备打开操作中通过inode中保存的i_cdev获取代表当前设备的cdev对象 通过代表当...

    2013-12-28 10:50
    2180
  • linux驱动开发--字符设备:创建一组设备节点

    cdev改进 为设备驱动支持多个设备个体做准备,针对cdev进行改进 将代表字符设备的cdev对象包含在设备驱动定义的私有数据结构体中 对设备驱动私有数据结构体采用内核内存分配方式为其分配内存 ...

    2013-12-28 10:06
    2104
  • linux驱动开发--字符设备:自动创建设备节点

    自动创建设备文件 定义在中 class结构:该结构体类型变量对应一个设备类,被创建的类存放在/sys目录下面 device结构:该结构体类型变量对应设备,被创建的设备存放于/sys目录下面 在...

    2013-12-28 09:54
    4992
  • linux驱动开发--字符设备:简单的file_operations示例

    字符设备结构struct cdev 内核使用该结构来表示一个字符设备,在中定义。 重要成员: struct kobject kobj;//设备对象 struct module *owner;//该设备...

    2013-12-27 18:12
    1832
  • linux驱动开发--字符设备:动态分配设备号

    设备号的动态分配 int alloc_chrdev_region(dev_t *dev, unsigned baseminor, unsigned count, const char *name);...

    2013-12-27 16:43
    2033
  • linux驱动开发--字符设备:静态分配设备号

    字符设备(char device)         采用字节流方式访问的设备称为字符设备,通常智能采用顺序访问方式,也有极少数可以前后移动访问指针的设备(如:帧捕捉卡等设备)。系统标准字符设备,例如...

    2013-12-27 14:53
    2449
  • linux驱动开发--内核定时器

    1、内核定时器 时钟中断:由系统的定时硬件以周期性的时间间隔发生,这个间隔(也就是频率)由内核根据常数HZ来确定。 HZ常数:她是一个与体系结构无关的常数,可以配置50-1200之间,可以在内核中...

    2013-12-26 16:23
    2129
  • linux驱动开发--内核链表

    1、内核链表定义 在中定义 struct list_head{ struct list_head *next, *prev; };在list_head结构中包含两个指向list_head结构的指针...

    2013-12-26 15:58
    1500
  • linux驱动开发--内核空间中内存的申请与释放

    1、Linux内存管理 linux内存最小管理单位为页(page),通常一页为4kb。 linux系统中,在初始化时,内核为每个物理内存页建立一个page的管理结构,操作物理内存时实际上就是操作p...

    2013-12-26 15:34
    1781
img博客搬家
img撰写博客
img发布 Chat
img专家申请
img意见反馈
img返回顶部