linux内核中s3c2440相关的regs-gpio.h中的几个定义疑惑
#defineS3C2410_GPIO_BANKA(32*0)#defineS3C2410_GPIO_BANKB(32*1)#defineS3C2410_GPIO_BAN...
#define S3C2410_GPIO_BANKA (32*0)
#define S3C2410_GPIO_BANKB (32*1)
#define S3C2410_GPIO_BANKC (32*2)
#define S3C2410_GPIO_BANKD (32*3)
#define S3C2410_GPIO_BANKE (32*4)
#define S3C2410_GPIO_BANKF (32*5)
#define S3C2410_GPIO_BANKG (32*6)
#define S3C2410_GPIO_BANKH (32*7)
32*0 ,32*1 ,32*2 ······是什么意思,为什么是32,看不明白,谢谢各位帮忙 展开
#define S3C2410_GPIO_BANKB (32*1)
#define S3C2410_GPIO_BANKC (32*2)
#define S3C2410_GPIO_BANKD (32*3)
#define S3C2410_GPIO_BANKE (32*4)
#define S3C2410_GPIO_BANKF (32*5)
#define S3C2410_GPIO_BANKG (32*6)
#define S3C2410_GPIO_BANKH (32*7)
32*0 ,32*1 ,32*2 ······是什么意思,为什么是32,看不明白,谢谢各位帮忙 展开
3个回答
展开全部
意思是定义偏移32个字节。
GPACON 地址 0X56000000, GPBCON地址0X56000010 相差应该是16个字节。(可以查数据手册)
为什么定义的是32个字节的偏移呢?
虽然定义的是32,扩大了1倍。但是在用的时候,它使用的宏定义
“S3C2410_GPIO_BASE(pin) ((((pin) & ~31) >> 1) + S3C24XX_VA_GPIO)”
把基地址又除以2,其实还是16个字节偏移。
GPACON 地址 0X56000000, GPBCON地址0X56000010 相差应该是16个字节。(可以查数据手册)
为什么定义的是32个字节的偏移呢?
虽然定义的是32,扩大了1倍。但是在用的时候,它使用的宏定义
“S3C2410_GPIO_BASE(pin) ((((pin) & ~31) >> 1) + S3C24XX_VA_GPIO)”
把基地址又除以2,其实还是16个字节偏移。
参考资料: http://www.arm9home.net/read.php?tid=4517
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2010-05-22
展开全部
一个是一个寄存器有32个bit,而*后面代表的是寄存器号,其实算出来就是寄存器的地址了吧,应该还有个基地址
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询