1. Linux内核驱动模块机制
静态加载, 把驱动模块编进内核, 在内核启动时加载
动态加载, 把驱动模块编为ko, 在内核启动后,需要用时加载
2. 编写内核驱动
#include#include static int __init test_init(void) {return 0; //返回0表示成功, 返加负数退出加载模块}//__init 当内核把驱动初始化完后, 释放此函数的代码指令空间static void __exit test_exit(void){....}//__exit 指定此函数只在驱动卸载时使用, 用完后释放module_init(test_init); //指定test_init为模块初始化函数module_exit(test_exit); //指定test_exit为模块退出时卸载函数MODULE_LICENSE("GPL"); //指定所支持的协议MODULE_AUTHOR("作者");MODULE_DESCRIPTION("描述");MODULE_VERSION("版本");#define __init __section(.init.text)#define __initdata __section(.init.data)char __initdata buf[] = "hello world";#define __exitdata __section(.exit.data)#define __exit __section(.exit.text)/////////////
评论列表()