2440有三个独立的uart
我想在linux下对uart2进行编程
在设置寄存器的值时出现了问题
在 asm/arch/regs-serial.h 定义了
#define S3C24XX_VA_UART0 (S3C24XX_VA_UART)
#define S3C24XX_VA_UART1 (S3C24XX_VA_UART + 0x4000 )
#define S3C24XX_VA_UART2 (S3C24XX_VA_UART + 0x8000 )
#define S3C2410_PA_UART0 (S3C2410_PA_UART)
#define S3C2410_PA_UART1 (S3C2410_PA_UART + 0x4000 )
#define S3C2410_PA_UART2 (S3C2410_PA_UART + 0x8000 )
#define S3C2410_URXH (0x24)
#define S3C2410_UTXH (0x20)
#define S3C2410_ULCON (0x00)
#define S3C2410_UCON (0x04)
#define S3C2410_UFCON (0x08)
#define S3C2410_UMCON (0x0C)
#define S3C2410_UBRDIV (0x28)
#define S3C2410_UTRSTAT (0x10)
#define S3C2410_UERSTAT (0x14)
#define S3C2410_UFSTAT (0x18)
#define S3C2410_UMSTAT (0x1C)
我用
__raw_writel(3,S3C24XX_VA_UART0+S3C2410_ULCON);
能操作成功
但是用
__raw_writel(3,S3C24XX_VA_UART2+S3C2410_ULCON);
就不行了
为什么啊?
是不是有可能UART2被系统或者其他地方给占用了?