阅读:1901回复:0
s3c2440 wince4.2复位重启问题!!!
wince起来后在上层调用IOCTL_HAL_REBOOT,可以实现系统跳转到NBOOT而重启wince,但很有时系统会死在调用IOCTL_HAL_REBOOT,跟踪代码发现这是调用了底层函数CPUPowerReset(),这个函数的汇编代码在Fw.s中:
LEAF_ENTRY CPUPowerReset ldr r3, =SLEEPDATA_BASE_VIRTUAL ; base of Sleep mode storage =0xAC024000 mov r2, #0x38000000 ; store Virtual return address str r2, [r3], #4 ;Disable MMU ldr r2, = PhysicalStart ldr r3, = (0x8C000000 - 0x30000000) sub r2, r2, r3 mov r1, #0x0070 ; Disable MMU nop mcr p15, 0, r1, c1, c0, 0 mov pc, r2 ; Jump to PStart nop 最后发现在禁用MMU时,系统有时会死在语句mcr p15, 0, r1, c1, c0, 0中,请问为什么禁用mmu会令系统死掉?有什么办法可以实现禁用mmu而不死机?各位赐教! |
|