当前位置:  技术问答>linux和unix

求助:并口的I/O端口注册和读写的地址问题

    来源: 互联网  发布时间:2016-10-22

    本文导语:  ldd3中写到: 并口的最小配置由3个8位端口组成。pc标准中第一个并口的I/O端口是从地址0x378开始,第二个端口是从地址0x278开始,第三个从0x3bc开始。第三个端口是一个只用于输出的控制寄存器。 示例代码中:short_bas...

ldd3中写到: 并口的最小配置由3个8位端口组成。pc标准中第一个并口的I/O端口是从地址0x378开始,第二个端口是从地址0x278开始,第三个从0x3bc开始。第三个端口是一个只用于输出的控制寄存器。

示例代码中:short_base = 0x378;

request_region(short_base, 8, "short“); /* 注册了8个端口 */

outb(0x10, short_base+2); /* 向第三个端口写入0x10,开启中断 */


问题是: 这里的 short_base + 2 是个什么东西? 是0x37a吗? 好像不是吧!
物理上并口的这三个端口的地址是不连续的,为什么写端口的时候可以直接用 short_base + 0 , short_base + 2 这种方式呢?

|
这个注释有点问题。应该不是第三个端口,而是某个端口的第三个寄存器。
short_base的类型是unsigned long,所以,
如果short_base的值是0x378,那么short_base + 2 就是0x37a
如果short_base的值是0x278,那么short_base + 2 就是0x27a
如果short_base的值是0x3bc,那么short_base + 2 就是0x3be
这是毫无疑问的。

这段代码前面有一段话:
short_base is the base I/O address of the parallel interface being used; register 2 of the interface is written to enable interrupt reporting.
这就是说:对于任何一个端口,写入该端口的寄存器2(也就是short_base+2),就可以开启中断。

|
硬件驱动里面有很多类似的代码。
通常的硬件都有很多寄存器,他们的地址都是: 一个基地址(不固定) + 一个偏移量(固定)
比如这里的 short_base+2 他就是并口里用于开关中断的寄存器。
每个端口的基地址不同,但是,只要把基地址设置对了,可以用同样的代码来操作不同的端口。

|
我觉得这里的“端口”这个词用的有点歧义了。
准确地说,应该是有3个并口,每个并口有8个寄存器。只要弄明白这个区别,其他的就容易理解了。
0x378、0x278、0x3bc 这是3个并口
short_base = 0x378; 指定了3个并口其中之一
request_region(short_base, 8, "short“); 这是该并口的8个寄存器
outb(0x10, short_base+2); 这是一个并口里面8个寄存器里面的第三个

|

是的,不过很多PC只有一个并口,在BIOS里面也可以把这个并口配置在0x378或者0x278的

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 求助~~哪位大神晓得如何固定tuxedo客户端与通信端的端口呀?
  • 求助:内网如何做端口映射??
  • [求助]查看监听端口所属进程问题
  • [求助]请问我在安装完后,怎进行ftp.http等端口的设置
  • 求助!如何使用同一个套接字和端口实现反复下载
  • 求助ssh占用80端口??这是怎么回事??
  • 求助有关端口映射的问题 100分
  • 求助改正/用c在LINUX下写的端口扫描程序有错误 /希望能在6.10前解决
  • 高分求助高分求助高分求助高分求助高分求助高分求助
  • 怎样读取HZK24S前十区的内容啊???求助求助
  • 紧急求助!紧急求助!
  • 【求助】iplanet问题,求助高手解答!
  • 菜鸟求助,solaris下计算问题求助
  • 【求助】SOS紧急求助..............极为简单的问题...跪求....
  • 高分求助啊!求助SUSE 10.0 不能上网.
  • 急急急急急急急啊,紧急求助啊!!!!!满分求助啊!!!!!!
  • 求助:linux下 vim的配置(高分求助)
  • red hat怎么安装gcc啊!总是出错,求助求助啊!!!yum源怎么改啊!!
  • 求助:信号 --13 进程中断
  • 求助,安装了红帽子后进不了
  • 新装linux求助
  • linux的 iptables问题求助
  • (高分求助)请问,那里有软件开发的<设计文档>
  • 一个简单的问题,高分求助!!!
  • 紧急求助:Unix下给文件夹重命名用什么命令?谢谢!!!!
  • VJ的一个问题,高分求助,熟悉VJ得请进!
  • 高分求助
  • 紧急求助java多线程编程!!!!!!!!!!!!!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3