⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mcimx27.mac

📁 最新版IAR FOR ARM(EWARM)5.11中的代码例子
💻 MAC
字号:
execUserPreload()
{
  __hwReset(0);
  
  // AHB-Lite IP Interface
  __writeMemory32(0x20040304, 0x10000000, "Memory");
  __writeMemory32(0x00000000, 0x10020000, "Memory");
  __writeMemory32(0xDFFBFCFB, 0x10000004, "Memory");
  __writeMemory32(0xFFFFFFFF, 0x10020004, "Memory");
  
  // Peripheral clk gating init
  __writeMemory32(0x00000000, 0x10027020, "Memory");
  __writeMemory32(0x00580780, 0x10027024, "Memory");
  __writeMemory32(0x20083403, 0x10027018, "Memory");
  __writeMemory32(0x03030303, 0x1002701C, "Memory");
  
  // CLKO Select (For testing only)
  // CCSR (Set CLKO_SEL = CLK32)
  //-Bit 4-0 CLKO_SEL 0:CLK32, 2:26MCLK 5:MPLL, 6:SPLL, 7:FCLK, 8:HCLK, A:PERCLK1, 11:MSHC_CLK
  __writeMemory32(0x00000300, 0x10027028, "Memory");
  
  // Disable CLKO & Set divider = 8
  __writeMemory32(0x01c8f403, 0x10027018, "Memory");

  // Configure WEIM WCR REGISTER
  // Bit 12 (AUS4) : 1/0 = Address unshifted / Address shifted with port size
  // This bit affected the address access of CPLD
  __writeMemory32(0x00000000, 0xd8002060, "Memory");
  // Configure CPLD on CS4 
  __writeMemory32(0x0000DCF6, 0xd8002040, "Memory");
  __writeMemory32(0x444A4541, 0xd8002044, "Memory");
  __writeMemory32(0x44443302, 0xd8002048, "Memory");
  // Configure PSRAM on CS5
  __writeMemory32(0x0000dcf6, 0xd8002050, "Memory");
  __writeMemory32(0x444a4541, 0xd8002054, "Memory");
  __writeMemory32(0x44443302, 0xd8002058, "Memory");
  // Configure 16 bit NorFlash on CS0
  __writeMemory32(0x0000CC03, 0xd8002000, "Memory");
  __writeMemory32(0xa0330D01, 0xd8002004, "Memory");
  __writeMemory32(0x00220800, 0xd8002008, "Memory");  
  // DDR RAM initialization
  // DDR 4x16Mx16 x 2
  // Row Address = 14
  // Col Address = 10
  // ESDMISC: enable DDR mode
  __writeMemory32(0x00000004, 0xD8001010, "Memory");
  // ESDCFG0: timing config
  __writeMemory32(0x006AC73A, 0xD8001004, "Memory");
  // ESDCTL0: Precharge Mode
  __writeMemory32(0x92100000, 0xD8001000, "Memory");
  // issue Precharge All command
  __writeMemory32(0x00000000, 0xA0000400, "Memory");
  // ESDCTL0: AutoRefresh Mode
  __writeMemory32(0xA2100000, 0xD8001000, "Memory");
  // issue Autorefresh command
  __writeMemory32(0x00000000, 0xA0000000, "Memory");
  __writeMemory32(0x00000000, 0xA0000000, "Memory");
  // ESDCTL0: Load Mode register Mode
  __writeMemory32(0xB2100000, 0xD8001000, "Memory");
  // issue Load Mode Register command
  __writeMemory8(0x00, 0xA0000033, "Memory");
  __writeMemory8(0x00, 0xA1000000, "Memory");
  // ESDCTL0: Normal Mode
  // Row Address  = 13
  // Col Address  = 10
  // Data width   = 32-bit
  // Refresh Rate = 8192/64ms 
  // Burst Length = 8
  // /- 2 : 32 bit mode
  // /- 1 : 16 bit - D[15:00]  
  // /- 0 : 16 bit - D[31:16]
  __writeMemory32(0x82226080, 0xD8001000, "Memory");
  // issue normal access
  __writeMemory32(0x00000000, 0xA0000000, "Memory");
  // ESDMISC: Reset Delay Line Measurement
  __writeMemory32(0x0000000C, 0xD8001010, "Memory");
  
}

⌨️ 快捷键说明

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