Linux から CPU 上のハードウェア ウォッチドッグにアクセス/書き込みしようとしています。これは私が今までやったことがないことなので、私の知識はほとんどありません。RTD ユーザー マニュアルへのリンクは、http://www.rtd.com/NEW_manuals/hardware/cpumodules/CMV34M_BDM610000077A.pdf (ウォッチドッグ タイマーの情報については 64 ページを参照) と、インターネットで見つけて編集した小さなサンプル プログラムです。BIOS で Watchdog Setup Register を有効にし、付属のプログラムを実行しました。プログラムは実行され、エラーは出力されませんが、実際には何もしていないようです。 1秒。誰かが私が間違っていることについての洞察を持っていることを望んでいました。
#include <stdio.h>
#include <unistd.h>
#include <sys/io.h>
#include <stdlib.h>
#define BASEPORT 0x985
int main()
{
/* Get access to the ports */
if (ioperm(BASEPORT, 3, 1)) {perror("ioperm"); exit(1);}
/* Set the data signals (D0-7) of the port to all high (1) */
outb(1, BASEPORT);
/* Sleep for a while (100 ms) */
usleep(100000);
/* Read from the status port (BASE+1) and display the result */
printf("status: %d\n", inb(BASEPORT + 1));
/* We don't need the ports anymore */
if (ioperm(BASEPORT, 3, 0)) {perror("ioperm"); exit(1);}
exit(0);
}