ddr2初始化导致cpu 直接 halt,现在还不知道是什么原因。
void twr_ddr2_script_init(void)
{
/* Enable DDR controller clock */
SIM->SCGC3 |= SIM_SCGC3_DDR_MASK;
/* Enable DDR pads and set slew rate */
SIM->MCR |= 0xC4; // bits were left out of the manual so there isn't a macro right now
DDR->RCR |= DDR_RCR_RST_MASK;
* (volatile uint32_t *)(0x400Ae1ac) = 0x01030203;
// DDR->CR00 = 0x00000400; // DDRCLS = 4 is reserved??
* (volatile uint32_t *)(0x400Ae000) = 0x00000400;
DDR->CR02 = 0x02000031;
DDR->CR03 = 0x02020506;
DDR->CR04 = 0x06090202;
DDR->CR05 = 0x02020302;
DDR->CR06 = 0x02904002;
DDR->CR07 = 0x01000303;
DDR->CR08 = 0x05030201;
DDR->CR09 = 0x020000c8;
DDR->CR10 = 0x03003207;
DDR->CR11 = 0x01000000;
DDR->CR12 = 0x04920031;
DDR->CR13 = 0x00000005;
DDR->CR14 = 0x00C80002;
DDR->CR15 = 0x00000032; // | DDR->CR15_SREF_MASK ;
DDR->CR16 = 0x00000001;
DDR->CR20 = 0x00030300;
DDR->CR21 = 0x00040232;
DDR->CR22 = 0x00000000;
// DDR->CR23 = 0x00040302;
// DDR->CR25 = 0x0A010201;
DDR->CR26 = 0x0101FFFF;
DDR->CR27 = 0x01010101;
DDR->CR28 = 0x00000003;
DDR->CR29 = 0x00000000;
DDR->CR30 = 0x00000001;
DDR->CR34 = 0x02020101;
// DDR->CR36 = 0x01010201;
DDR->CR37 = 0x00000200;
DDR->CR38 = 0x00200000;
DDR->CR39 = 0x01010020;
DDR->CR40 = 0x00002000;
DDR->CR41 = 0x01010020;
DDR->CR42 = 0x00002000;
DDR->CR43 = 0x01010020;
DDR->CR44 = 0x00000000;
DDR->CR45 = 0x03030303;
DDR->CR46 = 0x02006401;
DDR->CR47 = 0x01020202;
DDR->CR48 = 0x01010064;
DDR->CR49 = 0x00020101;
DDR->CR50 = 0x00000064;
DDR->CR52 = 0x02000602;
DDR->CR53 = 0x03c80000;
DDR->CR54 = 0x03c803c8;
DDR->CR55 = 0x03c803c8;
DDR->CR56 = 0x020303c8;
DDR->CR57 = 0x01010002;
__asm("NOP");
DDR->CR00 |= 0x00000001;
while ((DDR->CR30 & 0x400) != 0x400);
// ((MCM_MemMapPtr)0xE0080000u)->CR |= MCM_CR_DDRSIZE(1);
MCM->CR |= MCM_CR_DDRSIZE(1);
}