随笔分类 - Linux 设备驱动程序(读书笔记)
摘要:#1 设置测试系统 &想要在运行的内核当中扩展模块,就必须先准备好一个内核源代码树(可以是“主线”内核,也可以是发行版内核),构造一个新的内核,然后安装到自己的系统中,作为测试系统;#2 Hello World 模块 &构造好内核树之后,就可以开始编写模块了。我们先从简单的 “Hello World 模块”入手: 1 #include 2 #include 3 MODULE_LICENSE("Dual BSD/GPL"); 4 5 static int hello_init(void) 6 { 7 printk(KERN_ALERT "Hello,
阅读全文
摘要:#1 设备驱动程序的作用 &设备驱动程序的作用在于提供机制,而不是策略。所谓机制,即“需要提供什么样的功能”;所谓“策略”,即“如何使用这些功能”。前者精于设计,专注细节;后者实现调用,不需要知道任何与硬件相关的信息。 &决定设备驱动通常不带策略的主要原因是:不同的环境需要不同的方式来使用硬件,而设备驱动针对底层硬件,不可能为每一种方式都编写一个策略。因此,我们让驱动程序提供机制,而让系统高层提供策略。 当然,有时候我们也要在驱动程序当中实现一些策略。例如,某个数字 I/O 驱动程序只提供以字节为单位访问硬件的方法,这样就可以避免编写额外的代码来处理单个数据位的麻烦。 &
阅读全文

浙公网安备 33010602011771号