问题标签 [hardware-port]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
4776 浏览

linux-device-driver - 查找设备基地址以通过 inb() 和 outb() 进行通信

我正在尝试使用 inb()、inw()、outb() 和 outw() 命令与磁盘驱动器通信,以便找到有关驱动器的特定信息。但是,要使用这些命令,我​​需要设备的正确 I/O 端口。当我拥有正确的 I/O 端口时,我可以很容易地找到我正在寻找的信息,但是,我不知道如何在 Linux 中找到设备 I/O 端口的基地址。

在 DOS 中,我可以使用 Hdat2 查找设备的基地址,但是,我试图在 Linux 中查找地址。有没有办法在 Linux 中找到哪个设备映射到哪个 I/O 端口?

/proc 中有一个名为 ioports 的文件,其中包含一些信息,但我不知道如何将这些信息与特定设备相关联。

任何帮助将不胜感激。谢谢!

0 投票
2 回答
1024 浏览

linux-kernel - character device driver

The read() and write() callback functions in our ‘cmosram.c’ device-driver only transfer a single byte of data for each time called, so it takes 128 system-calls to read all of the RTC storage-locations!

Can you improve this driver’s efficiency, by modifying its read() and write() functions, so they’ll transfer as many valid bytes as the supplied buffer’s space could hold?

code is as follows

0 投票
3 回答
2565 浏览

winapi - Windows 等效于 inb()、outb()、低级 i/o

我有一些 Linux 代码通过使用 inb()、outb()、inl() 等低级 i/o 函数从主板收集温度、电压和风扇速度来监控我们的硬件。

我的挑战是将代码移植到 Windows 下作为简单的控制台应用程序运行。但我对 Win32(或 .NET)提供的哪些功能允许我访问直接内存映射端口感到困惑。

我也不想编写系统驱动程序。

我的 Windows 工具偏好是 VS2008。(供参考)

这可能吗?

0 投票
2 回答
10018 浏览

assembly - AT&T asm 中的“outb”是什么意思?

我正在阅读一些 Linux 的代码。keyboard.S 有类似的东西

我认为未决的“b”表示“字节”,但我仍然找不到这些指令的含义。

0 投票
1 回答
484 浏览

java - 在 Linux 上从 Java 访问 PC 硬件端口

什么是 Java-on-Linux 等价于 C 字节大小的 PC 架构硬件端口输入/输出功能?

对于输出,outb如下所示:

对于输入,inb如下所示:

目的:我想实现一些开销比这更少的东西:

作为将代码 7(bell char)发送到标准输出的替代方法,因为这似乎在 Ubuntu 中已被积极禁用。Toolkit 的哔声也是静音的。

0 投票
3 回答
17764 浏览

c - 使用 outb 和 inb 进行低级 I/O 访问

我很难理解中断是如何工作的。

下面的代码初始化可编程中断控制器

有人可以向我解释它是如何工作的:

-outb的作用(我不懂linux man)

-地址及其含义

另一个不相关的问题,我读到 outb 和 inb 用于端口映射 I/O,我们可以使用内存映射 I/O 进行输入/输出通信吗?

谢谢。

0 投票
2 回答
2030 浏览

c - 在 I/O 端口上读取和写入

我试图理解以下代码:

输出是 0xff,十进制的 255,无论我是在端口 1 还是端口 0 上写(使用outb())。当我写 0 时,我不明白为什么它是 255。

0 投票
1 回答
3140 浏览

c - 如何使用 inb() 和 outb() 读取和写入 GPIO 值

我有一个带有 Fintek F75111 GPIO 的原子板。我从制造商那里得到信息,访问芯片的 SMbus 地址是 06EH。

我正在尝试在 Linux 中读取和写入 GPIO 的值。我有一个制造商为 Windows 编写的示例程序,看起来像这样。

我试图将其转换为与 Linux 兼容的函数 inb() 和 outb(),这就是我得到的。

GPIO1X 索引 0x10 用于设置连接到 GPIO1x 的 8 个 GPIO 端口是输出端口还是输入端口。

GPIO 的输出值使用索引 0x11 设置,如果端口用作输入端口,则索引 0x12 用于读取输入值。

问题是我不知道这是否正确或如何读取值(为什么读取函数会在读取之前输出一些东西?!?)

当我运行时:

用 1..9 的值更改 X 我得到这个作为输出: 0 8 8 0 0 0 0 0 0

数字8让我很困惑...

0 投票
2 回答
397 浏览

coding-style - linux中的第一个内核空间驱动程序

我能够使用 mmap 系统调用直接从用户空间控制 LED 操作来控制 GPIO。现在我想在内核空间中实现驱动程序。

我正在尝试为 ARM 控制器 RPi 在 Linux 中为 16*2 行 LCD 编写我的第一个内核空间设备驱动程序。现在我需要为此访问 GPIO。

在 AVR 中,我用这样的方式访问端口。

我正在阅读 LLD,它告诉使用 inb() 和 outb() 函数来访问 i/o 端口。
http://www.makelinux.net/ldd3/chp-9-sect-2

1>我们可以不使用#define端口地址来访问GPIO吗?

2> 使用 inb() & outb() 函数来控制 GPIO 有什么好处?

请建议。

0 投票
2 回答
13619 浏览

linux - 如何在 Linux 中访问并行端口

在我的 Linux 机器(Debian Wheezy)上,我尝试访问并口,request_region()但失败了,因为系统已经加载了内核模块parport......

所以,我的rmmod模块lp,,ppdev和。然后,我可以成功插入我的模块。parport_pcparport

inb()但是,从返回的基地址0xff,无论写入什么值。

rmmod内核中的那些模块之前,我可以编写和读取这个寄存器。然后我在系统启动时将这些模块列入黑名单,我可以读写这些寄存器,我的模块也可以工作。似乎 的clearup函数parport_pc做了一些使硬件无法使用的事情。(至少端口的状态与加载模块之前的状态不同)。

我的问题是为什么,我应该怎么做才能恢复端口而不是重新加载parport_pc