`
hulunberbus
  • 浏览: 859388 次
文章分类
社区版块
存档分类
最新评论

Linux驱动:用户空间,内核空间内存交互测试

 
阅读更多

Linux驱动:用户空间,内核空间内存交互测试


本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明.

环境:

主机:Fedora12

目标板: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:


用户程序:

test_driver.c


测试说明:

将编译所得的可执行文件test_driver上传到开发板

运行:

./test_driver

输出:

10 11 12 13 14 15 16 17 18 19


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics