《嵌入式设备驱动技术》课程实验报告班级:学号: (需要填写)姓名: (需要填写)指导老师:成绩:实验六Linux 设备驱动中的阻塞与非阻塞I/O 一、目的与任务目的:了解 Linux 设备驱动中的阻塞与非阻塞I/O
任务:支持轮询操作后的globalmem 模块的编程、编译与测试
二、内容、要求与安排方式1、实验内容与要求:1
直接在内核中添加代码
了解 Linux 内核模块的加载和卸载;3
用 open、close 等函数编程
字符设备驱动程序的注册与注销
实现 globalmem(vser)的常用操作方法
原子操作、自旋锁、信号量、互斥体机制
在原 globalmem 程序的基础上,添加与阻塞与非阻塞I/O 相关的代码
2、实验安排方式:采用1 人 1 组,上机在 Linux 系统下进行编程实验
三、实验设备1、所用设备: PC 机一台四、实验过程1
直接在内核中添加代码
1:文件准备1
1、将编写好的源代码复制到linux 内核源代码相应的目录中
2、在该目录中的 Kconfig 文件中增加新源代码对应的编译配置选项1
3、在该目录中的 Makefile 文件中添加信代码的编译语句2、在 linux 内核 drivers/目录中增加目录和子目录2
1 目录结构test driver 放置在 drivers/test/ 目录下:2
2 配置文件1
drivers/test/Config
arch/arm/config
in 在文件的最后加入: source drivers/test/Config
in,将 TEST Driver 子功能的配置纳入到 Linux 内核的配置中
3 创建 Makefile 1
drivers/test/Makefile 2
drivers/test/cpu/Makefile 3
drivers/Ma