📄 mcimx27.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 + -