问题标签 [ioports]

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 投票
2 回答
1435 浏览

python - Python mmap /dev/port

是否可以映射 /dev/port?当我尝试时,我得到“没有这样的设备”。

我已经能够使用相同的选项映射一个常规文件。

0 投票
1 回答
1179 浏览

linux - Linux NASM OUTSB SegFault

我正在尝试将字节写入0xff并行端口0x378。它编译和链接没有问题,但在OUTSB指令中出现段错误。

如果我用 GDB 单步执行它并在指令之前检查寄存器OUTSB,看起来 DX 寄存器中没有任何内容?或dx==edx在 32 位?

我在这里做错了什么?

(关于 OUTS 说明的信息:http ://siyobik.info/main/reference/instruction/OUTS%2FOUTSB%2FOUTSW%2FOUTSD )


编辑:

该程序的 C 版本有效:

0 投票
1 回答
695 浏览

c - 编译 v4l2 程序时出现 ioport.h 错误

我想关注这篇关于 v4l2 驱动程序编写的文章。

但是当我包含 media/v4l2-dev.h 时,我的第一次基本尝试失败了(因为我想访问像 VFL_TYPE_GRABBER 这样的宏)。

media/v4l2-dev.h 包括 linux/device.h ,其中包括 linux/ioport.h 与此输出崩溃:

[...]

来源 :

我编译:

它发生在 2.6.32-37-generic-pae 和 gcc 4.4.3 glibc 2.10 我在 gentoo 上用内核头文件和 gcc 的近似等效版本进行了同样的尝试。

我究竟做错了什么 ?

编辑:指出确切的包含路径。

0 投票
1 回答
219 浏览

c++ - 放置新的对象,放置在 I/O 寄存器上并归零内存

我一直在尝试将新的“映射”类放置在 I/O 空间之上以节省一些内存:

效果很好,但会将 0xWHATEVER 处的字节清零。“替代”解决方案

也可以,但不调用我实现的默认构造函数。

有什么方法可以调用构造函数,但不要在 C++ 中预先将内存清零?

0 投票
1 回答
1910 浏览

c++ - 写入 I/O 端口控制器驱动程序(输入)(PS/2 键盘端口)左右键盘按键?

我正在使用使用此系统驱动程序InpOut32 和 InpOutx64inpout32/64的硬件 I/O 端口控制器

我试图用它来绕过我在 DirectInput 游戏中遇到的问题。
(不能使用SendInput,因为它会在没有很长的睡眠延迟的情况下拒绝输入,而且我不能等那么久,它必须是非常快的键盘输入)。

我目前inpout32几乎所有键盘键都在工作,我不知道如何访问左/右箭头键。

通过查看有关 PS/2 键盘PS/2 键盘命令的网页

发现这是我需要的

我如何发送这两个,我不明白0xE0我猜它是扫描码是什么,0x4B并且0x4D是该扫描码中的位置,但在我的示例中它不起作用它一直发送\左键.

这是我正在使用的代码




编辑:问题解决了,下面这个函数可以工作,只需要让 DD_PS2command 返回真/假(表明它是否通过)。
新问题它会立即释放键,但不会按住键。

这是所有键http://www.computer-engineering.org/ps2keyboard/scancodes1.html

0 投票
2 回答
7833 浏览

linux-device-driver - GPIO如何映射到内存中?

我最近在浏览 pi2 的 GPIO 驱动程序,我发现用户空间 pi2 GPIO 库(如 Python 的 RPi.GPIO 0.5.11)/dev/mem用于 BCM2708(从 0x20000000 开始,GPIO 相对从 0x200000 开始)来映射用户空间内存区域为了处理 GPIO。但是我drivers/gpio在 linux 中发现源代码树被设计为由/sys/class/gpio/*. 我没有发现像 I/O 端口映射request_io_region__io_remap. 我的问题是 BCM2708 的 GPIO 如何映射到内存中?有其他司机吗?我可以通过 R&W 来处理 GPIO/sys/class/gpio/*吗?

0 投票
2 回答
114 浏览

c - 使用 Vex RobotC 控制循环中的端口

我正在使用Vex RobotC并有一个功能:setTouchLEDRGB(portx, R,G,B);设置触摸 LED 的 RGB 颜色。

我有 9 个 TouchLED,想一次改变它们的颜色,现在烦人的是一次 9 行代码,我希望创建一个迭代函数,例如:

有没有办法做到这一点?

0 投票
1 回答
1109 浏览

c - 对于 C,Linux 标头的 Windows 标头版本是什么输入/输出端口

对于 Linux,您可以<sys/io.h>在我假设的硬件中包含 I/O 端口?

我必须包含哪个标头才能使这些功能用于 Windows 编译?

编辑: Windows 相当于inb()outb()低级 I/O说这在 Windows 上是不可能的;您需要在 Windows 上安装驱动程序才能使用快速修复。

0 投票
0 回答
229 浏览

rust - 网卡和以太网驱动程序之间如何通信?

我正在尝试在 Rust 中构建一个 unikernel,它将启动并启动一个 Web 服务器。我正在使用Qemu进行测试。

到目前为止,通过关注各种在线博客和 github 上的项目,我已经设法编写了一个支持分段、分页和中断的操作系统。int 32内核已启动并运行,并且能够检测软件中断和硬件中断(如果显式调用了某种中断) 。在此之后,我启用了 IO 端口并实现了所有端口 I/O 功能,如inboutbinloutlinwoutw这有助于我读取和写入端口。我在某处读到这就是驱动程序和设备相互通信的方式。使用这些我使用探测方法来检测外围设备。在 qemu 中,检测到 3 个设备。

其中一个设备Intel 82540EM Ethernet Controller带有 device id0x100e和 vendor id 0x8086。我正在尝试与此驱动程序通信以实现将完成我的项目的数据包的传输和接收。我知道网卡和驱动程序之间发生的所有通信都是通过设备的 IO 端口进行的。

但是,我无法清楚地理解背景中发生的事情。那么,有人可以解释一下—— 我们如何检测到一些新数据包已经到达网卡?

0 投票
1 回答
206 浏览

assembly - 转动键盘LED灯

我得到了一些代码来分析。此代码启用键盘上的 numLock 和 scrollLock LED。我理解这段代码的大部分内容,但是我不理解循环部分(0104)。我知道这是等待输入缓冲区为空。但是有必要吗?没有这部分代码运行良好。