新聞中心

        EEPW首頁 > 電源與新能源 > 設計應用 > 基于WinCE5.0的嵌入式設備休眠喚醒技術研究

        基于WinCE5.0的嵌入式設備休眠喚醒技術研究

        作者: 時間:2012-05-25 來源:網絡 收藏
        3 基于RTC中斷的

        本文引用地址:http://www.104case.com/article/230445.htm

        S3C2440內部RTC模塊結構框圖如圖2所示。RTC模塊的有3種功能:產生時鐘滴答、實時計時和作為系統的觸發喚醒器[4]。RTC模塊可以在處理器的掉電模式或普通模式在設定時間(由BCD數據給出)和當前時間相同時發生報警。在普通模式下,ALM INT(報警中斷)處于激活狀態。在掉電模式下, PMWKUP (電源管理喚醒信號)與ALM INT一起處于報警狀態[5]。

        相關的寄存器有RTCCON、RTCALM和ALMSEC等,設置代碼如下:

        ldr r0,=vRTCBASE ;;;RTC alarm
        ldr r1,=0x01
        str r1,[r0,#oRTCCON]
        ldr r1,=0x41
        str r1,[r0,#oRTCALM]
        ldr r1,=0x10 ;;10s喚醒
        str r1,[r0,#oALMSEC]

        此段代碼,首先設置RTC控制的可用,然后設置RTC報警中斷中,秒中斷可用,因為本文以喚醒時間10 s為例,所以僅用到了秒級中斷,最后設定喚醒時間10 s。

        當Windows CE操作系統在基于S3C2440的智能巡檢分析診斷儀完全啟動后,按下“掛起”鍵,在“掛起”動作的實現代碼中設置串口打印語句,顯示“Start”標志,在系統被喚醒時設置串口打印語句,顯示“End”標志,通過DNW軟件,觀察串口打印信息,記錄“Start”和“End”之間的用時,即為喚醒時間,10次實驗結果可知平均用時10.04 s,與預計用時10.0 s的相對誤差為0.4%,在工程應用上,基本達到操作要求。

        研究過程后期,在確認相應設置正確的前提下,系統仍無法正常喚醒,在重新分析整個流程設計和代碼實現后,發現在S3C2440的官方BSP(板級支持包)中存在一個BUG:系統休眠時保存數據的虛擬地址設置錯誤,SLEEPDATA_BASE_VIRTUAL設置為0xAC028000,而此處和Bootloader中的SLEEPDATA_BASE_PHYSICAL 都設定為0x30028000。根據地址映射表里面的設置是:DCD 0x80000000, 0x30000000, 64; 32 MB DRAM BANK 6,因此虛擬地址是0xA0028000。將虛擬地址修改后,即可正常喚醒。

        本文通過深入分析過程,在基于S3C2440和WindowsCE5.0的平臺上分別通過外部中斷喚醒和RTC中斷喚醒兩種方法實現了。文中所述的原理和方法不僅適用于上述指定的硬件平臺,還適用于其他使用Windows CE操作系統的硬件平臺。應用表明,這兩種方法實現了不同情況下的喚醒,達到了理想的效果,該儀器工作穩定,性能良好,已進入小規模量產階段。

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

        上一頁 1 2 下一頁

        關鍵詞: 嵌入式 休眠喚醒

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 庆阳市| 娱乐| 稻城县| 梧州市| 炎陵县| 上栗县| 离岛区| 龙江县| 略阳县| 桐乡市| 汉寿县| 河源市| 康平县| 岱山县| 永嘉县| 扬州市| 吉安县| 奉化市| 太谷县| 淳安县| 昔阳县| 麦盖提县| 平湖市| 台东市| 尖扎县| 勐海县| 枝江市| 金华市| 股票| 琼海市| 锦州市| 荥经县| 五大连池市| 彭山县| 南靖县| 日土县| 开鲁县| 石首市| 靖远县| 漳浦县| 自贡市|