【发布时间】:2021-04-05 23:33:46
【问题描述】:
我正在尝试在 Windows 上编写一个简单的 C# 程序,以在任何受支持的主板(如 here 和here)。之前已经在 Linux、C、Assembly 中通过名为“TempLCD”的免费软件完成了这项工作:
C(__outword 命令示例):What does the 0x80 port address connect to?
大会:Is there a way to manually change BIOS POST codes on motherboard LCD?
Linux:Writing LCD Temperatures in Linux to Debug Port
在此屏幕截图中,您可以看到调试端口位于 80(设备管理器 > 查看 > 按类型划分的资源):
如何使用任何高级编程语言(例如 C#)将此端口作为读/写目标? SerialPort 类失败,因为它需要 COM1、COM2 等。
【问题讨论】:
-
您不能直接从用户模式程序执行此操作 - 您需要内核模式驱动程序。可能有一种通用的可供您使用,但我不知道有一种可以在我的脑海中发挥作用。
-
通常您的开发板使用 USB 转 USB 电缆连接到另一台 PC。您写入开发板上的 com 端口(Com1 或 Com2),然后在 PC 上的 Com 端口上读取。您不使用 I/O 地址。开发板和 PC 上都有一个驱动程序,将 I/O 地址映射到端口名称(Com1,Com2,...)。
-
TempLCD 使用名为:WinRing0x64 的 DLL 文件和 driver.sys 文件。这可能是需要从第 3 环到第 0 环的跳跃吗?
标签: c# io x86 port motherboard