本文主要分析Linux字符设备驱动程序的工作机理。主要内容以及代码片段来源于《LDD3》,俺只是从另外一个角度来讲述。 见过很多关于驱动程序的书,基本上都是告诉你怎么做,然后你STEP BY STEP,然后运行完后结果就出来了,可是其背后到底是如何工作的呢?虽说《LDD3》也讲了很多原理性的东西,但是我觉得这个问题其描述得并不明确。
原LINUX设备驱动程序(LDD3)例程在Linux-3.0 .x代码树编译的时候会出现不少错误,如Makefile中出现“Fix it to use EXTAR_CFLAGS”,编译main.c时出现“unknown field ’ioctl‘ specified in initializer”等, 这是由于新版本的内核一些头文件和接口的名称有所修改而出现的,本资源里的代码经过了修改,,已经在Linux-3.0.1上测试编译通过。