I/O端口 与 I/O内存

news/2024/7/20 10:11:38 标签: linux内核, 汇编, 平台, linux, x86

    MIPS、ARM和PowerPC等平台的I/O和主存采用的是统一编址的方式,它们将I/O空间映射到内存,采用与内存相同的汇编指令(load和store)来读写设备,这种方式称为I/O内存;x86平台的I/O和主存采用的是独立编址的方式,CPU有专门的线路来访问I/O,而且有专门的汇编指令(in和out)来读写设备,这种方式称为I/O端口。

    Linux系统在各种平台(不管是MIPS、ARM、PowerPC,还是x86)上,都提供了文件/proc/ioports和/proc/iomem。可以cat这两个文件来查看I/O端口的分配情况和I/O映射到内存的空间范围。另外Linux还提供了相应的两个设备文件/dev/port和/dev/mem,可以读写这两个文件来访问相应的端口和内存。尽管MIPS等平台采用的是I/O内存的方式,但是也提供了ioports等文件,即可以通过函数inb()、outb()等同类函数来读写I/O端口,其实这些函数仅仅是个外壳,通过查看Linux内核源代码可以发现它们最终也是转换成readb()和writeb()来读写内存;对于x86平台,其inb()、outb()等同类函数是通过汇编指令in、out的形式来完成的。

      这部分内容可以查阅《Linux设备驱动程序 第三版》第9章的相关内容来深入学习。

本文来自:http://blog.csdn.net/lanshixiong/article/details/4647253

http://www.niftyadmin.cn/n/1736512.html

相关文章

platform设备驱动全透析

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处、作者信息和本声明。否则将追究法律责任。 http://21cnbao.blog.51cto.com/109393/3376091.1 platform总线、设备与驱动 在Linux 2.6的设备驱动模型中,关心总线、设备和驱动这…

ioremap

几乎每一种外设都是通过读写设备上的寄存器来进行的,通常包括控制寄存器、状态寄存器和数据寄存器三大类,外设的寄存器通常被连续地编址。根据CPU体系结构的不同,CPU对IO端口的编址方式有两种: (1)I/O映射方…

(*(volatile unsigned long *)0x0012450的理解

对于不同的计算机体系结构,设备可能是端口映射,也可能是内存映射的。如果系统结构支持独立的IO地址空间,并且是端口映射,就必须使用汇编语言完成实际对设备的控制,因为C语言并没有提供真正的“端口”的概念。如果是内存…

高手链接

http://blog.csdn.net/fudan_abc?viewmodecontents 《Linux那些事儿之我是USB》 《Linux内核修炼之道》 /**************************************************************************************************************/ unbutun的专栏 http://blog.csdn.net/unbutu…

uart硬件一些小知识

一、什么是串口通信? 串口通信是指计算机主机与外设之间以及主机系统与主机系统之间数据的串行传送。使用串口通信时,发送和接收到的每一个字符实际上都是一次一位的传送的,每一位为1或者为0。 二、串口通信的分类 串口通信可以分为同步通信和…

浅谈MAC、MII、PHY

以太网(Ethernet)是一种计算机局域网组网技术,该技术基于IEEE制定的IEEE 802.3标准,它规定了包括物理层的连线、电信号和介质访问层协议的内容。以太网是当前应用最普遍的局域网技术。它很大程度上取代了其他局域网标准&#xff0…

PHY 、MII 接口

以太网PHY芯片 PHY指物理层,OSI的最底层。 一般指与外部信号接口的芯片。 以太网PHY芯片网络中最基础的部件是什么?不是交换机也不是路由器,而是小小的不起眼但又无处不在的网卡。如果在5年前,或许网卡与您无关,但在如今这网络…

linux下SPI驱动

框架:1. LINUX SPI 核心层:核心层代码负责这个框架中通用的部分,满足分层的思想,位于drivers/spi/spi.c。主要承担的工作包括:注册 spi总线,提供基本 SPI 总线操作 API:int spi_register_driver(struct spi_driver *sd…