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
分享到:
相关推荐
在进行设备驱动程序,内核功能模块等系统级开发时,通常需要在内核和用户程序之间交换信息。Linux提供了多种方法可以用来完成这些任务。本文总结了各种常用的信息交换方法,并用简单的例子演示这些方法各自的特点及...
本文深入探讨了Linux设备驱动程序的内核机制,并提供了一个简单的字符设备驱动程序示例。通过源码示例,详细讲解了驱动程序注册与注销、文件操作函数的实现、设备号分配等关键概念和操作方法。 通过学习本文,您将...
另外,与《Linux Device Drivers》所不同的是,针对设备驱动的实例,本文还给出了用户态的程序来访问该设备,展现设备驱动的运行情况及用户态和内核态的交互。相信阅读完本文将为您领悟《Linux Device Drivers》一书...
内核的这个版本针对常见任务完成了合理化设计及相应的简化,如即插即用、利用sysfs文件系统和用户空间交互,以及标准总线上的多设备管理等等。要阅读并理解本书,您不必首先成为内核黑客;只要您理解C语言并具有Unix...
查看内核内部状态●Linux进程模型●用户空间和内核空间●中断和异常●内存分配和跟踪●跟踪子系统行为●I/O交互●文件系统和文件操作●调度和同步●内核启动过程●内核构建过程●配置选项●设备驱动程序。...
本文将仍然秉承《Linux Device Drivers》一书以实例...出了用户态的程序来访问该设备,展现设备驱动的运行情况及用户态和内核态的交互。相信阅读完本文将 为您领悟《Linux Device Drivers》一书中的内容打下很好的基础
本书第三版涵盖Linux 2.6,从中可以看到几乎内核每个子系统都有相当大的变化,首当其冲的是内存管理和块设备部分。本书集中讨论了如下内容: 内存管理,包括文件缓冲、进程交换以及直接内存访问(DMA) 虚拟...
文件系统和用户空间交互,以及标准总线上的多设备管理等等。本书提供了完整的示例程序,不需要特殊的硬件即可编译和运行这些示例程序。本书还在单独的章节中讲述了 PCI、USB 和 tty(终端)子系统。对期望了解操作...
主要内容包括多任务、调度和进程管理,物理内存的管理以及内核与相关硬件的交互,用户空间的进程如何访问虚拟内存,如何编写设备驱动程序,模块机制以及虚拟文件系统,Ext文件系统属性和访问控制表的实现方式,内核...
cPu与外部世界的所有交互活动都是由内核处理的,哪些程序会分享处理器的时间,以什么样的顺序来分享。内核不遗余力地管理有限的内存,以使数以千计的进程有效地共享系统资源。内核还精心组织数据传送,使得 cPu不再...
383 18.10 调试 383 18.10.1 电路板返工 384 18.10.2 调试器 385 第19章 用户空间的驱动程序 386 19.1 进程调度和响应时间 387 19.1.1 原先的调度器 387 19.1.2 o(1)调度器 387 19.1.3 cfs 388 19.1.4 响应...
它还最大程度地减少了在获取过程中用户空间与内核空间过程之间的交互,从而使其产生的内存捕获比为Linux内存捕获而设计的其他工具在法医上更为合理。目录特征 LiME利用insmod命令加载模块,并传递执行所需的参数。 ...
1 Linux驱动与模块 1.1 Linux的模块 驱动程序为了与外设硬件进行交互,必须调用Linux内核提供的内存管理、文件系统等 多种功能函数。而用户态的程序只能通过系统调用来使用有限的内核功能,因此驱动程序在 linux系统...
内核的这个版本针对常见任务完成了合理化设计及相应的简化,如即插即用、利用sysfs文件系统和用户空间交互,以及标准总线上的多设备管理等等。要阅读并理解本书,您不必首先成为内核黑客;只要您理解C语言并具有Unix...
主要内容包括多任务、调度和进程管理,物理内存的管理以及内核与相关硬件的交互,用户空间的进程如何访问虚拟内存,如何编写设备驱动程序,模块机制以及虚拟文件系统,Ext文件系统属性和访问控制表的实现方式,内核...
主要内容包括多任务、调度和进程管理,物理内存的管理以及内核与相关硬件的交互,用户空间的进程如何访问虚拟内存,如何编写设备驱动程序,模块机制以及虚拟文件系统,Ext文件系统属性和访问控制表的实现方式,内核...
cpu与外部世界的所有交互活动都是由内核处理的,哪些程序会分享处理器的时间,以什么样的顺序来分享。内核不遗余力地管理有限的内存,以使数以千计的进程有效地共享系统资源。内核还精心组织数据传送,使得cpu不再...
cpu与外部世界的所有交互活动都是由内核处理的,哪些程序会分享处理器的时间,以什么样的顺序来分享。内核不遗余力地管理有限的内存,以使数以千计的进程有效地共享系统资源。内核还精心组织数据传送,使得cpu不再...