【发布时间】:2011-03-01 17:42:11
【问题描述】:
我正在寻找位于地址 302H 中的值。目的是从硬件(104pc 堆栈的一部分)读取输入。当我运行以下代码时出现此错误:Unhandled exception at 0x004134b9 in setOutput.exe: 0xC0000005: Access violation reading location 0x00000302.
#include <stdlib.h>
#define PORTBASE 0x302
int _tmain(int argc, char *argv[])
{
int value;
int volatile * port = (int *) PORTBASE;
printf("port = %d\n", port);
value = *port;
printf("port value = %d\n", value);
}
编辑:
我在 widows xp 下运行它。下面是我在板上可以找到的唯一文档
编辑:
从您下面的回答中,我可以看出我需要为该板编写一个驱动程序。有人可以向我指出如何执行此操作的资源吗?
【问题讨论】:
-
那么它还没有被内存映射到你的地址空间。我希望你不能从 Windows 用户代码中做到这一点——你需要从内核驱动程序中做到这一点。你有什么文档/示例代码?
-
有一个通用的 Windows 驱动程序,可以让您从用户模式程序读取/写入 IO 端口。我以前用它来读取/写入 0x378 的并行端口。我看看能不能再找到它。