linux - 如何执行 x86 计算机的硬件重置?

标签 linux assembly embedded x86 embedded-linux

我有一个在嵌入式 x86 微 Controller 上运行在 Linux 下的应用程序。我想确保我可以从应用程序中重置此 CPU。

假设此时内核和操作系统可能受到威胁,因此调用“rebo​​ot”或“shutdown”将不起作用。

假设我没有看门狗定时器。即使那样,有时看门狗定时器也会被守护进程调用(例如 Busybox 有一个)

是否有一些我可以编写的内联汇编会调用 x86 上的一些寄存器来重置 CPU?

最佳答案

从用户空间(即您的应用程序)保证这会发生的最简单方法是编写一个系统调用,根据问题的严重性执行 arch/x86/kernel/reboot.c 中的任何一个函数情况。

但是,如果您最终选择了这条路线,您可能需要确保其他应用程序无法进行该系统调用!

关于linux - 如何执行 x86 计算机的硬件重置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12428055/

相关文章:

c - 嵌入式 C - 函数参数太多(指针)

linux - 在 pkg-config 搜索路径中找不到包 xtables

linux - 生成包含 linux 目录中所有文件列表的文件

assembly - 如何在 ARMv7 32 位上将浮点寄存器压入(和弹出)堆栈?

assembly - 如果结构体太大而无法放入寄存器,那么就汇编语言而言,该结构体如何按值返回?

c++ - 在 c 文件中使用 C++ 类

linux - E : Package 'cassandra' has no installation candidate when installing Cassandra

c++ - 我可以将/dev/sda用作普通的顺序文件吗?

assembly - 气体 : Explanation of . cfi_def_cfa_offset

networking - 如何在主机和网络字节顺序之间转换 double?