电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

LINUX下IO资源的实现、管理和操作VIP免费

LINUX下IO资源的实现、管理和操作_第1页
1/32
LINUX下IO资源的实现、管理和操作_第2页
2/32
LINUX下IO资源的实现、管理和操作_第3页
3/32
下载后可任意编辑LINUX 下 I/O 资源的实现、管理和操作发布日期:2024-01-14 01:39:42 作者:admin 来源: 浏览次数:448几乎每一种外设都是通过读写设备上的寄存器来进行的。外设寄存器也称为“I/O 端口”,通常包括:控制寄存器、状态寄存器和数据寄存器三大类,而且一个外设的寄存器通常被连续地编址。CPU 对外设 IO 端口物理地址的编址方式有两种:一种是 I/O 映射方式(I/O-mapped),另一种是内存映射方式(Memory-mapped)。而具体采纳哪一种则取决于 CPU 的体系结构。 有些体系结构的 CPU(如,PowerPC、m68k 等)通常只实现一个物理地址空间(RAM)。在这种情况下,外设 I/O 端口的物理地址就被映射到 CPU 的单一物理地址空间中,而成为内存的一部分。此时,CPU可以象访问一个内存单元那样访问外设 I/O 端口,而不需要设立专门的外设 I/O 指令。这就是所谓的“内存映射方式”(Memory-mapped)。 而另外一些体系结构的 CPU(典型地如 X86)则为外设专门实现了一个单独地地址空间,称为“I/O 地址空间”或者“I/O 端口空间”。这是一个与 CPU 地 RAM 物理地址空间不同的地址空间,所有外设的 I/O 端口均在这一空间中进行编址。CPU 通过设立专门的 I/O 指令(如 X86 的 IN 和 OUT 指令)来访问这一空间中的地址单元(也即 I/O 端口)。这就是所谓的“I/O 映射方式”(I/O-mapped)。与 RAM 物理地址空间相比,I/O 地址空间通常都比较小,如 x86 CPU 的 I/O 空间就只有 64KB(0-0xffff)。这是“I/O 映射方式”的一个主要缺点。 Linux 将基于 I/O 映射方式的或内存映射方式的 I/O 端口通称为“I/O 区域”(I/O region)。在讨论对 I/O 区域的管理之前,我们首先来分析一下 Linux 是如何实现“I/O 资源”这一抽象概念的。3.1 Linux 对 I/O 资源的描述 Linux 设计了一个通用的数据结构 resource 来描述各种 I/O 资源(如:I/O 端口、外设内存、DMA 和 IRQ 等)。该结构定义在 include/linux/ioport.h 头文件中:下载后可任意编辑 struct resource { const char *name; unsigned long start, end; unsigned long flags; struct resource *parent, *sibling, *child; }; 各成员的含义如下: 1. name 指针:指向此资源的名称。 2. start 和 end:表示资源的起始物理地址和终止物理地址。它们确定了资源的范围,也即是...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

LINUX下IO资源的实现、管理和操作

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部