易截截图软件、单文件、免安装、纯绿色、仅160KB

Linux设备驱动程序学习之外设通信


在学习有关I/O总线的内容时,最好先看看相关的知识:从PC总线到ARM的内部总线
I/O 端口和 I/O 内存
每种外设都是通过读写寄存器来进行控制。
在硬件层,内存区和 I/O 区域没有概念上的区别: 它们都是通过向在地址总线和控制总线发出电平信号来进行访问,再通过数据总线读写数据。
因为外设要与I\O总线匹配,而大部分流行的 I/O 总线是基于个人计算机模型(主要是 x86 家族:它为读和写 I/O 端口提供了独立的线路和特殊的 CPU 指令),所以即便那些没有单独I/O 端口地址空间的处理器,在访问外设时也要模拟成读写I\O端口。这一功能通常由外围芯片组(PC 中的南北桥)或 CPU 中的附加电路实现(嵌入式中的方法) 。
Linux 在所有的计算机平台上实现了 I/O 端口。但不是所有的设备都将寄存器映射到 I/O 端口。虽然ISA设备普遍使用 I/O 端口,但大部分 PCI 设备则把寄存器映射到某个内存地址区,这种 I/O 内存方法通常是首选的。因为它无需使用特殊的处理器指令,CPU 核访问内存更有效率,且编译器在访问内存时在寄存器分配和寻址模式的选择上有更多自由。
I/O 寄存器和常规内存
在进入这部分学习的时候,首先要理解一个概念:side effect,书中译为边际效应,第二版译为副作用。我觉得不管它是怎么被翻译的,都不可能精准表达原作者的意思,所以我个人认为记住side effect就好。下面来讲讲side effect的含义。我先贴出两个网上已有的两种说法(在这里谢谢两位高人的分享):
第一种说法:
3. side effect(译为边际效应或副作用):是指读取某个地址时可能导致该地址内容发生变化,比如,有些设备的中断状态寄存器只要一读取,便自动清零。I/O寄存器的操作具有side effect,因此,不能对其操作不能使用cpu缓存。
原文网址:http://qinbh.blog.sohu.com/62733495.html
第二种说法:
说一下我的理解:I/O端口与实际外部设备相关联,通过访问I/O端口控制外部设备,“边际效应”是指控制设备(读取或写入)生效,访问I/O口的主要目的就是边际效应,不像访问普通的内存,只是在一个位置存储或读取一个数值,没有别的含义了。我是基于ARM平台理解的,在《linux设备驱动程序》第二版中的说法是“副作用”,不是“边际效应”。
原文网址:http://linux.chinaunix.net/bbs/viewthread.php?tid=890636&page=1#pid6312646
 
结合以上两种说法和自己看《Linux设备驱动程序(第3版)》的理解,我个人认为可


相关文档:

Perl和PHP在Linux下无法mkdir 777的问题

首先Perl mkdir 的语法是:
1.mkdir('dir', 代表九位二进制数字的十进制值)
设置775,则该值为十进制的509,即二进制的111111101
此数值不能设置为111111111即十进制的511即777。
2.mkdir('dir', 0常见unix3位权限)
可以设置777。
然后在linux下时,由于umask的原因,只能设置为755。
因为创建文件时的权限是umask和 ......

是谁编写了Linux:美国公司

    来源:cnbeta 作者:cnbeta 2008-10-31 出处:pcdog.com
    我不知道为什么“只有0.10068%的Linux内核开发者领薪水”这种稀里糊涂的想法流传不息,但它确实在流传.所以,我只想一劳永逸地说,就绝大部分而言,Linux是由一些主要的美国公司雇用的软件工程师 ......

Linux(Ubuntu)设置环境变量

今天又学了环境变量的设置,感受比较深一些,首先把我从网上看到的知道和大家分享一下。
环境变量是和Shell紧密相关的,用户登 录系统后就启动了一个Shell。对于Linux来说一般是bash,但也可以重新设定或切换到其它的 Shell。对于UNIX,可能是CShelll。环境变量是通过Shell命令来设置的,设置好的环境变量又可以被所有当前 ......

linux 查看源码

如果想进一步了解linux系统,熟悉一些系统底层的东西还是非常必要的,我们可以先了解一些linux命令是如何实现相关功能的,那么如何获得命令的源代码呢?下面我们详细介绍一下。
  下面以获取cat命令的源代码为例说明:
      cd /sbin
      rpm -qif cat
  ......

如何将windows下的文件夹挂载到虚拟机Linux系统下

        我所讲的是windows真实系统上有vmware的linux系统,将windows下的一个文件夹共享,如何挂载到虚拟机的linux系统下,也就是如何让linux系统试用windows下的一个文件夹。
      大家也许不太明白,下面我就做一些截图
双击share folder,一定要保证sh ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号