Ještě jsem se pořád nedozvěděl, kdy je OK používat mrdujinistickou knihovničku a kdy ne
A jinak to cos sem zkopíroval jen dokazuje, že inicializovat nějakou malou mrdku přes knihovničku je skoro složitější než inicializovat monstrum jako třeba RX71M na úrovni registrů
62N:
// vypnout CLK pro SDRAMku, nechat BCLK; BCK = 12.5M * 2 = 25M, PCK = 12.5M * 4 = 50M, ICK = 12.5M * 8 = 100M
SYSTEM.SCKCR = SYSTEM_SCKCR_PSTOP0_msk | 2 << SYSTEM_SCKCR_BCK | 1 << SYSTEM_SCKCR_PCK | 0 << SYSTEM_SCKCR_ICK;[/code]
71M:
SYSTEM.PRCR = 0xA5 << SYSTEM_PRCR_PRKEY | SYSTEM_PRCR_PRC3_msk | SYSTEM_PRCR_PRC1_msk | SYSTEM_PRCR_PRC0_msk; // povolit te paranoidni veci menit registry oscilatoru
SYSTEM.MEMWAIT = SYSTEM_MEMWAIT_MEMWAIT_msk; // pridat jednu latenci pokud je ICLK > 120 MHz
SYSTEM.PLLCR = 1 << SYSTEM_PLLCR_PLIDIV | 0x27 << SYSTEM_PLLCR_STC; // 24M / 2 * 20 = 240 MHz
SYSTEM.PLLCR2 = SYSTEM_PLLCR2_PLLEN_msk; // povolit PLL
// FCLK = 240M/4; ICLK = 240M; BCLK = 240M/4; PCLKA = 240M/2; PCLKB = 240M/4; PCLKC = 240M/4; PCLKD = 240M/4;
SYSTEM.SCKCR = 2 << SYSTEM_SCKCR_FCK | SYSTEM_SCKCR_PSTOP0_msk | SYSTEM_SCKCR_PSTOP1_msk | 2 << SYSTEM_SCKCR_BCK | 1 << SYSTEM_SCKCR_PCKA | 2 << SYSTEM_SCKCR_PCKB | 2 << SYSTEM_SCKCR_PCKC | 2 << SYSTEM_SCKCR_PCKD;
SYSTEM.SCKCR2 = 4 << SYSTEM_SCKCR2_UCK; // UCLK = 240M / 5 = 48M
SYSTEM.SCKCR3 = 4 << SYSTEM_SCKCR3_CKSEL; // zdroj : PLL