Linux头文件中s3c2410 GPIO的宏
时间:11-11
来源:互联网
点击:
图:
图2 set_gpio_ctrl的参数字段结构图
低16位即为前面所述的GPIO的端口号,高16位中的R字段用来屏蔽/使能IO口的上拉电阻功能。R=0,上拉电阻使能;R=1,上拉电阻失效。M字段用来设置IO口的工作模式,M=0,IO口为输入端口;M=1,IO口为输出端口;M=2,可选功能1;M=3,可选功能2。
set_gpio_ctrl宏就是通过写相应GPIO所在组的GPXCON(X为A~H)的相应位来设置IO口模式(GPACON每一个位控制一个IO口,而GPBCON~GPHCON都是两个位控制一个IO口的模式),通过写GPXUP(X为A~H)来决定是否启用上拉电阻。典型的set_gpio_ctrl调用方式如下:
set_gpio_ctrl(GPIO_MODE_OUT | GPIO_PULLUP_DIS | GPIO_G12);
代码
- #defineset_gpio_ctrl(x)
- ({GPCON(GRAB_PORT((x)))&=~(0x3<(GRAB_OFS((x))*2));
- GPCON(GRAB_PORT(x))|=(GRAB_MODE(x)<(GRAB_OFS((x))*2));
- GPUP(GRAB_PORT((x)))&=~(1
- GPUP(GRAB_PORT((x)))|=(GRAB_PULLUP((x))
- GPUP(GRAB_PORT((x)))|=(GRAB_PULLUP((x))
这条语句是将GPG12设置成输出模式,并且不使用端口的上拉电阻。
五、结束
以上主要结合《S3C2410X 32-BIT RISC MICROPROCESSOR USERS MANUAL》分析了$(LINUX_KERNEL_INCLUDE)/asm-arm/arch/s3c2410.h中所定义的对2410GPIO进行操作的几个宏,除了文中提及的几个宏,除此还有read_gpio_bit(x)、read_gpio_reg(x) 、write_gpio_reg(x, v)等,实现方法和上述类似,在此不再一一赘述!
Linux头文件s3c2410GPIO 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)