设备端口的访问

1、I/O内存方式控制设备

申请:
struct resource *request_mem_region(start,len,*name)

本函数申请一个从start开始,长度为len字节的内存区,成功返回 非NULL;否则返回NULL,所 有已经在使用的I/O内存在/proc/iomem中列出。

void *ioremap(phys_addr,size)

返回一个虚拟地址,这个虚拟地址对应一个size大小的物理地址空间
访问:

从I/O内存读:
unsigned ioread8(void *addr)
unsigned ioread16(void *addr)
unsigned ioread32(void *addr)
从I/O内存写:
unsigned iowrite8(void *addr)
unsigned iowrite16(void *addr)
unsigned iowrite32(void *addr)
释放:
void iounmap(void *addr)

本函数接收ioremap函数申请的虚拟地址作为参数

void release_mem_region(start,len)

释放申请的内存资源

2、I/O内存控制单一引脚

int s3c_gpio_cfgpin(unsigned int pin,unsigned int to)

pin代表引脚,to代表一个功能,例如下面程序:

s3c_gpio_cfgpin(S5PV210_GPJ2(0)  ,  S3C_GPIO_SFN(1) )

表示将GPJ2_0配置成特殊功能0x01,此功能是Output;

int s3c_gpio_setpull(pin , pull)

设置管脚为上拉或下拉状态

int gpio_request(gpio, *lable)

申请一个管脚gpio,并使用label去描述它,成功返回0,失败返回-1;

void gpio_free(gpio)

释放一个已经申请的引脚gpio

int gpio_direction_output(gpio, value)

在管脚gpio中输出一个电平value

int gpio_direction_input(gpio)

在管脚gpio中读取一个电平0/1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值