我想配置3359的I2C为从模式。在UBOOT下面,如果用常用的p=0x44e0b000;然后再通过指针*(unsigned int *)p去访问这个寄存器就会产生data abort的异常中断,用readl(p)就可以正常访问寄存器了。在linux下面,我们新建的空白驱动里,如果去读I2C控制器寄存器也会产生异常。
p = ioremap(0x44e0b000,0x200);
之后,显示映射成功,并且和I2C总线驱动的映射是同一个。
可是之后执行
printk("%x",*p);
就内存访问异常了,采用
__raw_read(p);
也会异常访问异常。把地址换成SPI的也是这样,但只要不是L4 PER MEM就没问题,比如GPMC,MDIO都可以的。请问L4的外设寄存器访问是不是有什么特殊规定?
使能时钟?地址映射?