
LDD3源码分析
LDD3是Linux设备驱动开发的必读经典教程,本专栏分析LDD3的源码,并基于新内核进行改进和测试,有助于深刻理解LDD3的内容。
liuhaoyutz
这个作者很懒,什么都没留下…
展开
-
LDD3源码分析之内存映射
作者:刘昊昱 博客:http://blog.youkuaiyun.com/liuhaoyutz编译环境:Ubuntu 10.10内核版本:2.6.32-38-generic-paeLDD3源码路径:examples/simple/ 本文分析LDD3第十五章介绍的内存映射模块simple。 一、simple模块编译在2.6.32-38-generic-pae内核下编译s原创 2012-04-12 09:45:34 · 5473 阅读 · 6 评论 -
LDD3源码分析之与硬件通信&中断处理
作者:刘昊昱 博客:http://blog.youkuaiyun.com/liuhaoyutz编译环境:Ubuntu 10.10内核版本:2.6.32-38-generic-paeLDD3源码路径:examples/short/ 本分析LDD3第9和第10章的示例代码short。short涉及的主要知识点有通过I/O端口或I/O内存操作设备寄存器及设备内存,注册中断处理函数处理中原创 2012-04-11 08:45:26 · 5558 阅读 · 3 评论 -
LDD3源码分析之vmalloc
作者:刘昊昱 博客:http://blog.youkuaiyun.com/liuhaoyutz编译环境:Ubuntu 10.10内核版本:2.6.32-38-generic-paeLDD3源码路径:examples/scullv 一、scullv编译本文分析LDD3第8章中与vmalloc函数相关代码,对应源码是examples/scullv目录下的相关文件。这里首先说明原创 2012-03-31 21:08:37 · 3431 阅读 · 0 评论 -
LDD3源码分析之按页分配内存
作者:刘昊昱 博客:http://blog.youkuaiyun.com/liuhaoyutz编译环境:Ubuntu 10.10内核版本:2.6.32-38-generic-paeLDD3源码路径:examples/scullp 一、scullp编译本文分析LDD3第8章中按页分配内存相关代码,对应源码是examples/scullp目录下的相关文件。这里首先说明一下,s原创 2012-03-31 20:17:13 · 2728 阅读 · 0 评论 -
LDD3源码分析之slab高速缓存
作者:刘昊昱 博客:http://blog.youkuaiyun.com/liuhaoyutz编译环境:Ubuntu 10.10内核版本:2.6.32-38-generic-paeLDD3源码路径:examples/scullc 本文分析LDD3第8章中关于使用slab高速缓存的代码,对应的源码在scullc目录下。另外,在较新的内核下编译scullc时会遇到一些错误,本文最后给原创 2012-03-31 14:07:54 · 4648 阅读 · 4 评论 -
LDD3源码分析之时间与延迟操作
作者:刘昊昱 博客:http://blog.youkuaiyun.com/liuhaoyutz编译环境:Ubuntu 10.10内核版本:2.6.32-38-generic-paeLDD3源码路径:examples/misc-modules/jit.c examples/misc-modules/jiq.c 本文分析LDD3第7章的示例程序jit.c和jiq.c,并给出原创 2012-03-30 21:12:22 · 4834 阅读 · 4 评论 -
LDD3源码分析之访问控制
作者:刘昊昱 博客:http://blog.youkuaiyun.com/liuhaoyutz编译环境:Ubuntu 10.10内核版本:2.6.32-38-generic-paeLDD3源码路径:examples/scull/ access.c examples/scull/main.c 一、访问控制设备的注册本文分析LDD3第6章介绍的设备文件访问控制的实现,涉及的代原创 2012-03-29 16:29:16 · 3238 阅读 · 2 评论 -
LDD3源码分析之llseek分析
作者:刘昊昱 博客:http://blog.youkuaiyun.com/liuhaoyutz编译环境:Ubuntu 10.10内核版本:2.6.32-38-generic-paeLDD3源码路径:examples/scull/main.c 本文分析LDD3第6章的llseek函数。 一、用户空间的lseek函数要理解驱动中llseek函数的实现,必须先清楚对应的用户原创 2012-03-28 14:36:31 · 5565 阅读 · 3 评论 -
LDD3源码分析之异步通知
作者:刘昊昱 博客:http://blog.youkuaiyun.com/liuhaoyutz编译环境:Ubuntu 10.10内核版本:2.6.32-38-generic-paeLDD3源码路径:examples/scull/pipe.c examples/scull/main.c 一、异步通知机制的实现本文分析LDD3第6章中的异步通知机制。通过使用异步通知机制,应用程原创 2012-03-28 09:09:48 · 2879 阅读 · 0 评论 -
LDD3源码分析之poll分析
作者:刘昊昱 博客:http://blog.youkuaiyun.com/liuhaoyutz编译环境:Ubuntu 10.10内核版本:2.6.32-38-generic-paeLDD3源码路径:examples/scull/pipe.c examples/scull/main.c 本文分析LDD3第6章的poll(轮询)操作。要理解驱动程序中poll函数的作用和实现,必须先原创 2012-03-27 18:43:35 · 5569 阅读 · 3 评论 -
LDD3源码分析之阻塞型I/O
作者:刘昊昱 博客:http://blog.youkuaiyun.com/liuhaoyutz编译环境:Ubuntu 10.10内核版本:2.6.32-38-generic-paeLDD3源码路径:examples/scull/pipe.c examples/scull/main.c 本文分析LDD3第六章介绍的scullpipe设备是如何实现阻塞I/O的。另外,我发现sc原创 2012-03-26 15:00:03 · 4311 阅读 · 3 评论 -
LDD3源码分析之简单休眠
作者:刘昊昱 博客:http://blog.youkuaiyun.com/liuhaoyutz编译环境:Ubuntu 10.10内核版本:2.6.32-38-generic-paeLDD3源码路径:examples/misc-modules/sleepy.c 本文分析LDD3第六章中关于简单休眠的示例代码sleepy.c。首先列出sleepy.c的完整代码: 1/*原创 2012-03-23 17:30:35 · 2939 阅读 · 1 评论 -
LDD3源码分析之ioctl操作
作者:刘昊昱 博客:http://blog.youkuaiyun.com/liuhaoyutz编译环境:Ubuntu 10.10内核版本:2.6.32-38-generic-paeLDD3源码路径:examples/scull/main.c 本文分析LDD3第六章中关于ioctl操作的代码,并编写测试程序对ioctl功能进行测试。 一、ioctl操作驱动程序中ioct原创 2012-03-23 10:56:54 · 5280 阅读 · 0 评论 -
LDD3源码分析之并发与竞态
作者:刘昊昱 博客:http://blog.youkuaiyun.com/liuhaoyutz编译环境:Ubuntu 10.10内核版本:2.6.32-38-generic-paeLDD3源码路径:examples/scull/main.c examples/misc-modules/complete.c 本文分析LDD3第五章并发与竞态相关代码,本章代码涉及两个内容,一个是信原创 2012-03-22 16:19:01 · 3378 阅读 · 0 评论 -
LDD3源码分析之调试技术
作者:刘昊昱 博客:http://blog.youkuaiyun.com/liuhaoyutz编译环境:Ubuntu 10.10内核版本:2.6.32-38-generic-paeLDD3源码路径:examples/scull/main.c 本文分析LDD3第四章相关代码,主要是使用/proc文件系统(包括seq_file接口)进行调试操作,即在/proc目录下生成/proc/s原创 2012-03-22 16:06:25 · 4624 阅读 · 1 评论 -
LDD3源码分析之字符设备驱动程序
作者:刘昊昱 博客:http://blog.youkuaiyun.com/liuhaoyutz编译环境:Ubuntu 10.10内核版本:2.6.32-38-generic-paeLDD3源码路径:examples/scull/main.c 本文是对LDD3第三章驱动代码的分析记录。LDD3的scull源码是一个综合性的驱动程序,内容涵盖了第三章到第六章的内容,初学者在学习过程中原创 2012-03-22 15:10:32 · 8194 阅读 · 13 评论 -
LDD3源码分析之hello.c与Makefile模板
作者:刘昊昱 博客:http://blog.youkuaiyun.com/liuhaoyutz编译环境:Ubuntu 10.10内核版本:2.6.32-38-generic-paeLDD3源码路径:examples/misc-modules/hello.c 一、hello.c文件分析 这个程序非常简单,它的目的是向我们展示Linux模块编程的架构,而Linux设备驱动原创 2012-03-22 14:28:59 · 7596 阅读 · 4 评论