2

我正在开发一个嵌入式 Linux 系统,当一个特定的 IRQ 处理程序运行时,我需要关闭系统。我没有很多时间(几十毫秒)。我正在使用emergency_restart(),但我现在需要执行一些无法从中断上下文中完成的工作(将与关闭相关的信息写入闪存),因为闪存驱动程序不支持它。

谁能推荐一个好方法来完成这个?我很想通过向他们发送信号来正确杀死我的用户空间应用程序,以便他们可以进行闪存写入。我该怎么做呢?我想,作为替代方案,我可以有一个高优先级进程,等待我的中断生成的信号量......我有什么选择?提前致谢!

4

1 回答 1

1

这正是信号的用途。如果现有信号之一没有意义(请参阅 参考资料man 7 signal),请使用用户可定义的信号之一:

#define SIGUSR1         10      /* User-defined signal 1 (POSIX).  */
#define SIGUSR2         12      /* User-defined signal 2 (POSIX).  */
于 2012-02-17T18:20:09.407 回答