GIPO读写操作


内核空间:

我用的linux-2.6.24内核
#include

获取寄存器的值
at91_get_gpio_value(AT91_PIN_PAXX);

设置寄存器的值
at91_set_gpio_value(AT91_PIN_PAXX,val);

还有其他的几个函数设置输入,设置输出等等

用户空间:
用户空间不能直接访问寄存器,需要通过驱动程序来访问.

部分驱动程序代码

在驱动里面加入ioctl调用:
QUOTE:
int at_ioctl(struct inode *inode,struct file *filp,unsigned int cmd,unsigned long arg)
{
long val;
switch(cmd){
case 0x0001:
val=at91_get_gpio_value(AT91_PIN_PXXX);
put_user(val,(long *)arg);break;
case 0x0002:
val=at91_get_gpio_value(AT91_PIN_PXXX);
put_user(val,(long *)arg);break;
:
:
}

应用程序部分代码:
QUOTE:
#include 
fd=("/dev/at",O_RDONLY);
ioctl(fd,0x0001,&i);{....}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值