WINCE6.0+S3C2443自动重启的实现
??? 為了實現(xiàn)WINCE標準UI和我們產(chǎn)品的SHELL的切換,系統(tǒng)需要實現(xiàn)自動重啟的功能,這里的自動重啟并不是按下reset鍵之后的從nboot開始執(zhí)行的復位重啟,而只是跳轉(zhuǎn)到NK的開始地址處執(zhí)行,和bootloader沒有關(guān)系。
在src/inc/oal_ioctl_tab.h中,我們看到自動重啟的函數(shù)OALIoCtlHalReboot(),我們來看看這個函數(shù)體
這個函數(shù)是利用看門狗來實現(xiàn)的復位重啟方式,是從nboot開始執(zhí)行的,我們來實現(xiàn)直接從NK的起始地址處執(zhí)行,我把這個函數(shù)體改為如下所示
主要是增加了調(diào)用OALCPUPowerReset()函數(shù),而這個函數(shù)我在/Src/Oal/Oallib/startup.s
有了上面的支持,在應用程序或者驅(qū)動都可以通過調(diào)用KernelIoControl(IOCTL_HAL_REBOOT,NULL,0,NULL,0,NULL)函數(shù)來實現(xiàn)自動重啟的功能了,當調(diào)用KernelIoControl((IOCTL_HAL_REBOOT,....)函數(shù)的時候,就轉(zhuǎn)而調(diào)用了OALIoCtlHalReboot()從而可以實現(xiàn)自動重啟的功能。
《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的WINCE6.0+S3C2443自动重启的实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WINCE5.0和WINCE6.0的内存
- 下一篇: WINCE下如何虚拟多个串口