当前位置: 首页> 教育> 培训 > 设置Llinux自带的led功能,在timer模式下设置delay_on后会把delay_off给清0

设置Llinux自带的led功能,在timer模式下设置delay_on后会把delay_off给清0

时间:2025/7/13 7:21:49来源:https://blog.csdn.net/weixin_42717961/article/details/140324125 浏览次数:0次

记录:

内核版本4.9.88.

问题复现方法是:

1. cd /sys/class/leds/cpu //cpu是内核自带led的节点名
2. echo timer > trigger
3. echo 100 > delay_on

在设置完delay_on之后,发现delay_off自己设置为0了。同理设置delay_off后,delay_on自动设置为0.

原因是ledtrig-timer.c中:

led_delay_on_store      led_delay_off_store

                        |                |

                        led_blink_set

                                |

                led_stop_software_blink

void led_stop_software_blink(struct led_classdev *led_cdev)
{del_timer_sync(&led_cdev->blink_timer);led_cdev->blink_delay_on = 0;led_cdev->blink_delay_off = 0;led_cdev->flags &= ~LED_BLINK_SW;
}

通过以上流程可以知道,在设置delay_on或者delay_off后,都会调用led_stop_software_blink,然后对delay_on/delay_off置0,这也就是为什么设置delay_on后,delay_off会自动置0.

所以这里可以把

	//led_cdev->blink_delay_on = 0;//led_cdev->blink_delay_off = 0;

给注释掉即可

关键字:设置Llinux自带的led功能,在timer模式下设置delay_on后会把delay_off给清0

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: