问题标签 [watchdog]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
846 浏览

assembly - 软件看门狗定时器复位 MPC875 CPU 太快

我在 MPC875 cpu 上使用软件看门狗定时器时遇到问题:

定时器触发复位信号非常快:在打开定时器和接收复位信号之间,我得到的时间不到半秒,尽管我在启用预分频的情况下将倒计时值 (SWTC) 设置为最大值。

这是我的做法(JTAG 脚本):

SR SWSR启用预分频(SYPCR 中的 SWP 位)后,它会在最后一次计数器复位(最新命令)后大约半秒内断言 HRESET 信号。如果我禁用预分频器,HRESET 信号甚至在第一次修改 SWSR 寄存器之前就断言(非常短的时间)。因此,Timer 似乎以某种方式响应了设置更改,但它的计时有问题。

系统时钟和锁相环应该配置正确,因为我们在已经建立和运行的应用程序(在 VxWorks 之上)上获得了相同的配置,但看门狗定时器关闭。

我还尝试清除 SYPCR 寄存器中的 SWF 位,以防止在 JTAG 停止 cpu 时计时器计数(通过断言 FRZ 信号):然后它仅在我退出中断/步进模式之前工作,当我运行应用程序时,重置发生在很短的时间。

根据参考手册,定时器的工作方式如下:

MPC885软件看门狗定时器图

有一个递减计数器,当它达到零时,电路断言 HRESET 信号或引发系统复位中断。计数器有两个字节长,可选择预分频因子 2048。它以系统时钟除以 2048 的速率递减。因此,启用预分频器和最大计数器值的预期超时1 / (80MHz / 2048) * (65535 * 2048)约为 3435 秒。在禁用预分频器的情况下,它应该是大约 1.7 秒。实际值要小得多:预分频计数器约为 0.5 秒,而预分频器关闭时则小得多(甚至无法测量)。

根据图表,SWT 仅依赖于 Core Clock 和 SYPCR 寄存器,这里是寄存器描述:

MPC885 系统保护控制寄存器 - 图 MPC885 系统保护控制寄存器 - 字段说明

我将值设置为 0xFFFFFF87 (实际上尝试了不同的选项),这意味着:

  • SWTC:0xFFFF(定时器计数,最大值在将魔术序列写入 SWSR 寄存器时加载到内部递减计数器(见图))。
  • BMT:0XFF(总线监控定时器计数,最大值)
  • BME:1(总线监视器已启用,并且没有必要关闭该位,因为无论配置的值如何,它始终使用 JTAG 启用)。
  • SWF:0(即使在 JTAG 断言 FRZ 信号时,定时器也会计数)。
  • SWE:1(看门狗已启用)。
  • SWRI:1(配置为断言 HRESET,切换到 NMI 没有帮助)。
  • SWP:1(SWTC 预标定系数为 2048)。

有什么建议么?

0 投票
1 回答
880 浏览

python-2.7 - 在 pyqt 中运行 watchdog 文件系统 watch

我有一个 pyqt 小部件,它允许用户进行一些设置,然后将它们保存到 sqlite 数据库,此设置会影响看门狗,它使用以下代码检查文件系统的更改

以上内容不能放在 qwidget 应用程序代码中,因为它会阻止我尝试过的一些 pyqt 代码被执行:

我如何将看门狗与 pyqt 集成以观察文件系统的变化。

0 投票
2 回答
356 浏览

mysql - Django 数据库看门狗在 Django 外部保存信号

我有以下问题:我正在使用 Django 框架。系统中的一部分(非 django)写入数据库,在 django 使用的同一数据库中。我想在保存对象时发出信号。它是一个 django 模型对象,但不是通过 django 保存的,而是直接在 mysql 数据库中。

当 django 没有保存数据库时,django 有没有办法在他的数据库中查看保存操作?

最简洁的方法是:创建一个 Api,并让保存操作通过这个 api 运行。保存信号可以是 django 默认的。(但这取决于外部的一些工作......所以不是首选的路线......对于未来的发展来说肯定是)。

另一种选择是实现 celery 并创建一个任务,该任务经常查看其中一个保存的对象是否没有后续行动.....(我想也放弃一些令人费解的问题来启动并运行它)

但可能有一个更简单的......对我来说未知?我看到了用于文件系统的 django 看门狗解决方案......而不是数据库(可能是因为 django 有这个内置......当通过 django 正确完成时)

使其复杂化:我使用 sqlite 在本地进行测试和开发....但是我可以将保存信号放入我的测试中,而无需在本地工作....只要它在 mysql 中工作,我很高兴。

0 投票
1 回答
492 浏览

linux - Linux中的OpenCl看门狗

之前我在 Windows 系统上开发 OpenCl 内核,现在我使用 Linux 系统。在 Windows 上,有一个称为 watchdog 的简洁功能,如果 OpenCl 计算持续时间超过 5 秒(默认情况下),它会自动停止,如果代码中的某些错误导致非常长时间或无限运行,它非常有用。有没有办法在 Linux 中实现这样的目标?

我有一张 AMD Mobility 显卡和最新的 AMD 驱动程序。如果没有看门狗,有没有办法手动终止 OpenCl 内核?

0 投票
0 回答
2261 浏览

android - Android看门狗向system_server发送了SIGKILL,但是为什么日志说“致命信号6”?

在日志中,看门狗通过发送杀死了system_server SIGKILL,但是日志是怎么写“ Fatal signal 6SIGABRT)”的呢?我知道一个进程在接收后终止SIGKILL,为什么它会收到SIGABRT呢?谁能给我解释一下?非常感谢。

以下是一些日志:

0 投票
1 回答
148 浏览

multithreading - 未处理的异常停止winform应用程序中的所有线程?

我有一个多线程 winform 应用程序,在一个线程中我想通过套接字实现心跳,这个线程将心跳发送到看门狗应用程序。如果 winform 应用程序遇到任何未处理的异常,操作系统会弹出一个对话框。

我的问题是心跳线也会停止吗?这样我的看门狗应用程序就会检测到心跳停止了吗?这是实施看门狗的正确方法吗?

0 投票
3 回答
2581 浏览

c++ - vc++应用程序中的看门狗

我编写了一个简单的 vc++ 后台应用程序。我正在尝试的就像一个看门狗服务,它可以监控应用程序是否正在运行。如果应用程序崩溃,那么服务应该启动应用程序

要通过 Windows 安装程序创建设置,我只使用 app.exe 和 app.dll。是否可以在 exe 本身中创建这个看门狗服务?

不幸的是,我不知道如何编写这样的程序,请问有人有一些示例代码可以演示这种技术吗?

如果是这样,那么如何将默认 exe 和 watchdog exe 作为单个应用程序进行安装?

0 投票
1 回答
523 浏览

python - i 在 python 中显示错误的示例看门狗代码

我复制了一个示例代码

请帮助我,我是 python 广告看门狗的新手

对于以下问题,我还需要更多答案:以什么形式显示以下代码的输出以及在哪里?如何更改代码中要监控的目录?

并尝试通过将其保存在文件 test.py 中使用以下内容来运行它

python C:\文件夹\test.py

它返回了以下错误

0 投票
1 回答
1270 浏览

java - Java - 如果进程挂起,我应该如何检测/杀死进程(以前使用的看门狗/超时观察器)

我正在更新一些旧代码,但不确定复制下面的 Watchdog/TimeoutObserver 功能的最佳方式。但是,这是一种旧的方法,我正在尝试将其更新为更符合 jre7。任何建议或帮助将不胜感激。

0 投票
3 回答
1106 浏览

vb6 - 在 VB6 中创建在程序终止时自动终止的子进程

我想创建一个运行两个子进程的程序。现在,我希望当我的应用程序被任务管理器终止或崩溃时,它的两个子进程应该自动终止。我怎样才能做到这一点?