1 / 20
文档名称:

Linux动态模块与设备驱动.ppt

格式:ppt   大小:120KB   页数:20页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

Linux动态模块与设备驱动.ppt

上传人:mh900965 2016/8/26 文件大小:120 KB

下载得到文件列表

Linux动态模块与设备驱动.ppt

文档介绍

文档介绍:动态模块与设备驱动 Linux Linux 的动态模块的动态模块 2017-4-10 西安交通大学计算机系 3动态模块的组成模块的组织#include <linux/> // 说明是个内核功能#include <linux/> // 说明是个模块// 其他 header 信息 int init_module() // 声明是一个模块{ ... // 加载时,初始化模块的编码} ... // 期望实现的其它功能,如 read() 、ioctl() 等函数 void cleanup_module() { ... // 卸载时,注销模块的编码} 2017-4-10 西安交通大学计算机系 4模块编译与加卸载模块的编译#gcc ? O2 ? g ? Wall ? DMODULE ? D __KERNEL__ ? c // 为自己编写的模块程序源代码文件模块的加载 insmod 命令模块的查看 lsmod more /proc/modules dmesg ——查看日志( printk ) 模块的卸载 rmmod 命令 2017-4-10 西安交通大学计算机系 5模块编程_ 示例 1 一个例子 #define MODULE #include <linux/> #include <linux/> #if CONFIG_MODVERSION==1 #define MODVERSIONS #include <linux/> #endif int init_module() { printk("Hello! This is a testing module!\n"); return 0; } void cleanup_module() { printk("Sorry! The testing module is unloading now!\n"); } 2017-4-10 西安交通大学计算机系 6模块编程模块的编译、加载与卸载编译# gcc ? O2 ? g ? Wall ? DMODULE ? D__KERNEL__ ? c // 为自己编写的模块程序源代码文件加载#insmod –f 查看#lsmod #cat /proc/modules #dmesg 卸载#rmmod testmodule 2017-4-10 西安交通大学计算机系 7模块编程—演示 /home/yms/ /home/yms/ 2017-4-10 西安交通大学计算机系 8模块编程_ 示例 2系统调用的篡改模块程序 用户程序 可执行程序 myuser Linux 的设备驱动 2017-4-10 西安交通大学计算机系 10实验目的了解 Linux 操作系统中的设备驱动程序的组成编写简单的字符设备驱动程序并进行测试理解 Linux 操作系统的设备管理机制设备种类繁多,但具有通用性采用通用接口,屏蔽实现细节设备驱动程序控制设备的操作为内核提供统一的操作接口