电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

设备驱动技术试验二

设备驱动技术试验二_第1页
1/5
设备驱动技术试验二_第2页
2/5
设备驱动技术试验二_第3页
3/5
《嵌入式设备驱动技术》课程实验报告班级:学号: (需要填写)姓名: (需要填写)指导老师:成绩:实验二Linux 内核模块一、目的与任务目的:掌握 Linux 内核模块的编程方法。任务:编写简单内核模块程序。二、内容、要求与安排方式1、实验内容与要求:1)了解 Linux 内核模块程序结构;2) .熟悉模块加载和模块卸载方法。2、实验安排方式:采用1 人 1 组,上机在 Linux 系统下进行编程实验。三、实验设备1、所用设备: PC 机一台四、实验过程内核模块模块是可以根据实际需要可以动态加载和卸载到内核中的代码。它们扩展了内核的功能,而无需重启系统,就可以进行模块加载,并工作。编写 hello.c makefile 模块编译将 hello.c 和 Makefile 放在同一路径下进行编译,编译成功,会在当前路径下生成 hello.ko 相关指令lsmod 查看已经加载到内核中的模块insmod 加载模块到内核中rmmod 从内核卸载模块depmod 生成模块所需要的依赖测试结果模块加载加载 hello.ko 模块到内核中模块加载成功,查看模块成功加载会显示以下结果并且可以查看内核打印的消息模块卸载成功卸载 hello 模块后,可以查看内核是否正常打印出我们预设在程序的打印信息。可以看到终端上显示module exit success,说明通过rmmod 成功卸载 hello.ko 通过 lsmod 去查看当前的内核模块,就会发现hello.ko 已经消失不见了。五、程序清单hello.c #include //所有模块都会需要这个头文件#include //下面的宏需要static int __init hello_init(void){ printk(KERN_INFO "module init success\n"); return 0; } static void __exit hello_exit(void){ printk(KERN_INFO "module exit success\n"); } module_init(hello_init); module_exit(hello_exit); MODULE_LICENSE("GPL"); //开源协议MODULE_AUTHOR(" 作者 "); MODULE_DESCRIPTION(" 功能描述 "); Makefile obj-m := hello.o PWD := $(shell pwd) KVER := $(shell uname -r) KDIR :=/lib/modules/$(KVER)/build/ all: $(MAKE) -C $(KDIR) M=$(PWD) clean: rm -rf *.o *.mod.c *.mod.o *.ko *.symvers *.order *.a 加载 hello.ko 模块到内核中insmod hello.ko 查看模块lsmod | grep hello 查看内核打印的消息dmesg | grep "init success" [ 4160.003247] module init success 模块卸载rmmod hello.ko 查看内核是否正常打印出我们预设在程序的打印信息dmesg | grep "exit success" rmmod 成功卸载 hello.ko [ 7160.003247] module exit success 六、实验体会(需要填写)指导教师评语:

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

设备驱动技术试验二

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部