|
最近正在学习基于2410的开发,对于s3c2410.h头文件中,操作GPIO口的有两个函数不大明白:
1。set_gpio_ctrl(x)
2。write_gpio_bit(x, v)
他们的定义分别如下:
#define set_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 << GRAB_OFS((x))); \
GPUP(GRAB_PORT((x))) |= (GRAB_PULLUP((x)) << GRAB_OFS((x))); })
#define write_gpio_bit(x, v) \
({ GPDAT(GRAB_PORT((x))) &= ~(0x1 << GRAB_OFS((x))); \
GPDAT(GRAB_PORT((x))) |= ((v) << GRAB_OFS((x))); })
看了半天还是没大搞明白,能否给讲一下这两个函数大概实现什么功能,参数什么意思,谢谢!
|
|