如何测试linux设备驱动程序

如何测试linux设备驱动程序,第1张

mod.c:

#include <linux/module.h>static int __init init_base(void) { printk("----Hello. World----\n")return 0} static void __exit exit_base(void) { printk("----Bye----\n")} module_init(init_base)module_exit(exit_base)MODULE_LICENSE ("GPL")MODULE_AUTHOR("Zhao Lei")MODULE_DESCRIPTION("For test")

这部分是源代码,一下是一个makefile

Makefile: obj-m := mod.o

KDIR := /lib/modules/$(sh

你需要写全,指定运行内核的目录和要运行的文件。

然后make。生成.ko以后插入insmod 插入模块。

注意最好在pringk里加级别高的打印,就是<0>到<4>这样能在终端看到打印信息

驱动程序识别设备时,有以下两种方法:

(1)驱动程序本身带有设备的信息,比如开始地址、中断号等:加载驱动程序时,就可以根据这些信息来识别设备。

(2)驱动程序本身没有设备的信息,但是内核中已经(或以后)根据其他方式确定了很多设备的信息加载驱动程序时,将驱动程序与这些设备逐个比较,确定两者是否匹配(match)。如果驱动程序与某个设备匹配,就可以通过该驱动程序 *** 作这个设备了。内核常使用第二种方法来识别设备,这可以将各种设备集中在-一个文件中管理,当开发板的配置改变时,便于修改代码。在内核文件includePnuxÔatform _device.h 中,定义了两个数据结构来表示这些设备和驱动程序: platform_ device 结构用来描述设备的名称、ID、所占用的资源(比如内存地址/大小、中断号)等platform_ driver 结构用来描述各种 *** 作函数, 比如枚举函数、移除设备函数、驱动的名称等。内核启动后,首先构造链表将描述设备的platform_device结构组织起来,得到一一个设备的列表:当加载某个驱动程序的platform_ driver 结构时,使用一.些匹配函数来检查驱动程序能否支持这些设备,常用的检查方法很简单:比较驱动程序和设备的名称。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8470802.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-16
下一篇2023-04-16

发表评论

登录后才能评论

评论列表(0条)

    保存