上一页 1 ··· 146 147 148 149 150 151 152 153 154 ··· 280 下一页
摘要: 如果你想实际地"看到"产生的中断, 向硬件设备写不足够; 一个软件处理必须在系统中配 置. 如果 Linux 内核还没有被告知来期待你的中断, 它简单地确认并忽略它. 中断线是一个宝贵且常常有限的资源, 特别当它们只有 15 或者 16 个时. 内核保持了中 断线的一个注册, 类似于 I/O 端口的 阅读全文
posted @ 2019-07-06 11:54 樊伟胜 阅读(444) 评论(0) 推荐(0)
摘要: 一个最著名的 I/O 内存区是在个人计算机上的 ISA 范围. 这是在 640 KB(0xA0000)和 1 MB(0x100000)之间的内存范围. 因此, 它正好出现于常规内存 RAM 中间. 这个位置可能 看起来有点奇怪; 它是一个在 1980 年代早期所作的决定的产物, 当时 640 KB 阅读全文
posted @ 2019-07-06 11:53 樊伟胜 阅读(490) 评论(0) 推荐(0)
摘要: short 例子模块, 在存取 I/O 端口前介绍的, 也能用来存取 I/O 内存. 为此, 你必须告 诉它使用 I/O 内存在加载时; 还有, 你需要改变基地址来使它指向你的 I/O 区. 例如, 这是我们如何使用 short 来点亮调试 LED, 在一个 MIPS 开发板上: mips.root 阅读全文
posted @ 2019-07-06 11:52 樊伟胜 阅读(267) 评论(0) 推荐(0)
摘要: 在一些平台上, 你可能逃过作为一个指针使用 ioremap 的返回值的惩罚. 这样的使用不 是可移植的, 并且, 更加地, 内核开发者已经努力来消除任何这样的使用. 使用 I/O 内 存的正确方式是通过一系列为此而提供的函数(通过 <asm/io.h> 定义的). 从 I/O 内存读, 使用下列之一 阅读全文
posted @ 2019-07-06 11:51 樊伟胜 阅读(280) 评论(0) 推荐(0)
摘要: 我们介绍的驱动称为 short (Simple Hardware Operations and Raw Tests). 所有它做 的是读和写几个 8-位 端口, 从你在加载时选择的开始. 缺省地, 它使用分配给 PC 并口 的端口范围. 每个设备节点(有一个独特的次编号)存取一个不同的端口. sho 阅读全文
posted @ 2019-07-06 11:50 樊伟胜 阅读(485) 评论(0) 推荐(0)
摘要: I/O 内存区必须在使用前分配. 分配内存区的接口是( 在 <linux/ioport.h> 定义): struct resource *request_mem_region(unsigned long start, unsigned long len, char *name); 这个函数分配一个 阅读全文
posted @ 2019-07-06 11:50 樊伟胜 阅读(528) 评论(0) 推荐(0)
摘要: 刚刚描述的这些函数主要打算被设备驱动使用, 但它们也可从用户空间使用, 至少在 PC- 类 的计算机. GNU C 库在 <sys/io.h> 中定义它们. 下列条件应当应用来对于 inb 及其 友在用户空间代码中使用: 程序必须使用 -O 选项编译来强制扩展内联函数. ioperm 和 iopl 阅读全文
posted @ 2019-07-06 11:49 樊伟胜 阅读(452) 评论(0) 推荐(0)
摘要: 因为我们期望大部分读者以所谓的"个人计算机"的形式使用一个 x86 平台, 我们觉得值 得解释一下 PC 并口如何设计的. 并口是在个人计算机上运行数字 I/O 例子代码的外设 接口选择. 尽管大部分读者可能有并口规范用, 为你的方便, 我们在这里总结一下它们. 并口, 在它的最小配置中 ( 我们浏 阅读全文
posted @ 2019-07-06 11:49 樊伟胜 阅读(611) 评论(0) 推荐(0)
摘要: 在驱动硬件请求了在它的活动中需要使用的 I/O 端口范围之后, 它必须读且/或写到这些 端口. 为此, 大部分硬件区别 8-位, 16-位, 和 32-位端口. 常常你无法混合它们, 象你 正常使用系统内存存取一样.[33]33 一个 C 程序, 因此, 必须调用不同的函数来存取不同大小的端口. 如 阅读全文
posted @ 2019-07-06 11:48 樊伟胜 阅读(583) 评论(0) 推荐(0)
摘要: 如同你可能希望的, 你不应当离开并开始抨击 I/O 端口而没有首先确认你对这些端口有 唯一的权限. 内核提供了一个注册接口以允许你的驱动来声明它需要的端口. 这个接口中 的核心的函数是 request_region: #include <linux/ioport.h> struct resource 阅读全文
posted @ 2019-07-06 11:43 樊伟胜 阅读(790) 评论(0) 推荐(0)
上一页 1 ··· 146 147 148 149 150 151 152 153 154 ··· 280 下一页