armmmutable.c

来自「FreeScale imx21开发板Nand flash烧写程序」· C语言 代码 · 共 29 行

C
29
字号
#include "Common.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 */
  *(p++) = ((0x8000000) | 0xC00 | TYPE_SECTION | CACHABLE | BUFFERABLE);

  for(i=1; i<4096; i++)
  {
     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 + -
显示快捷键?