2909|3

57

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

s3c2440 + wince休眠唤醒的问题 [复制链接]

下面是nboot(steldr——boot)里关于休眠唤醒的处理代码
WAKEUP_POWER_OFF
    ; Release SCLKn after wake-up from the POWER_OFF mode.
    ldr                r1, =MISCCR
    ldr                r0, [r1]
    bic                r0, r0, #(7<<17) ; SCLK0:0->SCLK, SCLK1:0->SCLK, SCKE:L->H.
    str                r0, [r1]

    ; Set up the memory control registers.
    ;
    add                r0, pc, #SMRDATA - (. + 8)
    ldr                r1, =BWSCON             ; BWSCON Address.
    add                r2, r0, #52             ; End address of SMRDATA.
3      
    ldr                r3, [r0], #4   
    str                r3, [r1], #4   
    cmp                r2, r0               
    bne                %B3

        mov     r0, #0x2000
4
        subs    r0, r0, #1
        bne     %B4

;------------------------------------------------------------------------------
;   Recover Process : Starting Point
;
;   1. Checksum Calculation saved Data
        ldr     r5, =SLEEPDATA_BASE_PHYSICAL    ; pointer to physical address of reserved Sleep mode info data structure
        mov     r3, r5                          ; pointer for checksum calculation
        ldr     r2, =0x0
        ldr     r0, =(SLEEPDATA_SIZE-1)             ; get size of data structure to do checksum on
50       
        ldr     r1, [r3], #4                    ; pointer to SLEEPDATA
        and     r1, r1, #0x1
        mov     r1, r1, ROR #31
        add     r2, r2, r1
        subs    r0, r0, #1                      ; dec the count
        bne     %b50                            ; loop till done   

        ldr     r0,=GSTATUS3
        ldr     r3, [r0]                        ; get the Sleep data checksum from the Power Manager Scratch pad register
        cmp     r2, r3                          ; compare to what we saved before going to sleep
        bne     BringUpWinCE                    ; bad news - do a cold boot
   
;   2. MMU Enable
        ldr     r10, [r5, #SleepState_MMUDOMAIN] ; load the MMU domain access info
        ldr     r9,  [r5, #SleepState_MMUTTB]    ; load the MMU TTB info
        ldr     r8,  [r5, #SleepState_MMUCTL]    ; load the MMU control info
        ldr     r7,  [r5, #SleepState_WakeAddr ] ; load the LR address
        nop         
        nop
        nop
        nop
        nop

; if software reset
        mov     r1, #0
        teq     r1, r7
        bne     %f60
        b              BringUpWinCE

; wakeup routine
60        mcr     p15, 0, r10, c3, c0, 0          ; setup access to domain 0
        mcr     p15, 0, r9,  c2, c0, 0          ; PT address
        mcr     p15, 0, r0,  c8, c7, 0          ; flush I+D TLBs
        mcr     p15, 0, r8,  c1, c0, 0          ; restore MMU control

;   3. Jump to Kernel Image's fw.s (Awake_address)
        mov     pc, r7                          ;  jump to new VA (back up Power management stack)
        nop

最新回复

还没有解决呢啊,帮你顶,也顶我能唤醒成功,嘿嘿  详情 回复 发表于 2010-3-23 19:32
点赞 关注

回复
举报

71

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
目前我的问题是唤醒后越来越慢,直至死机
在网上查到一个帖子,也使休眠唤醒的,他的代码没有MMU这一块,因为MMU在未检测GSTATUS2之前已经使能了,现在这部分代码关于MMU这一块的操作有问题吗?慢慢死机时什么原因造成的啊?
 
 

回复

60

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
强调一下,只有在休眠唤醒后才出现慢慢死机的情况,大概在一分钟之内挂掉,也不是很慢;正常复位启动时没有问题的;;;正常启动和休眠唤醒后内核状态有什么不同呢????既然能唤醒,唤醒流程应该没有问题了吧
 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

4
 
还没有解决呢啊,帮你顶,也顶我能唤醒成功,嘿嘿
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表