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

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


分享到:
评论

相关推荐

    linux内核空间与用户空间信息交互方法

    在进行设备驱动程序,内核功能模块等系统级开发时,通常需要在内核和用户程序之间交换信息。Linux提供了多种方法可以用来完成这些任务。本文总结了各种常用的信息交换方法,并用简单的例子演示这些方法各自的特点及...

    深入Linux设备驱动程序内核机制.pdf

    本文深入探讨了Linux设备驱动程序的内核机制,并提供了一个简单的字符设备驱动程序示例。通过源码示例,详细讲解了驱动程序注册与注销、文件操作函数的实现、设备号分配等关键概念和操作方法。 通过学习本文,您将...

    linux内核分析.pdf

    Linux内核使用了设备驱动程序来管理设备,提供了灵活的设备管理机制。 安全管理: 安全管理是Linux内核中负责管理系统安全的组件,包括身份验证、访问控制和加密机制。Linux内核使用了各种安全机制来保护系统免受...

    内存映射技术在Linux驱动程序中的应用和实现.pdf

    内存映射技术在Linux驱动程序中的应用和实现 内存映射技术在Linux驱动程序中的应用和实现可以解决高速设备的驱动程序中传统的驱动实现读写系统调用的问题。传统的驱动实现读写系统调用的方式已经不能很好地利用操作...

    嵌入式Linux设备驱动程序开发.pdf

    1. 设备驱动接口:设备驱动接口是指设备驱动程序与内核之间的接口,它定义了设备驱动程序如何与内核交互。 2. 设备驱动程序:设备驱动程序是指设备驱动接口的实现,它是内核用于完成对物理设备的控制操作的功能模块...

    Linux的设备驱动内核模块驱动结构并发控制教程.pdf

    另外,与《Linux Device Drivers》所不同的是,针对设备驱动的实例,本文还给出了用户态的程序来访问该设备,展现设备驱动的运行情况及用户态和内核态的交互。相信阅读完本文将为您领悟《Linux Device Drivers》一书...

    浅谈Linux设备驱动.pdf

    Linux 设备驱动程序的开发需要遵守 Linux 内核的规范和标准,需要了解 Linux 内核的工作机理和设备驱动程序的编写原则。 Linux 设备驱动程序是指用于操作系统和硬件设备之间的交互接口,是 Linux 操作系统的核心...

    Android内核和驱动篇-Android内核介绍

    5. Android PMEM(Physical):PMEM 用于向用户空间提供连续的物理内存区域,DSP 和某些设备只能工作在连续的物理内存上。源代码位于 drivers/misc/pmem.c PMEM 驱动程序提供了一个灵活的物理内存管理机制,允许 ...

    浅谈嵌入式Linux系统设备驱动的开发与设计.pdf

    设备驱动程序在 Linux 内核中占有极其重要的位置,是内核用于完成对物理设备的控制操作的功能模块。 2. 嵌入式Linux系统设备驱动程序开发流程 嵌入式Linux系统设备驱动程序开发流程主要包括以下几个步骤: * 设备...

    嵌入式Linux下UART驱动的设计与实现.pdf

    用户层是用户程序与内核空间的桥梁,行规程层是 Linux 内核中的一个重要组成部分,它负责将用户空间的数据交互转换为硬件可以理解的格式。硬件层是 UART 设备的物理实现部分,它负责与硬件的交互和控制。 在 Linux ...

    嵌入式Linux驱动程序框架研究综述.pdf

    设备驱动是作为文件系统的一个模块存在的,它既负责和硬件的交互,同时通过挂载在文件系统上和内核联系起来。驱动程序的构成主要包括三个重要部分:初始化、独立的设备接口、硬件相关部分。 1.3 嵌入式 Linux 框架...

    LINUX设备驱动程序

    内核的这个版本针对常见任务完成了合理化设计及相应的简化,如即插即用、利用sysfs文件系统和用户空间交互,以及标准总线上的多设备管理等等。要阅读并理解本书,您不必首先成为内核黑客;只要您理解C语言并具有Unix...

    Linux内核编程part1

    查看内核内部状态●Linux进程模型●用户空间和内核空间●中断和异常●内存分配和跟踪●跟踪子系统行为●I/O交互●文件系统和文件操作●调度和同步●内核启动过程●内核构建过程●配置选项●设备驱动程序。...

    Linux设备驱动程序设计入门.7z

    本文将仍然秉承《Linux Device Drivers》一书以实例...出了用户态的程序来访问该设备,展现设备驱动的运行情况及用户态和内核态的交互。相信阅读完本文将 为您领悟《Linux Device Drivers》一书中的内容打下很好的基础

    对AT91RM9200Bootloader的移植,Linux内核的建立,串口、液晶、网络驱动程序的编写,以及文件系统的建立

    * 内核配置:配置Linux内核的各种参数,包括网络设置、文件系统设置等。 * 内核引导:使用Bootloader引导Linux内核。 串口、液晶、网络驱动程序的编写 串口、液晶、网络驱动程序是嵌入式系统的外围设备驱动程序,...

    深入理解linux内核中文第三版(高清有目录)

     本书第三版涵盖Linux 2.6,从中可以看到几乎内核每个子系统都有相当大的变化,首当其冲的是内存管理和块设备部分。本书集中讨论了如下内容:  内存管理,包括文件缓冲、进程交换以及直接内存访问(DMA)  虚拟...

    Linux设备驱动程序第三版2.6.CHM

    文件系统和用户空间交互,以及标准总线上的多设备管理等等。本书提供了完整的示例程序,不需要特殊的硬件即可编译和运行这些示例程序。本书还在单独的章节中讲述了 PCI、USB 和 tty(终端)子系统。对期望了解操作...

    深入理解Linux内核(第三版) (英文版) Understanding the Linux Kernel

    cPu与外部世界的所有交互活动都是由内核处理的,哪些程序会分享处理器的时间,以什么样的顺序来分享。内核不遗余力地管理有限的内存,以使数以千计的进程有效地共享系统资源。内核还精心组织数据传送,使得 cPu不再...

    深入Linux内核架构(英文原版Professional Linux® Kernel Architecture)

    主要内容包括多任务、调度和进程管理,物理内存的管理以及内核与相关硬件的交互,用户空间的进程如何访问虚拟内存,如何编写设备驱动程序,模块机制以及虚拟文件系统,Ext文件系统属性和访问控制表的实现方式,内核...

Global site tag (gtag.js) - Google Analytics