|
情况是这样的:
我们公司现在在使用PowerPC的CPU,CPU上运行Linux 2.6.13, 现在我想要对GPIO操作,编写了一个程序去写GPIO输出,程序编译是通过了,运行前面的printf之类的语句执行正常,但执行到修改GPIO寄存器时,出现"Segmentation fault"
我估计是操作系统正常运行之后进入保护模式,保护模式下运行的程序无法对CPU的寄存器直接操作,应该怎么办呢?
GPIO地址情况如下:
1.在开发板提供的.h中:
#define GPIO_BASE 0xEF600700
#define GPIO0_OR (GPIO_BASE+0x0)
我用的就是GPIO0_OR
2.程序:
int main(int argc, char* argv[])
{
printf("hello,world!\n"); //正常打印
*(volatile ulong *)GPIO0_OR &= ~0x00000002; //出Segmentation fault错
return 0;
} |
|