编写设备驱动程序

配置测试

驱动程序能否处理多种设备配置是测试过程的重要部分。驱动程序可以在一种简单(或缺省)配置中正常工作后,还应该测试其他配置。根据设备不同,可以通过更改跳线或 DIP 开关来完成配置测试。如果可能的配置数较少,则应尝试测试所有配置。如果可能的配置数较多,则应为这些可能的配置定义不同的类,并抽样测试每类配置。定义这些类取决于不同配置参数之间的潜在交互。这些交互是设备类型与驱动程序编写方式之间的配合。

对于每种设备配置,必须测试基本运行情况,包括装入、打开、读取、写入、关闭和卸载驱动程序。任何取决于配置的运行情况都需要特别注意。例如,更改设备寄存器的基本内存地址不可能影响大多数驱动程序函数的行为。如果驱动程序在一个地址上正常工作,则该驱动程序在其他地址上也能正常工作。另一方面,特殊 I/O 控制调用的结果可能会因特定设备配置而异。

以不同配置装入驱动程序可确保 probe(9E)attach(9E) 入口点能够在不同地址找到设备。对于基本功能测试,使用常规的 UNIX 命令(如 cat(1)dd(1M))通常就可满足字符设备的要求。对于块设备,可能需要挂载或引导。