如题,我在编写SPI Linux驱动的时候要实现对两个寄存器的读(状态寄存器和接收数据寄存器),在read()操作中用ioread8()实现:
for(i=0;i<4;i++)
{
*(buffer+i)=(char)ioread8((SPI_ADDR+64)+i);
}
i取到4的时候是对状态寄存器的完整的读,这样运行的时候没问题。但是我i<8(想读下一个寄存器的值)的时候运行就报错:Segmentation fault。我还试了添加
for(j=0;j<4;j++)
{
*(buffer+j+4)=(char)ioread8((SPI_ADDR+6c)+j);
}
想在buffer[0]~buffer[3]中存状态寄存器SPISR的值,buffer[4]~buffer[7]中存接收数据寄存器SPIDRR的值。这样运行也是报错:Segmentation fault。
哪位大侠能指点下,同时读取两个寄存器该如何操作。
|