|
在arm上跑linux系统,现在想从arm的一IO口(此IO口是绝对空闲的)中读取数据,
假设此IO口所占的地址是0x12345,0x12346,0x12347,0x12348连续的地址.且此IO口是16位的.
我写的程序是:
(在write的入口函数中)
int error_io;
error_io=check_region(0x12345,4);
if(error_io<0)
{
return error_io;
}
request_region(0x12345,4,"PORT G");
outw(0xffff,0x12345);
...
但是运行的时候出现了错误:
Unable to handle kernel paging request at virtual address 0x12345
pgd = c3e14000
*pgd = 00000000, *pmd = 00000000
Internal error: Oops: ffffffff
CPU: 0
...
Segmentation fault
但是用cat /proc/ioports查看,得到12345-12348 : PORT G
应该是可以操作端口了,为什么还不行?
各位的任何意见我都感谢啊! |
|