保持程序终止后的硬件句柄

Posted

技术标签:

【中文标题】保持程序终止后的硬件句柄【英文标题】:Maintain a hardware handle beyond program termination 【发布时间】:2021-06-19 11:52:56 【问题描述】:

首先,我意识到在程序终止后保持变量是不可能的。情况是这样的……我在 PCI 总线上有一个 FPGA,它控制着机器上的许多机械设备。当会话句柄终止时,FPGA IO 进入随机状态。这会导致许多机械问题。

我的一个想法是将会话句柄放在工作线程中并分离工作线程。经过研究,我发现当应用程序终止时,工作程序也会终止。

我看到其他人讨论了不会终止的进程,但这对我来说似乎是个坏主意。

还有其他方法可以做到这一点吗?

【问题讨论】:

尝试在 cron 作业中运行一个进程。 您是否试图将应用程序的生命周期延长到该应用程序的生命周期之外? 不,我不是“试图将应用程序的生命周期延长到该应用程序的生命周期之外”。 FPGA 不提供在没有附加有效应用程序的情况下保持会话运行的方法。因此,如果应用程序因某种意外原因而死机,FPGA 会话将终止。我想以某种方式保持该会话句柄有效。 听起来你需要一个内核模块(驱动程序)。 这似乎应该在 FPGA 中修复。例如FPGA 中的一个看门狗,它检测到主机已断开连接,从而有序地关闭连接的硬件。 【参考方案1】:

在考虑了多种解决方案后,我最终覆盖了 FPGA 中的打开和关闭会话行为,使其在最后一个会话关闭后不重置。

【讨论】:

以上是关于保持程序终止后的硬件句柄的主要内容,如果未能解决你的问题,请参考以下文章

当应用程序未运行(终止/终止)时,如何保持核心位置和核心蓝牙运行?

程序突然终止时保持活动的套接字

如何在父进程被终止的情况下保持子进程的活力

电脑老是出现应用程序错误需要调试或终止程序是怎么回事?

Windows并发&异步编程创建终止进程

电脑经常这样蓝屏,怎么回事?求解。终止代码:SYSTEM_SERVICE_EXCEPTION