Java如何像C一样写/读硬件端口?(outb、inb等)
我有一个C应用程序。此应用程序写入和读取一些I/O端口地址 我认为Java不能以本机方式访问低级I/O地址。我说得对吗Java如何像C一样写/读硬件端口?(outb、inb等),java,hardware-port,Java,Hardware Port,我有一个C应用程序。此应用程序写入和读取一些I/O端口地址 我认为Java不能以本机方式访问低级I/O地址。我说得对吗 这里是一个C++应用程序的例子: #include <malloc.h> #include <stdlib.h> #include <stdio.h> #include <iostream> #include <sys/io.h> int main(int argc, char *argv[]) { cout
这里是一个C++应用程序的例子:
#include <malloc.h>
#include <stdlib.h>
#include <stdio.h>
#include <iostream>
#include <sys/io.h>
int main(int argc, char *argv[])
{
cout << "Refresh watchdog program" << endl;
outb(0x87,0x2E); //Extended Function Mode
outb(0x30,0x2E); //Set Watch Dog Timer Activate
outb(0x01,0x2F);
int reg = inb(0x2f);
outb(reg|0x08, 0x2f);
}
#包括
#包括
#包括
#包括
#包括
int main(int argc,char*argv[])
{
cout我认为sun.misc.Unsafe可能会对您有所帮助。它有类似于void putAddress(长地址,长值)
的方法,可以满足您的需要。老实说,我没有做过这方面的工作,但您可以从
可以在上找到一个小样本程序
我认为sun.misc.Unsafe可能会对您有所帮助。它有类似于void putAddress(长地址,长值)
的方法,可以满足您的需要。老实说,我没有做过这方面的工作,但您可以从
可以在上找到一个小样本程序
写一些JNI来为您做这件事我不确定这是否完全相关,但请看链接您也可以通过sun.misc.Unsafe
来完成这件事,但我没有给出建议。我认为人们谈论不安全是正确的,尽管它被称为“不安全”出于某种原因,设计上没有记录。你想实现什么?通常有一种更好的方法来实现这一点。这不是内存访问。这是I/O端口访问,I/O端口与内存不同。即使使用sun.misc.Unsafe,你也无法访问它们,我不知道你可以在外部访问它们您需要使用JNI或找到一个预先存在的库(使用JNI)。(编辑:这取决于体系结构。x86处理器有一个单独的I/O端口概念,但这可能不是一个)写一些JNI为你做这件事我不确定这是否完全相关,但请看链接你也可以通过sun.misc.Unsafe
完成这件事,但我没有建议。我认为人们谈论不安全是正确的,尽管它被称为“不安全”出于某种原因,设计上没有记录。你想实现什么?通常有一种更好的方法来实现这一点。这不是内存访问。这是I/O端口访问,I/O端口与内存不同。即使使用sun.misc.Unsafe,你也无法访问它们,我不知道你可以在外部访问它们您需要使用JNI或找到一个预先存在的库(使用JNI)。(编辑:这取决于体系结构。x86处理器有一个单独的I/O端口概念,但这可能不是一个)这是一种完全不同的I/O类型。不安全的
不能进行内存访问。这是一种完全不同的I/O类型。不安全的
不能进行内存访问。