2020年12月6日
摘要: #五、附加 ##1、模块加载: modprobe 自动加载模块到内核 (p10) ##2、宏声明: MODULE_LICENSE("GPL"); 许可证声明(p12) MODULE_AUTHOR("LR xxx@163.com"); 作者信息(p12) MODULE_DESCRIPTION("thi 阅读全文
posted @ 2020-12-06 15:59 八杯水 阅读(76) 评论(0) 推荐(0)
摘要: #四、导出符号表 ###vim ./include/linux/export.h +50 在一个内核模块中调用另外一个内核模块中的函数,需要提供者将函数的符号表(地址)导出,调用者直接使用这个地址即可 ###1、导出符号表的意义: 1)可以解决内核代码冗余的问题,同种问题,一次实现,多次调用。 2) 阅读全文
posted @ 2020-12-06 15:50 八杯水 阅读(320) 评论(0) 推荐(0)
摘要: #三、内核模块传参 内核模块传参有两种 1、在安装驱动的时候传递参数 2、在驱动运行的时候传递参数 ##1、在安装驱动的时候传递参数 insmod xxx.ko a=12 b=35 驱动模块中使用的变量的类型 vim include/linux/moduleparam.h +97 变量类型 字节大小 阅读全文
posted @ 2020-12-06 15:37 八杯水 阅读(387) 评论(0) 推荐(0)
摘要: #二、内核中的信息打印-->printk ##1、打印级别 vim include/linux/printk.h +9 内核中的打印级别,8个级别,(07)级,数值越小,级别越高 (02)3个级别不常用, (3~7)4个级别会常用, vim ./include/linux/printk.h +9 0 阅读全文
posted @ 2020-12-06 14:59 八杯水 阅读(726) 评论(0) 推荐(0)
摘要: #一、驱动基础 ##1、什么是驱动 能够通过软件操作硬件的这份程序就是驱动 ##2、Linux驱动和ARM裸机驱动的区别 1)Linux设备驱动工作时依赖于Linux内核, ARM裸机驱动不依赖于Linux内核,可以单独执行。 2)Linux设备驱动工作的空间在内核空间的【3G~4G】中,驱动中不能 阅读全文
posted @ 2020-12-06 14:41 八杯水 阅读(259) 评论(0) 推荐(0)