Linux驱动的执行步骤(最简步骤,未引入动态分配设备号及设备树)
- 驱动加载:寄存器地址映射、初始化(时钟等)、注册驱动,模块加载一般使用
modprobe
指令,使用该指令会调用module_init(xxx_init)
。 - Linux中一切皆为文件,驱动中通过一个
file_operations
结构体,对结构体中的这几个成员函数进行配置——open/read/write/release(与应用程序中的close相对应)。就可以在应用层通过open/read/write/close函数的调用就可以对驱动进行操作。 - 驱动卸载:取消映射,注销字符驱动,一般卸载模块使用
rmmod
指令,使用该指令会调用module_exit(xxx_exit)
。