LED子系统

LED子系统剖析

http://blog.csdn.net/shiyi_2012/article/details/7456165

http://blog.csdn.net/tommy_wxie/article/details/7622498

 

 

LED子系统的实现原理:

 

1、首先创建一个leds类,生成/sys/class/leds目录

2、其次在leds类下建立设备文件节点

3、接着对各设备文件节点添加属性文件

4、最后使用catecho命令对属性文件进行读写,实现对LED灯的控制

 

 

sysfs中的属性文件
/driver/rtc/led-class.c会首先创建一个leds类,生成/sys/class/leds目录。
在led_classdev_register中生成了两个sysfs属性文件,它们使用的属性参数如下:

static DEVICE_ATTR(brightness , 0644, led_brightness_show, led_brightness_store);
static DEVICE_ATTR(trigger, 0644, led_trigger_show, led_trigger_store);

led_brightness_show和led_brightness_store分别负责显示和设置亮度,用户控件通过
 
/sys/class/leds/<device>/brightness查看和设置亮度就是和这两个函数交互的。
 
 led_trigger_show用于读取当前触发器的名字,led_trigger_store用于指定触发器的名字,
 
它会寻找所有已注册的触发器,找到同名的并设置为当前led的触发器。
 
/sys/class/leds/<device>/trigger用于用户空间查看和设置触发器。

 

 

触发器的添加和使用:

         1、在KERNEL_DIR/drivers/leds目录下添加相应代码实现自己的触发逻辑(参照ledtrig-heartbeat.c)

            2、在menuconfig的device-drivers-->led-support中添加配置选项并选中(参照heartbeat)

            3、这样在KERNEL_DIR/arch/arm/mach-omap2/board-am335xevm.c的static struct gpio_led gpio_leds[]中就

                 可使用此触发器配置LED设备了

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值