我在编写linux2440的AD驱动时,想对S3C2410_ADCCON寄存器进行读写,利用
readl(S3C2410_ADCCON)函数时,系统报错:
unable to handle kernel paging request at virtual address 0x00000000 ,
如果我自己定义#define S3C2410_ADCCON (0x5800000),则报错:
unable to handle kernel paging request at virtual address 0x5800000
驱动包含头文件 <asm-arm/arch-s3c2410/regs-adc.h> ,在regs-adc.h中有定义:
#define S3C2410_ADCREG(x) (x)
#define S3C2410_ADCCON S3C2410_ADCREG(0x00)
后来我用ioremap重新映射了S3C2410_ADCCON,在调用 readl 函数时没有报错了,但是读出来的数据是错的,我想请教各位高手,是否遇到过这种问题?该怎么解决?