GPIO应用于Linux LED子系统和输入事件侦测

  GPIO(General-purpose input/output)即通用输入输出,根据名字就能够了解到在实际应用中可以有很多种用途,最常见的便是用来控制LED灯的亮灭,或用来侦测输入信号的高低变化。英创工控主板都给用户提供了丰富的GPIO资源,ESMARC系列的板卡拥有32位GPIO,为了方便用户能够更方便的进行开发,英创公司进一步在软件上也增加了一些实用的功能。在GPIO用作控制LED灯的时候,用户可以直接使用Linux的LED子系统来对指定的GPIO口进行设置和操作,比如LED的亮灭或者设置触发方式等。如果是将GPIO设置为输入状态侦测输入信号的高低变化,一旦电平发生变化,内核就会通知应用程序,这时使用select函数就可以接收到内核发出的消息,不用再通过while或者for函数不断的轮询,实际的功能已经在ESMARC系列的ESM6800主板上通过测试和验证了。下面就针对两个功能来介绍一下具体的使用方法。

 

  用户使用GPIO控制LED灯,可以直接调用英创公司提供的API函数,将GPIO置为输出然后置高或者置低。不过Linux系统将控制LED灯的这部分功能整合起来,设计成了一个标准的LED子系统,对LED子系统的操作在shell环境中就能完成。英创公司也将这部分功能的支持加入到了板卡中,如果熟悉使用LED子系统来控制的用户,就可以选用这种方式。通过加载一个内核模块led-emtronix.ko来启用LED子系统,加载的时候通过参数gpios来设置需要使用LED子系统操作的GPIO,gpios参数为一个32位的整数,代表32位GPIO,1表示enable而0表示disable。所以当我们选用GPIO0~GPIO3时,加载内核模块的命令如下:insmode led-emtronix.ko gpios=0x0f,加载完成后,用户

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值