fengyuganyu 发表于 2011-6-22 14:50:14

MMU配置出现问题,程序跑飞,求助

硬件: 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不太懂,请大神帮忙指教下

fengyuganyu 发表于 2011-6-22 14:51:17

书上使用gcc编译的,难道编译器不一样结果也不一样?? 等待中.....

caoxuerji 发表于 2013-6-24 22:13:03

顶一个,我也是开MMU死机
页: [1]
查看完整版本: MMU配置出现问题,程序跑飞,求助