环境:
目标板:MINI6410
目标板LINUX内核版本:2.6.38
实现功能:
使用read函数读取内核空间开辟的数组,使用write函数从用户空间写入数据到内核空间开辟的数组
说明:
Linux中内核空间和用户空间有不同的内存定义,只能通过交互函数来互相访问.
//检测用户空间地址是否合法,type选项:VERIFY_READ,VERIFY_WRITE
int access_ok(int type,const void *addr,unsigned long size);
//从用户空间读取内存
unsigned long copy_from_user(void *to,const void *from,unsigned long n);
//向用户空间内存写入
unsigned long copy_to_user(void *to,void *from,unsigned long len);
//写入单值
int put_user(数据,ptr);
//读取单值
int get_user(数据,ptr);
驱动源代码:
test_driver.c: