![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LDDx--入门篇
文章平均质量分 81
zyhui65
这个作者很懒,什么都没留下…
展开
-
深入浅出LDD-8-定时器1-机制
/*************************************************************************************************** 设备驱动中的定时器--机制篇编译环境:不需要实 验 者:张永辉 2012年9月13日**************转载 2012-09-13 09:45:57 · 415 阅读 · 0 评论 -
深入浅出LDD-5-设备的阻塞与非阻塞操作
/*************************************************************************************************** 设备的阻塞与非阻塞操作概念: 阻塞操作是指,在执行设备操作时,若不能获得资源,则进程挂起,进入sleep 状态转载 2012-09-12 17:12:08 · 578 阅读 · 0 评论 -
深入浅出LDD-6-异步通知
设备驱动中的异步通知概念: 异步通知的意思是:一旦设备就绪,则主动通知应用程序,这样应用程序根本就不需要查询设备状态, 这一点非常类似于硬件上“中断”地概念,比较准确的称谓是“信号驱动(SIGIO)的异步 I/O”实例: 我们先来看一个使用信号驱动的例子, 它通过signal(SIGIO, input_handler) 对 STDIN_FILENO 启动信号转载 2012-09-12 17:16:15 · 429 阅读 · 0 评论 -
深入浅出LDD-3- 自动地申请某设备号和加入某设备节点
/*************************************************************************************************** 设备驱动程序* gvar.c* 动态分配设备号* 自动加入节点* 注意:user.c 要找 /dev/gva转载 2012-09-12 17:40:05 · 7429 阅读 · 0 评论 -
深入浅出LDD-2-用户对模块的调用
/*************************************************************************************************** 设备驱动程序* globalvar.c* 功 能:实现全局变量的读写* 使用用户程序调转载 2012-08-28 19:46:42 · 496 阅读 · 0 评论 -
深入浅出LDD-4-并发控制1
/*************************************************************************************************** 并发控制信号量简介: 相关的主要API struct semaphore s转载 2012-09-12 16:34:07 · 579 阅读 · 0 评论 -
深入浅出LDD-4-设备的驱动的并发控制2
/***************************************************************************************************在 深入浅出LDD-4-设备的驱动的并发控制1的基础上 我们给 globalvar 的驱动程序增加 open()和 release()函数, 并在其中借助自旋锁来保护对全局变量转载 2012-09-12 16:36:40 · 527 阅读 · 0 评论 -
深入浅出LDD-7-中断处理1-机制
/*************************************************************************************************** 设备驱动中的中断处理--机制篇编译环境:不需要实 验 者:张永辉 2012年9月13日*************转载 2012-09-13 09:42:51 · 630 阅读 · 0 评论 -
linux字符设备驱动总结之:全自动创建设备及节点
/*************************************************************************************************** linux字符设备驱动总结之:全自动创建设备及节点看了LDD3,深入浅出LDD,以及各个博文,还是需要总结下的。张永辉 2012年10月9转载 2012-10-09 16:57:48 · 6010 阅读 · 0 评论 -
ldd3笔记-第6章-高级字符程序操作part1
高级字符程序操作 本章内容: 和用户空间保持同步的几个途径。 任何使用进程休眠及唤醒,如何实现非阻塞IO. 在设备可读或者可写时通知用户空间。 介绍几种访问设备的策略。编者:张永辉 2012年10月19日//---------------------------------------------------转载 2012-10-19 16:33:16 · 589 阅读 · 0 评论 -
ldd3-3.1
3.1. scull设计 scull0 -- scull3 ,4个设备,每个由一个全局永久的内存区组成. 1 全局意味着如果设备被多次打开, 设备中含有的数据由所有打开它的文件描述符共享. 2 永久意味着如果设备关闭又重新打开,数据不会丢失. 3 它可以用惯常的命令来存取和测试, 例如cp,cat,以及I/O重定向. s转载 2012-09-26 08:21:43 · 532 阅读 · 0 评论 -
ldd3笔记-第6章-高级字符程序操作part2
6.2 阻塞IO 当无法立即响应某个请求时,应该阻塞进程,将其休眠直到响应。 6.2.1 休眠简介 当一个进程被置为睡眠,它被标识并且从调度器的运行队列中去除.直到发生某些事情改变了那个状态。 为了能在linux上安全地休眠,有以下规则: 1 不要再原子上下文中休眠 根据第五章知道,原子上下文中可能转载 2012-10-19 16:35:14 · 494 阅读 · 0 评论 -
ldd3-3-scull初步失败
/*************************************************************************************************** scull.h*************************************************转载 2012-09-29 16:47:15 · 833 阅读 · 0 评论 -
深入浅出LDD-9-内存与IO1-内存的储存地址
/****************************************************************************************************文件功能:验证内存分配的地方*编译环境:SUSELinux*编译结果:成功*实验结果:与理论不相符,可能因为是虚拟机的原因。*实 验 者:张永辉 2012年9月13日理论:转载 2012-09-13 14:45:12 · 562 阅读 · 0 评论 -
深入浅出LDD-1-最简单的helloworld
/*************************************************************************************************** linux 最简单的设备驱动* hello.c环 境:Fedora17 虚拟机结 果:编译成功实转载 2012-08-28 09:30:06 · 814 阅读 · 0 评论 -
inode file 浅析
inode file 浅析在open()操作时遇到此两个结构,查阅后整理下笔记之张永辉 2012年10月10日//**************************************************************************************************inode 简介 1 inode 是 UNIX 操作系统中的转载 2012-10-10 17:15:46 · 500 阅读 · 0 评论 -
ldd3-3-scull.2设备的读写操作(失败)
/*************************************************************************************************** scull2.h空间模型: scull_dev { *data------转载 2012-10-12 10:56:56 · 487 阅读 · 0 评论 -
ldd3-1
1.1 机制和策略的区分是其中一个在Unix设计背后的最好观念. 大部分的编程问题其实可以划分为2部分: "提供什么能力"(机制) "如何使用这些能力"(策略). 如果这两方面由程序的不同部分来表达,或者甚至由不同的程序共同表达,软件包是非常容易开发和适应特殊的需求. 驱动应当做到使硬件可用,将所有关于如何使用硬件的事情留给应用转载 2012-09-21 17:33:56 · 439 阅读 · 0 评论 -
ldd3笔记-第5章-并发和竞态
并发和竞态 --读书笔记 竞态发生的原因有: 硬件中断服务。 多个用户空间进程在运行。 SMP系统能够同时多处理器执行代码。 内核代码是可抢占的。 热插拔设备的使用5.1 scull中的缺陷 假设有 A B 两个进程独立的试图写入同一个schull设备的相同偏移.每个进程都会转载 2012-10-16 10:10:22 · 454 阅读 · 0 评论 -
ldd3笔记-第5章-竞态和并发
并发和竞态 --读书笔记 竞态发生的原因有: 硬件中断服务。 多个用户空间进程在运行。 SMP系统能够同时多处理器执行代码。 内核代码是可抢占的。 热插拔设备的使用张永辉 2012年10月16日//------------------------------------------转载 2012-10-16 09:29:43 · 181 阅读 · 0 评论 -
ldd3-2.1
第二章 建立和运行模块part1-------------------------------------------------------------------------2.2 hello world模块 //完整代码如下: #include #include MODULE_LICENSE("Dual BSD/GPL");转载 2012-09-21 17:41:21 · 495 阅读 · 0 评论 -
ldd3-3-scull.1设备的加载卸载
/*************************************************************************************************** scull模块加载卸载实验步骤: #make #insmod scull2.ko转载 2012-10-09 15:55:52 · 680 阅读 · 0 评论