一,驱动文件的编写,将文件的名字命名为globalvar.c ,源码如下:
#include <linux/module.h> //支持动态加载和卸载模块的头文件
#include <linux/init.h> //最基本的头文件,内核初始化
#include <linux/fs.h> //文件系统头文件,包括设备注册函数和注销函数等
#include <asm/uaccess.h> //声明了在内核代码和用户空间之间移动数据的函数的头文件
MODULE_LICENSE("GPL"); //模块许可证
#define MAJOR_NUM 1025 //主设备号
#define DEVICE_NAME "globalvar" //设备名称
static char drv_buf[1024];
//****************************定义read方法********************************
static ssize_t globalvar_read(struct file *filp, const char *buf ,ssize_t len, loff_t *off)
{
//将drv_buf里的数据从内核空间复制到用户空间
if (copy_to_user(buf, drv_buf, sizeof(int)))
{
return - EFAULT;
}
return sizeof(int);
}
//***************************定义write方法**********************
static ssize_t globalvar_write(struct file *filp,const char *buf,ssize_t len)
{
//将用户空间的数据复制到内核空间
if (copy_from_user(drv_buf, buf, sizeof(in