《原子Linux驱动开发》字符设备驱动开发步骤
[复制链接]
1、首先作者强调了“学习Linnux驱动开的重点是学习其”驱动框架“,要记住作者的这个提示”驱动框架“。目前我还没有这个驱动框架的概念。
2、接下来,作者给出了驱动加载的两种方式,一种是已经把驱动编译进了内核,在Linux内核启的时候就自动运行驱动程序。(我原来是这么想的,所以每次都去编译内核,累!)
3、接下来作者提出了”将驱动编译成模块“,在内核启动之后也可以用insmod命令加载驱动模块。这就方便了不需要重复的编译内核,可以大大提高编程效率。
4、模块加载有“加载”、“卸载”两种操作(module_ini(xxx_init);、(module_exit(xxx_exit))。当insmod加载时调用module_init().当rmmod时就调用module_exit()。
5、xxx_init都是以静态函数的声明,通过module_init来提供接口。
6、驱动编译完成以后扩展名为.ko,有两种方式(insmod 和modprobe)。文例举了两个命的区别,就是insmod 不能解决依赖关系。执行的方式为insmod drv modprobe drv,而卸载则为rmmod drv或者modprobe -r drv。
今天就学习到这里。
主要是了解字符设备的加载方式。
|