gpt4 book ai didi

Linux 内核 - 从用户空间停止正在运行的内核定时器

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:36:27 28 4
gpt4 key购买 nike

我试图在 Linux 启动时使嵌入式设备中的 LED 闪烁。基本上,LED 闪烁表明 Linux 正在启动。为了使 LED 闪烁,我正在做以下事情

  1. 在 init/main.c 中创建了一个全局定时器(LED 闪烁定时器)static struct timer_list pwr_led_timer;

  2. 在 start_kernel() 中的 init_timers() 函数完成后立即启动计时器使用了 setup_timer 和 mod_timer 函数。

  3. 当计时器触发时,在计时器处理程序中,LED 会切换。并重新启动计时器。

  4. 当内核完成整个启动过程时,我将关闭 LED 并删除计时器。 del_timer_sync(&pwr_led_timer);

问题:我想从我的应用程序的用户空间停止定时器和 LED 开关,而不是停止在内核(即第 4 点)。有没有一种标准方法可以从用户空间停止内核运行计时器?

因为 pwr_led_timer 是全局结构,是否可以使用任何 IOCTL 调用从用户空间停止定时器?我的想法是做一些 IOCTL 并访问内核。由于 pwr_led_timer 是全局的,在 IOCTL 中我可以用 pwr_led_timer 调用 del_timer_sync()。但不确定我应该向 IOCTL 打开哪个设备(?)

抱歉,我是内核/驱动程序编程的新手。我试图在网上搜索但找不到任何线索。

如果有人有任何意见,请告诉我。提前致谢。

问候,爱默生

最佳答案

您是否考虑过尝试 netlink ?这是一种用于用户到内核(或进程到进程)通信的强大方法,既简单又轻量级。

关于Linux 内核 - 从用户空间停止正在运行的内核定时器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17526639/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com