于S3C2440进入POWER OFF后的唤醒问题,有兴趣的帮忙进来看下

我在调S3C2440的SLEEP模式时发现在CPU进入POWER OFF后在唤醒时出现了问题。调试时发现在BOOT起来后,已转到相关的wake up from power off的代码,但是在执行下面语句时出现问题,整个机子没反应了: e('c 9 Y  
ldr   r10, [r5, #SleepState_MMUDOMAIN] ; load the MMU domain access info KFV]2mFN  
  ldr   r9, [r5, #SleepState_MMUTTB]   ; load the MMU TTB info tIr66'8  
  ldr   r8, [r5, #SleepState_MMUCTL]   ; load the MMU control info [U jbox  
  ldr   r7, [r5, #SleepState_WakeAddr ] ; load the LR address C3_*o>8  
  nop       5%>U.X?i  
  nop ifgaBXT55  
  nop e+6~JbMV  
  nop wM&G-~9ujk  
  nop 9/%|#b-z  
w}1)am &pD  
; if software reset JIQzP?+?  
foFn`?LF  
  teq   r1, r7 f*5"Jh@  
  bne   %f1 } F.1j!71L  
  bl     BringUpWinCE wLO/2V}/  
5a`}DTB[Co  
; wakeup routine Kaa*;T![  
1 F,zJdJ  
  mcr   p15, 0, r10, c3, c0, 0       ; setup access to domain 0 w-"&;klV  
  mcr   p15, 0, r9, c2, c0, 0       ; PT address c5;ROnTm  
  mcr   p15, 0, r0, c8, c7, 0       ; flush I+D TLBs 5Z[ D(z  
  mcr   p15, 0, r8, c1, c0, 0       ; restore MMU control (enable the mmu) H6O/U2+  
       nop GN<I|mGLJK  
       nop wj^I1;lO  
       nop +XE21hb  
       nop Mb>XM7}PU  
~30Wb9eL  
;   3. Jump to Kernel Image's fw.s (Awake_address) *eP4dGe&  
yLx.*I^6  
  mov   pc, r7                 ; jump to new VA (back up Power management stack) zmFFBf"<  
  nop 2M?lgh4"  
6bNW1]rD  
上述就是出问题的唤醒代码,经调试,确认在执行到 mcr   p15, 0, r8, c1, c0, 0 这个语句时出了问题。这个语句作用是把R8中的内容恢复到C1中,而经过几次调试,发现在恢复C1的第0位时出的问题。C1的第0位作用是使能MMU,查阅资料时我注意到了使能MMU时必须: L{f>;[FR  
1、建立好页表,相关的寄存器要完成初始化。 >@U<?wP  
2、在使能MMU时,应该清除CACHE中的地址变换条目。 lM,zTNu-z  
3、使能MMU代码的物理地址和虚拟地址应该相同,否则可能产生PC误指。 C|/^uR0  
mcr   p15, 0, r9, c2, c0, 0       ; PT address {*;]I?9Al  
  mcr   p15, 0, r0, c8, c7, 0       ; flush I+D TLBs fVUBCu  
这两条语句已满足1,2两点要求,我的疑问是如何保证使能MMU代码的物理地址和虚拟地址相同,或者使能MMU之前是否还少了哪些流程,请大家指点,或者加我QQ:17988731 讨论。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值