<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于S3C2440和Windows CE5.0的嵌入式設備休眠喚醒技術(shù)研究

基于S3C2440和Windows CE5.0的嵌入式設備休眠喚醒技術(shù)研究

作者: 時(shí)間:2010-10-22 來(lái)源:網(wǎng)絡(luò ) 收藏

2 基于外部中斷的
 正如之前提到的,在OALCPUPoweroff里,系統進(jìn)入前,正確設置外部中斷,才能夠CPU。正確設置喚醒中斷源,有3個(gè)要點(diǎn):
 (1)把對應的GPIO設置為中斷功能;
 (2)明確外部中斷觸發(fā)條件,如將某種喚醒使用的中斷源所對應的IO接到一個(gè)按鍵上,需要通過(guò)按下按鍵實(shí)現喚醒,需要明確當按下這個(gè)按鍵時(shí),IO接口上的電平會(huì )如何變化;
  (3)根據按鍵按下時(shí)IO電平的變化條件設置EXTINTn寄存器。當按下按鍵時(shí),IO口上的電平會(huì )發(fā)生從高到低的變化,那么就設置對應的EXTINTn,使得中斷觸發(fā)條件為Falling edge triggered即下降沿觸發(fā)。
  通過(guò)如下代碼實(shí)現了通過(guò)按鍵K1、K2的外部中斷喚醒方式:
  ; 6. Setting Wakeup External Interrupt(EINT0,1,2) Mode
   ldr r0, =vGPIOBASE
   ldr r1, =0x5566//按鍵K1,K2(EINT0,EINT2)
   str r1, [r0, #oGPFCON]
   ldr r1, =0x82
   str r1, [r0, #oEXTINT0]
 此段代碼,首先設置了外部中斷0和外部中斷2的中斷功能,接著(zhù)設置了中斷的觸發(fā)方式:下降沿觸發(fā)方式。
 當 CE操作系統在基于的智能巡檢分析診斷儀完全啟動(dòng)后,按下“掛起”鍵,待屏幕顯示消失后,開(kāi)始實(shí)驗。
 實(shí)驗一:按下按鍵K1,使系統立即重新啟動(dòng),重新進(jìn)入 CE操作系統;
 實(shí)驗二:按下按鍵K2,使系統立即重新啟動(dòng),重新進(jìn)入 CE操作系統;
實(shí)驗結果表明:即按即啟,沒(méi)有延遲,達到了外部中斷-按鍵喚醒系統的理想效果。
3 基于RTC中斷的喚醒
 內部RTC模塊結構框圖如圖2所示。RTC模塊的有3種功能:產(chǎn)生時(shí)鐘滴答、實(shí)時(shí)計時(shí)和作為系統的觸發(fā)喚醒器[4]。RTC模塊可以在處理器的掉電模式或普通模式在設定時(shí)間(由BCD數據給出)和當前時(shí)間相同時(shí)發(fā)生報警。在普通模式下,ALM INT(報警中斷)處于激活狀態(tài)。在掉電模式下, PMWKUP (電源管理喚醒信號)與ALM INT一起處于報警狀態(tài)[5]。

本文引用地址:http://dyxdggzs.com/article/151411.htm

相關(guān)的寄存器有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報警中斷中,秒中斷可用,因為本文以喚醒時(shí)間10 s為例,所以?xún)H用到了秒級中斷,最后設定喚醒時(shí)間10 s。
當Windows CE操作系統在基于的智能巡檢分析診斷儀完全啟動(dòng)后,按下“掛起”鍵,在“掛起”動(dòng)作的實(shí)現代碼中設置串口打印語(yǔ)句,顯示“Start”標志,在系統被喚醒時(shí)設置串口打印語(yǔ)句,顯示“End”標志,通過(guò)DNW軟件,觀(guān)察串口打印信息,記錄“Start”和“End”之間的用時(shí),即為喚醒時(shí)間,10次實(shí)驗結果可知平均用時(shí)10.04 s,與預計用時(shí)10.0 s的相對誤差為0.4%,在工程應用上,基本達到操作要求。
過(guò)程后期,在確認相應設置正確的前提下,系統仍無(wú)法正常喚醒,在重新分析整個(gè)流程設計和代碼實(shí)現后,發(fā)現在S3C2440的官方BSP(板級支持包)中存在一個(gè)BUG:系統休眠時(shí)保存數據的虛擬地址設置錯誤,SLEEPDATA_BASE_VIRTUAL設置為0xAC028000,而此處和Bootloader中的SLEEPDATA_BASE_PHYSICAL 都設定為0x30028000。根據地址映射表里面的設置是:DCD 0x80000000, 0x30000000, 64; 32 MB DRAM BANK 6,因此虛擬地址是0xA0028000。將虛擬地址修改后,即可正常喚醒。
本文通過(guò)深入分析休眠喚醒過(guò)程,在基于S3C2440和Windows的平臺上分別通過(guò)外部中斷喚醒和RTC中斷喚醒兩種方法實(shí)現了休眠喚醒。文中所述的原理和方法不僅適用于上述指定的硬件平臺,還適用于其他使用Windows CE操作系統的硬件平臺。應用表明,這兩種方法實(shí)現了不同情況下的喚醒,達到了理想的效果,該儀器工作穩定,性能良好,已進(jìn)入小規模量產(chǎn)階段。
參考文獻
[1] 張煒,韓進(jìn).低功耗系統的分析與應用[J].計算機系統應用,2009(11):109:113.
[2] KATZ D,GENTILE R. 低功耗實(shí)現的方方面面[J]. 電子產(chǎn)品世界,2009(1):63-66.
[3] Samsung Electronics,Samsung 2440A datasheet,2004.
[4] 田澤.嵌入式開(kāi)發(fā)與應用[M]. 北京:北京航空航天大學(xué)出版社,2004:22-24.
[5] 田澤,曹慶年,劉天時(shí),等. 嵌入式處理器S3C2440 Windows CE的RTC模塊驅動(dòng)設計與實(shí)現[J]. 計算機應用與軟件,2007(3):31-33.

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

上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>