WINCE重新啟動

2021-06-06 01:47:25 字數 3001 閱讀 6137

因為要在wince上面開發乙個系統,監測資料。長時間執行下去容易導致宕機。所以設定定時重啟。認真分析與查閱相關資料後,發現下面幾種方法:

一、使用setsystempowerstate,通過測試後發現該方法重啟的效果並不理想,有點像windows的登出而不是斷電重啟。

#ifndef power_state_reset

#define power_state_reset dword(0x00800000)

#endif

typedefbool(*setsystempowerstate)(

lpcwstrpsstate,

dwordstateflags,

dwordoptions

);

//在函式中呼叫如下:

hinstancehmodule = loadlibrary(_t("coredll.dll"));

setsystempowerstate f = (setsystempowerstate)::getprocaddress(hmodule, text("setsystempowerstate"));

f(null, power_state_reset, 0);

::freelibrary(hmodule);

二、使用看門狗,因為看門狗必須定時餵食,所以我在呼叫時不給它餵食就會造成系統重啟。我用的emd9263的板子,重啟**如下:

#define at91sam9263_enable_watchdog         2400

#define at91sam9263_disable_watchdog        2401

#define at91sam9263_clear_watchdog          2402

#define file_device_datalink            0x00000005

#define method_buffered                 0

#define file_write_access         ( 0x0002 )    // file & pipe

#define ctl_code( devicetype, function, method, access ) (                 \

((devicetype) << 16) | ((access) << 14) | ((function) << 2) | (method) \

)

#define ioctl_enable_watchdog ctl_code(file_device_datalink, at91sam9263_enable_watchdog, method_buffered, file_write_access)

#define ioctl_disable_watchdog ctl_code(file_device_datalink, at91sam9263_disable_watchdog, method_buffered, file_write_access)

#define ioctl_clear_watchdog ctl_code(file_device_datalink, at91sam9263_clear_watchdog, method_buffered, file_write_access)

//呼叫如下:

handlehfilewatchdog= createfile(_t("dog1:"),

generic_read | generic_write,

0,

null,

open_existing,

file_attribute_normal,

null);

if(hfilewatchdog != invalid_handle_value)

}

在實際運用中,我用的是第二種方法。第一種方法可以適當使用。

WinCE下重新設定IP位址無需重新啟動

include bool setipaddress cstring m strip,cstring m strmask,cstring m strgateway get list of adapter names if deviceiocontrol m hfilehandle,ioctl ndis...

停止流程重新啟動

在fix平台的使用中,有部分客戶會提出把已經停止的流程再重新啟動的需求 針對這一需求,其實使用fix平台解決非常的簡單,只需要做相關的配置即可實現 直接修改sys inst tasks表中對應流程例項資料的task status欄位的值為1 順便附註一下task status欄位配置各值的含義 ta...

VC實現程式重新啟動

重啟程式 如下 process information info startupinfo startup char szpath 128 char szcmdline bool bsucc createprocess szpath,szcmdline,null,null,false,normal p...