s3c2440系统自带的管脚宏和函数

本文详细解析了S3C2440处理器中GPIO管脚的宏定义,如S3C2410_GPF(4)如何转换,并介绍了GPIO的基础地址计算,包括S3C2410_GPIO_BASE宏的使用。通过实例展示了如何对GPIO引脚进行读写操作,以及不同功能设置,如输入、输出和多功能口。
摘要由CSDN通过智能技术生成


S3C2410_GPF(4)  


#define S3C2410_GPF(_nr) (S3C2410_GPIO_F_START + (_nr))  ==》变成:S3C2410_GPIO_F_START+4


S3C2410_GPIO_F_START = S3C2410_GPIO_NEXT(S3C2410_GPIO_E) ==》变成:S3C2410_GPIO_NEXT(S3C2410_GPIO_E) + 4


#define S3C2410_GPIO_NEXT(__gpio) \
((__gpio##_START) + (__gpio##_NR) + CONFIG_S3C_GPIO_SPACE + 0)


分析:从后面开始分析

#define S3C2410_GPIO_NEXT(__gpio) \
((__gpio##_START) + (__gpio##_NR) + CONFIG_S3C_GPIO_SPACE + 0)

其中##在这里表示连接作用,字符串的连接而已;根据上面的可以得到:S3C2410_GPIO_E_START + S3C2410_GPIO_E_NR + CONFIG_S3C_GPIO_SPACE + 0 +4

S3C2410_GPIO_E_START == S3C2410_GPIO_NEXT(S3C2410_GPIO_D) == S3C2410_GPIO_D_START+S3C2410_GPIO_D_NR+ CONFIG_S3C_GPIO_SPACE + 0

写到这里应该明白了;

S3C2410_GPIO_E_NR+S3C2410_GPIO_D_NR+S3C2410_GPIO_C_NR+S3C2410_GPIO_B_NR+S3C2410_GPIO_A_NR + 5*CONFIG_S3C_GPIO_SPACE+0+4

其中:#define CONFIG_S3C_GPIO_SPACE 0

看的都乱了,其实就是从A类管脚个数开始计算到当前类引脚个数。S3C2410_GPB(0) 就是从A类引脚开始计算,所以为:32;依次类推;


===============================================

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值