
Linux设备驱动程序--学习笔记
xiao888lin
这个作者很懒,什么都没留下…
展开
-
第一章 Linux设备驱动程序之--基础知识
学Linux一年多了,对驱动的知识一点都了解,上周买了本《Linux设备驱动》,O'REILLY出版,打算学习学习。学习过的大侠,希望可以指导指导。首先有两个网站需要知道:https://lwn.net/Articles/2.6-kernel-api/原创 2010-05-31 19:37:00 · 1081 阅读 · 0 评论 -
第二章 第一节 Linux设备驱动程序之--构建内核树
Linux设备驱动程序之--构建内核树首先下载Linux内核,按作者的说法,只要是linux-2.6.xxx的内核都可以,我的是linux-2.6.33.2。有位网友说下载后最好解压到/usr/src/目录下,解压在构建内核树时参考了原书第四章“调试技术”,配置了几条调试时可能会用到的选项,这些选项大多在“kernel hacking“菜单中:CONFIG_DEBUG_KERNEL:使其他调试选项可用CONFIG_DEBUG_SLAB:打开内核内存分配函数中的多个类型检查CONFIG_DEBUG_PAGEA原创 2010-06-04 11:17:00 · 1049 阅读 · 0 评论 -
第二章 第三节 Linux设备驱动程序之--模块参数
由于系统不同,驱动程序需要的参数也许会发生变化。这包括设备编号以及其他的一些用来控制驱动程序操作方式的参数。例如,用户向驱动程序传递一些硬件的的I/O端口后者I/O内存地址的位置之类的信息时就有可能会用到内核参数。内核允许对驱动程序指定参数,这些参数在装载驱动程序模块时可以改变的。以前面第二节中的hello.c为例:改变后的hello.c:#include #include #include #include MODULE_LICENSE("Dual BSD/GP原创 2010-06-08 22:09:00 · 991 阅读 · 0 评论 -
第二章 小结
本小结是第二章学到的一些东西(此为《Linux设备驱动程序》上所讲,在此摘抄,以备温习之用)insmodmodprodermmod装载模块到正在运行的内核和移除模块#include module_init(init_function);module_exit(cleanup_function);用于指定模块的初始化和清除函数 的宏__init__initdata__exit__exitdata仅用于模原创 2010-06-10 20:34:00 · 732 阅读 · 0 评论 -
第二章 第二节 Linux设备驱动程序之--我的第一个程序 Hello World
Linux设备驱动程序之--我的第一个程序 Hello World废话少说,开始我的第一个程序,同所有的程序一样,我先从Hello world开始:先建一个test_modules目录,以便以后练习模块:[root@hh hello] # pwd/home/hh/test_modules/hello[root@hh hello] # vim hello.c#include #include MODULE_LICENSE("Dual BSD/GPL");static int hello_i原创 2010-06-04 14:22:00 · 1302 阅读 · 0 评论