您的位置首页>企业动态>

linux看门狗使用方法

导读大家好,我是极客范的本期栏目编辑小友,现在为大家讲解linux看门狗使用方法问题。Linux操作系统操作系统看门狗使用很简单,在应用层使用,

音频解说

大家好,我是极客范的本期栏目编辑小友,现在为大家讲解linux看门狗使用方法问题。

Linux操作系统操作系统看门狗使用很简单,在应用层使用,只需要ioctl设置一下溢出时间,既可以使用看门狗,定时喂狗即可

前提是核心支持看门狗

设备驱动程序

[*]看门狗定时器支持-

配置好好后,即可制造

应用层的使用,直接上代码

#包括

#包括

#包括

#包括

#包括

#包括

#包括

#包括

#包括

#包括

#包括

#包括

#包括

#包括

#包括

//看门狗

#定义看门狗_IOCTL_BASE 'W '

struct watchdog_info {

无符号int opTIons

未签名的(同Internationalorganizations)国际组织固件版本;

char IDentity[32];

};

#定义WDIOC_GETSUPPORT _IOR(看门狗_IOCTL_BASE,0,结构看门狗_信息)

#定义WDIOC_GETSTATUS _IOR(看门狗_IOCTL_BASE,1,int)

#定义WDIOC_GETBOOTSTATUS _IOR(看门狗_IOCTL_BASE,2,int)

#定义WDIOC_GETTEMP _IOR(看门狗_IOCTL_BASE,3,int)

#定义WDIOC_SETOPTIONS _IOR(看门狗_IOCTL_BASE,4,int)

#定义WDIOC_KEEPALIVE _IOR(看门狗_IOCTL_BASE,5,int)

#定义WDIOC_SETTIMEOUT _IOWR(看门狗_IOCTL_BASE,6,int)

#定义WDIOC_GETTIMEOUT _IOR(看门狗_IOCTL_BASE,7,int)

#定义WDIOC_SETPRETIMEOUT _IOWR(看门狗_IOCTL_BASE,8,int)

#定义WDIOC_GETPRETIMEOUT _IOR(看门狗_IOCTL_BASE,9,int)

#定义WDIOC_GETTIMELEFT _IOR(看门狗_IOCTL_BASE,10,int)

#定义WDIOF _开销0x 0001

#定义WDIOF_FANFAULT0x0002

#定义WDIOF_EXTERN10x0004

#定义WDIOF_EXTERN20x0008

#定义WDIOF_POWERUNDER0x0010

#定义WDIOF_CARDRESET0x0020

#定义WDIOF_POWEROVER0x0040

#定义WDIOF_SETTIMEOUT0x0080

#定义WDIOF_MAGICCLOSE0x0100

#定义WDIOF _ PRETIMEOUT0x 0200

#定义WDIOF_KEEPALIVEPING0x8000

#定义WDIOS_DISABLECARD0x0001

#定义WDIOS_ENABLECARD0x0002

#定义WDIOS _ temp恐慌0x0004

int wdt _ fd

int time _ out=5;

无效停止信号()

{

int i=0,ret=0;

i=WDIOS _ DISABLECARD

ioctl(wdt_fd,WDIOC_SETOPTIONS,I);

printf('===watchdow将被关闭===\ n ');

关闭(wdt _ FD);

退出(0);

}

int main(int argc,char *argv[])

{

国际新时间

int I;

int ret,计数=10

结构体看门狗_信息wdt _信息

信号(SIGINT,stop _ signal);

wdt_fd=open('/dev/watchdog ',O _ RDWR);

if(wdt_fd==-1)

perror('打开看门狗错误!\ n ');

//获取看门狗信息结构

ioctl(wdt_fd,WDIOC_GETSUPPORT,wdt _ info);

//printf('options=%d,id=%s\n ',wdt_info.options,wdt_info。身份);

ioctl(wdt_fd,WDIOC_SETTIMEOUT,time _ out);

而(1)

{

ioctl(wdt_fd,WDIOC_KEEPALIVE,NULL);

睡眠(atoi(argv[1]);

}

关闭(wdt _ FD);

返回0;

}

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。