您的位置:首页 > 运维架构 > Linux

Linux驱动笔记(1)

2013-12-30 14:06 225 查看
模块退出前的__exit宏表示,这个函数会被链接到.exit.text段,这个段的代码只会在模块被移除的时候执行

module_init宏把akae_init函数别名为init_module的模块入口函数。

module_exit宏表示把akae_exit函数别名为cleanup_module的模块退出函数。

模块中都可以指定这两个宏,也可以都不使用这两个宏,但是如果仅仅调用module_init宏,没有调用module_exit宏,模块插入后将成为【permanent】,不能被移除。

模块参数

使用宏module_param(变量名,变量类型,文件权限)来定义参数

insmod hello.ko count=1000 p="hello world"

可以在insmod命令的参数里指定模块参数的新的值。

可以在/sys/module/模块名/parameters目录中找到一个和模块参数同名的文件,跟踪它的值。

字符设备驱动:

应用程序报错的几种原因:

1.设备文件没有创建

2.设备文件创建时和应用程序中要打开的文件名不一样

3.设备文件是正确的,但是驱动模块没有插入内核

4.设备文件名字是正确的,驱动也插入内核了,但是设备文件的主设备号和驱动的主设备号不匹配

5.设备文件的读写权限不对
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: