|
硬件: TQ2440
开发环境:MDK4
调试工具:J_Link V8
我初始化是完全按照 《嵌入式Linux完全开发手册》上关于MMU那章内容来设置的
初始化PLL时设置了一下p15
mrc p15, 0, r1, c1, c0, 0 /* read ctrl register */
orr r1, r1, #0xc0000000 /* Asynchronous */
mcr p15, 0, r1, c1, c0, 0
先看下我的映射配置有没有错:
*(0x33ff8000+(0x30000000>>20)) = 0x30000000 |(0x03<<10)|(0<<5)|(1<<4)|(1<<3)|0x02; // *映射0x30000000--0x30000000
*(0x33ff8000+(0x02000000>>20)) = 0x30100000 |(0x03<<10)|(0<<5)|(1<<4)|(1<<3)|0x02; // *映射0x02000000--0x30100000
然后启动MMU:
mov r0, #0
mcr p15, 0, r0, c7, c7, 0
mcr p15, 0, r0, c7, c10, 4
mcr p15, 0, r0, c8, c7, 0
ldr r4, =0x33ff8000
mcr p15, 0, r4, c2, c0, 0
mvn r0, #0
mcr p15, 0, r0, c3, c0, 0
mrc p15,0,r0,c1,c0,0
bic r0, r0, #0x3000
bic r0, r0, #0x0300
bic r0, r0, #0x0087
orr r0, r0, #0x0002
orr r0, r0, #0x0004
orr r0, r0, #0x1000
orr r0, r0, #0x0001
mcr p15, 0, r0, c1, c0, 0 ;// *执行完这句后就,就提示错误:
;// Info: J-Link: ARM9 CP15 Settings changed: 0x40007117 from 0xC0000078, MMU On, ICache On, DCache On
;// ***JLink Error: Read memory error @ address 0x000000C0, word access: Memory access timeout. <------ 这里报错
MOV PC,LR
就是跑到以上这个位置就挂了。
我除了编译器和书上的不一样 ,怎么调试出来的结果出现这种问题。 对MMU不太懂,请大神帮忙指教下 |
阿莫论坛20周年了!感谢大家的支持与爱护!!
曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……
|