2440 UART 驱动

风过尘扬   2009-11-1 21:24 楼主
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);
就不行了
为什么啊?

回复评论 (1)

是不是有可能UART2被系统或者其他地方给占用了?
点赞  2009-11-2 14:07
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复