亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 15074 | 回復: 8
打印 上一主題 下一主題

linux下如何對看門狗(watchdog)編程!急! [復制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2004-12-22 15:28 |只看該作者 |倒序瀏覽
--------------------------------------------------------------------------------

各位大蝦:
我最近移植一個DOS的程序到LINUX上!
今天我移植到看門狗程序部分(watchdog),在LINUX下看門狗編程很簡單,就是程序先向看門狗控制器地址寫1(一般地址為0x0443),就是outportb(1,0x0443),這樣就打開了看門狗記時器!
程序運行中要不斷的向看門狗寫1,否則看門狗就認為程序死機了,就重新啟動系統(tǒng)!這就是我理解的看門狗工作原理!
我按這個想法,在LINUX上編程! 首先我查看 cat /proc/ioport ,發(fā)現(xiàn)0x443已經(jīng)有了看門鉤定義! 從而系統(tǒng)已經(jīng)包含了看門狗驅(qū)動程序了!所以我就把看門狗當作一個設(shè)備(/dev 中有一個設(shè)備名叫 /dev/watchdog)
我編了測試程序片段,打算在程序開始打開/dev/watchdog,然后寫1,然后執(zhí)行一個死循環(huán),
#incude ...
...
#include ...
int main()
{
char buf[2] ={0,1}
fd = open("/dev/watchdog".O_RDWR);
write(fd,buf+1,1)
while(1){}
}
預期的結(jié)果應(yīng)該是 在死循環(huán)中,沒有向0x0443寫1,系統(tǒng)應(yīng)該重新啟動!結(jié)果系統(tǒng)卻沒有重新啟動!

我的LINUX內(nèi)核編譯時候選擇了支持看門狗(watchdog)選項!
請大蝦幫幫我,最好能給一點實例代碼,現(xiàn)在很急! 萬分感謝

論壇徽章:
0
2 [報告]
發(fā)表于 2004-12-22 19:49 |只看該作者

linux下如何對看門狗(watchdog)編程!急!

這個,看門狗的程序我沒有在LINUX下實際搞過,但是看過你的貼子,簡單提一些建議:
在Documents的watchdog.txt中提了六種看門狗的用法。其中的一個例程如下:
Example Watchdog Driver
-----------------------

#include <stdio.h>;
#include <unistd.h>;
#include <fcntl.h>;

int main(int argc, const char *argv[])
{
        int fd=open("/dev/watchdog",O_WRONLY);
        if(fd==-1)
        {
                perror("watchdog";
                exit(1);
        }
        while(1)
        {
                write(fd,"\0",1);
                fsync(fd);
                sleep(10);
        }
}

All six interfaces provide /dev/watchdog, which when open must be written
to within a timeout or the machine will reboot. Each write delays the reboot
time another timeout. In the case of the software watchdog the ability to
reboot will depend on the state of the machines and interrupts.

上面的例程你可以先測一下。首先從理解上,無論寫什么都可以,不一定非要寫1。另外你可以調(diào)一下,看open是否成功,write實際寫的字符數(shù)是否正確,等等。然后我們可以再討論。

論壇徽章:
0
3 [報告]
發(fā)表于 2004-12-22 20:50 |只看該作者

linux下如何對看門狗(watchdog)編程!急!

非常感謝樓上提供的信息和幫助,我明天到公司實驗一下!

  不管結(jié)果怎么樣,先對你表示感謝和敬佩:)

   我的QQ是:45517999
   如果愿意的話,請把我加入好友,一起討論LINUX技術(shù);)

論壇徽章:
0
4 [報告]
發(fā)表于 2004-12-22 21:27 |只看該作者

linux下如何對看門狗(watchdog)編程!急!

沒問題,我也是初學者,很多事情都要和大家一起學習!!

論壇徽章:
0
5 [報告]
發(fā)表于 2004-12-23 09:45 |只看該作者

linux下如何對看門狗(watchdog)編程!急!

我今天試驗了一下,還是不行!
  我編了程序測試看門狗有沒有起作用!我將Document中的程序改為下面的樣子,(去掉while死循環(huán)),
#include <stdio.h>;
#include <unistd.h>;
#include <fcntl.h>;

int main(int argc, const char *argv[])
{
int fd=open("/dev/watchdog",O_WRONLY);
if(fd==-1)
{
perror("watchdog";
exit(1);
}


   write(fd,"\0",1);
   fsync(fd);
  sleep(10);

}

  這樣看門狗應(yīng)該重新啟動系統(tǒng)的,可是并沒有,程序運行完后出現(xiàn)以下提示:
  WDT closes unexpectedly! WDT will not stop

   不知道是怎么回事! 請大蝦幫我看看!!

   先謝了!!

論壇徽章:
0
6 [報告]
發(fā)表于 2004-12-24 21:15 |只看該作者

linux下如何對看門狗(watchdog)編程!急!

大狹人呢!

  能不能給點提示啊

論壇徽章:
0
7 [報告]
發(fā)表于 2004-12-24 23:48 |只看該作者

linux下如何對看門狗(watchdog)編程!急!

別急 正在編 試一試

論壇徽章:
0
8 [報告]
發(fā)表于 2004-12-27 20:01 |只看該作者

linux下如何對看門狗(watchdog)編程!急!

牛人呢!
   
    請大蝦幫幫啊!謝謝了!

論壇徽章:
0
9 [報告]
發(fā)表于 2004-12-31 13:04 |只看該作者

linux下如何對看門狗(watchdog)編程!急!

你選的是什么watchdog驅(qū)動?確信和你的硬件是匹配的嗎?
打開設(shè)備有沒有錯誤?
我覺得你要自已經(jīng)寫一個驅(qū)動,應(yīng)該很簡單。
或者你用kdb或kgdb跟蹤一下,應(yīng)該很容易解決。
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP