Linux设备驱动学习
文章平均质量分 61
wu5795175
关注系统底层和web
展开
-
Linux设备驱动学习(1) 全局内存空间“设备”驱动程序globalmem
此“设备”是一个在内存中恒久的空间,在模块初始化时便已分配。使用modinfo查看编译出来的模块信息$modinfo ./globalmem.ko将自定义的主设备号作为参数插入到模块中,使用$sudo insmod ./globalmem.ko globalmem_major=xxx来分配。/*====================================原创 2012-03-26 14:40:36 · 923 阅读 · 0 评论 -
Linux设备驱动学习(3) 设备sleepy
这个驱动程序可以在2.6.3x内核下编译通过。sleepy是一个测试程序,当进程读设备时阻塞并进入等待队列,当写设备时则唤醒等待队列上的所有进程。/* * sleepy.c -- the writers awake the readers * * Copyright (C) 2001 Alessandro Rubini and Jonathan Corbet * Cop原创 2012-03-27 19:07:11 · 468 阅读 · 0 评论 -
Linux设备驱动学习(2) 全局内存“设备” scull
这次分析的是LDD3中的第一个程序scullscull设备也是一个内存”设备“结构图如下,来自LDD3/* * Representation of scull quantum sets. */struct scull_qset { void **data;//指针的指针,(*data)是一个指针变量,指示一片内存空间,这片内存中间内存储的也是地原创 2012-03-27 14:30:24 · 761 阅读 · 0 评论 -
Linux设备驱动学习(6) 时间、延迟、延缓操作 jit类设备驱动
current是查看当前时间的设备,jitbusy、jitqueue、jitsche、jitscheto是延迟一段时间的设备jitimer是使用了定时器类的设备,定时器到期时执行一个过程。jitasklet、jitasklethi是使用了小任务tasklet类的设备,tasklet是为了尽快执行一个过程而设计。/* * jit.c -- the just-in-time modu原创 2012-03-31 15:48:49 · 858 阅读 · 0 评论 -
Linux设备驱动学习(7) 内存分配
驱动中对分配内存的学习只贴一下几个关键的关于分配内存的函数好了,因为其他大部分代码都是重复的。scullc是scull类设备,它使用高速缓存来分配内存,可以提高设备的运行速度定义kmem_cache_t *scullc_cache;创建一个新的高速缓存,每个内存对象大小都是scullc_quantumscullc_cache = kmem_cache_create("scullc",原创 2012-04-03 20:59:53 · 639 阅读 · 0 评论 -
Linux设备驱动学习(4) 阻塞式PIPE内存“设备” 休眠+异步通知 scullpipe
这是scull类设备的阻塞方式,之前的scull设备中的读进程若读到内存空间无数据,则立即返回。scullpipe包含两个等待队列和一个缓冲区。写进程在“前面”写,读进程在“后面”读。在scull_pipe设备中,缓冲区为空,读进程会阻塞自己,直到缓冲区内有数据后由内核唤醒,读完数据后唤醒所有写进程。写进程也相对应,当缓冲区满的时候阻塞,有空闲空间则被唤醒,写完数据后异步通知读进程原创 2012-03-29 21:23:10 · 1126 阅读 · 0 评论 -
Linux设备驱动学习(5) 带访问控制的sculla类设备
带访问控制的设备sculla/* * access.c -- the files with access control on open * * Copyright (C) 2001 Alessandro Rubini and Jonathan Corbet * Copyright (C) 2001 O'Reilly & Associates * * The source co原创 2012-03-30 21:55:54 · 507 阅读 · 0 评论 -
Linux设备驱动学习(0)搭建LDD3实验环境
使用ubuntu5.04来实验LDD3中的代码,因为LDD3中要求的内核版本是2.6.10,而我的ubuntu内核版本已经是2.6.3x了,如果在高版本的内核中实验代码,那就得改N多地方了。我花了一上午来建立环境,现将详细步骤记录如下。1.下载2.6.10源代码。2.将解压出的源代码置于/usr/src下4.#cp /boot/config-xxx /usr/src/.co原创 2012-03-27 13:27:12 · 1387 阅读 · 0 评论