Petalinux驱动开发
1. 驱动模块的加载和卸载
linux的驱动开发实际上是学习驱动的框架
linux驱动有两种运行的方式
- 将驱动编译进Linux的内核
- 将驱动编译为模块,在内核启动后使用insmod来加载驱动模块
模块有加载(module_init(xxx_init)
)和卸载(module_exit(xxx_exit)
)两种操作,
module_init 函数用来向 Linux 内核注册一个模块加载函数,参数xxx_init
就是需要注册的具体函数, 当使用“insmod”
命令加载驱动的时,xxx_init
这个函数就会被调用
module_exit()
函数用来向 Linux 内 核注册一个模块卸载函数,参数 xxx_exit
就是需要注册的具体函数,当使用“rmmod”
命令卸载具体驱动 的时候 xxx_exit
函数就会被调用。
驱动编译完后的拓展名是.ko
,有两种命令可以加载驱动模块:insmod
(不能够加载依赖) 和 modprobe
(更加智能,能够加载依赖)
对于模块的卸载,推荐使用rmmod
命令
2. 字符设备的注册和注销
对于字符设备驱动而言,当驱动模块加载成功以后需要注册字符设备,同样,卸载驱动模 块 的 时 候 也需要注销掉字符设备