debug_ram.mac

来自「最新版IAR FOR ARM(EWARM)5.11中的代码例子」· MAC 代码 · 共 84 行

MAC
84
字号
__var Check ;  /* used in remap check */


AT91RM9200_Remap( )
{
  Check = 1 + __readMemory32( 0x00000000, "Memory" ) ;
  __writeMemory32( Check, 0x00000000, "Memory" ) ;
  if( Check == __readMemory32( 0x00000000, "Memory" ) )
    {  /* remap seems to be done already */
    }
  else
    {  /* remap not done */
    __writeMemory32( 0x00000001, 0xFFFFFF00, "Memory" ) ;
    __message "remap done" ;
    }
}


AT91RM9200_SDRAM( )
{
  // set EBI cs for sdram
  __writeMemory32( 0x00000002, 0xFFFFFF60, "Memory" ) ;
  // init SDRAM
  __writeMemory32( 0x7fffffd0, 0xFFFFFF98, "Memory" ) ;
  __writeMemory32( 0x00000002, 0xFFFFFF90, "Memory" ) ;
  __writeMemory32( 0x00000000, 0x20000000, "Memory" ) ;
  __writeMemory32( 0x00000004, 0xFFFFFF90, "Memory" ) ;
  __writeMemory32( 0x00000000, 0x20000000, "Memory" ) ;
  __writeMemory32( 0x00000000, 0x20000000, "Memory" ) ;
  __writeMemory32( 0x00000000, 0x20000000, "Memory" ) ;
  __writeMemory32( 0x00000000, 0x20000000, "Memory" ) ;
  __writeMemory32( 0x00000000, 0x20000000, "Memory" ) ;
  __writeMemory32( 0x00000000, 0x20000000, "Memory" ) ;
  __writeMemory32( 0x00000000, 0x20000000, "Memory" ) ;
  __writeMemory32( 0x00000000, 0x20000000, "Memory" ) ;
  __writeMemory32( 0x00000003, 0xFFFFFF90, "Memory" ) ;
  __writeMemory32( 0x00000000, 0x20000080, "Memory" ) ;
  __writeMemory32( 0x000001F4, 0xFFFFFF94, "Memory" ) ;
  __writeMemory32( 0x00000000, 0x20000000, "Memory" ) ;
  __writeMemory32( 0x00000000, 0xFFFFFF90, "Memory" ) ;
  __writeMemory32( 0x00000000, 0x20000000, "Memory" ) ;
}


AT91RM9200_Clock( )
{
  /* enable main clock */
  if( 0x00000001 != ( __readMemory32( 0xFFFFFC30, "Memory" ) & 0x00000003 ) )
    {  /* does not run on main clock */
    /*  enable main clock */
    __writeMemory32( 0x0000FF01, 0xFFFFFC20, "Memory" ) ;
    while( !( __readMemory32( 0xFFFFFC68, "Memory" ) & 0x00000001 ) )
      {  /* wait for main clock ready */
      }
    /* select main clock */
    __writeMemory32( 0x00000001, 0xFFFFFC30, "Memory" ) ;
    __message "switched to main clock" ;
    }
}


AT91RM9200_AIC( )
{
  /* set protected mode */
  __writeMemory32( 0x00000001, 0xFFFFF138, "Memory" ) ;
  __message "AIC protected mode enabled" ;
}


AT91RM9200_Init( )
{
  AT91RM9200_Clock( ) ;
  AT91RM9200_Remap( ) ;
  AT91RM9200_AIC( ) ;
  AT91RM9200_SDRAM( ) ;
}



execUserPreload( )
{
  AT91RM9200_Init( ) ;
}

⌨️ 快捷键说明

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