嵌入式系统IO驱动实验报告
嵌入式系统实验报告(五)
--IO接口驱动
138352022陈霖坤
一实验目的
学习嵌入式Linux操作系统设备驱动的方法。
二实验内容与要
嵌入式系统IO驱动实验报告
嵌入式系统实验报告(五)
--IO接口驱动
138352022陈霖坤
一实验目的
学习嵌入式Linux操作系统设备驱动的方法。
二实验内容与要求
根据硬件接口资料,实现任意一个设备的基本控制功能,包括驱动程序和用户程序。
三从外设到用户空间
1内核空间与用户空间
Linux简化了分段机制,使得虚拟地址与线性地址总是一致,因此,Linux的虚拟地址空间也为0~4G。Linux内核将这4G字节的空间分为两部分。将最高的1G字节(从虚拟地址0xC0000000到0xFFFFFFFF),供内核使用,称为“内核空间”。而将较低的3G字节(从虚拟地址0x00000000到0xBFFFFFFF),供各个进程使用,称为“用户空间”。内核空间和用户空间都是指虚拟空间,也就是虚拟地址。
这个概念的由来,跟CPU的发展有很大关系,在目前CPU的保护模式下,系统需要对其赖以运行的资料进行保护,为了保证操作系统内核资料,我们把内存空间进行划分,一部分为操作系统内核运行的空间,另一部分是应用程序运行的空间,所谓空间就是内存的地址。在386以前的CPU实模式下,操作系统内核与用户程序的内存空间是不做区分的,也就不存在内核空间和用户空间的说法了。
CPU的保护模式的一个重大特点,也就是硬件直接支持的内存访问模式,虚拟地址空间到物理地址空间的映射。这种工作模式与内核空间用户空间在技术上的相辅相成,也是促成内存空间划分的原因。操作系统为了保护自己不被普通程序的破坏,对内核空间进行了一些定义,比如访问权限,换入换出,优先级等等。也就是说内核空间只允许内核访问,用户程序如果要访问内核空间就需要经过内核的审核。
2ioremap
几乎每一种外设都是通过读写设备上的寄存器来进行的,通常包括控制寄存器、状态寄存器和数据寄存器三大类,外设的寄存器通常被连续地编址。根据CPU体系结构的不同,CPU对IO端口的编址方式有两种:
(1)I/O映射方式(I/O-mapped)
处理器(如X86)为外设专门实现了一个单独的地址空间,称为"I/O地址空间"或者"I/O 端口空间",CPU通过专门的I/O指令(如X86的IN和OUT指令)来访问这一空间中的地址单元。
(2)内存映射方式(Memory-mapped)
嵌入式系统实验报告(五)
嵌入式系统IO驱动实验报告 来自淘豆网m.daumloan.com转载请标明出处.