WINCE6.0+S3C2443自動重啓的實現

    爲了實現WINCE標準UI和我們產品的SHELL的切換,系統需要實現自動重啓的功能,這裏的自動重啓並不是按下reset鍵之後的從nboot開始執行的復位重啓,而只是跳轉到NK的開始地址處執行,和bootloader沒有關係。

src/inc/oal_ioctl_tab.h中,我們看到自動重啓的函數OALIoCtlHalReboot(),我們來看看這個函數體

這個函數是利用看門狗來實現的復位重啓方式,是從nboot開始執行的,我們來實現直接從NK的起始地址處執行,我把這個函數體改爲如下所示

主要是增加了調用OALCPUPowerReset()函數,而這個函數我在/Src/Oal/Oallib/startup.s

有了上面的支持,在應用程序或者驅動都可以通過調用KernelIoControl(IOCTL_HAL_REBOOT,NULL,0,NULL,0,NULL)函數來實現自動重啓的功能了,當調用KernelIoControl((IOCTL_HAL_REBOOT,....)函數的時候,就轉而調用了OALIoCtlHalReboot()從而可以實現自動重啓的功能。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章