armmmutable.c

来自「飞思卡尔imx27 wince5.0 bootloader源代码」· C语言 代码 · 共 30 行

C
30
字号
#include "Common.h"
#include <stdio.h>

#define TYPE_SECTION 0x00000002
#define TYPE_COARSE  0x00000001
#define TYPE_FINE    0x00000003

#define CACHABLE     0x00000008
#define BUFFERABLE   0x00000004

extern unsigned long pagetable[4096];

unsigned long const *ARM_MMUTableSetUp(void)
{
  U32 i;
  unsigned long *p = pagetable;
  /* Map SDRAM as Vector Table / ROM */
  *(p++) = ((0xd1000000) | 0xC00 | TYPE_SECTION | CACHABLE | BUFFERABLE);
    for(i=1; i<4096; i++)
  {
     //if( i==2 || (i>=0xC0 && i<0x100)) // TO1 settings
       //if( i==2 || (i>=0xC0 && i<=0x100) || i==0xd400)  // works in TO2
     if( i==2 || (i>=0xC0 && i<=0x100))
       *(p++) =  ((i<<20) | 0xC00 | TYPE_SECTION );  /* Not cachable and bufferable for internal register and SyncFlash */
     else
       *(p++) =  ((i<<20) | 0xC00 | TYPE_SECTION | CACHABLE | BUFFERABLE);
  }

  return pagetable;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?