当前位置: 技术问答>linux和unix
想不到一个小问题也能憋倒英雄汉(就算我是吧,呵呵!)高手欢迎!
来源: 互联网 发布时间:2015-05-28
本文导语: 搞了一天了,也没整出来。关于linux下访问硬件端口, int main(void) { ioperm(0x37,6,TRUE); printf("37h:%02xn",inb_p(0x37)); ioperm(0x37,6,FALSE); return 1; } 这个程序输出总为0,实际这是工控机看门狗的一个端口,他的值肯...
搞了一天了,也没整出来。关于linux下访问硬件端口,
int main(void)
{
ioperm(0x37,6,TRUE);
printf("37h:%02xn",inb_p(0x37));
ioperm(0x37,6,FALSE);
return 1;
}
这个程序输出总为0,实际这是工控机看门狗的一个端口,他的值肯定不会是0的,怎么回事?
int main(void)
{
ioperm(0x37,6,TRUE);
printf("37h:%02xn",inb_p(0x37));
ioperm(0x37,6,FALSE);
return 1;
}
这个程序输出总为0,实际这是工控机看门狗的一个端口,他的值肯定不会是0的,怎么回事?
|
try
int main(void)
{
ioperm(0x37,6,TRUE);
printf("37h:%02xn",inb(0x37));
ioperm(0x37,6,FALSE);
return
or
int main(void)
{
iopl(3);
printf("37h:%02xn",inb(0x37));
iopl(0);
return 1;
}
// inb_p will pause I/O
int main(void)
{
ioperm(0x37,6,TRUE);
printf("37h:%02xn",inb(0x37));
ioperm(0x37,6,FALSE);
return
or
int main(void)
{
iopl(3);
printf("37h:%02xn",inb(0x37));
iopl(0);
return 1;
}
// inb_p will pause I/O
|
1. check whether has root privileges
|
并不是任何端口直接就可以inb的,有的需要先设置寄存器的值,然后再inb.
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。