void SystemInit(void) { set_pwr_regs(); // enable instruction cache ICC_Enable(); low_level_init(); // Clear IO Active MXC_PWRMAN->pwr_rst_ctrl = (MXC_F_PWRMAN_PWR_RST_CTRL_FLASH_ACTIVE | MXC_F_PWRMAN_PWR_RST_CTRL_SRAM_ACTIVE); // Set WUD Clear MXC_PWRMAN->pwr_rst_ctrl = (MXC_F_PWRMAN_PWR_RST_CTRL_FLASH_ACTIVE | MXC_F_PWRMAN_PWR_RST_CTRL_SRAM_ACTIVE | MXC_F_PWRMAN_PWR_RST_CTRL_WUD_CLEAR); // Set IO Active MXC_PWRMAN->pwr_rst_ctrl = (MXC_F_PWRMAN_PWR_RST_CTRL_FLASH_ACTIVE | MXC_F_PWRMAN_PWR_RST_CTRL_SRAM_ACTIVE | MXC_F_PWRMAN_PWR_RST_CTRL_IO_ACTIVE | MXC_F_PWRMAN_PWR_RST_CTRL_PULLUPS_ENABLED); MXC_PWRSEQ->reg0 |= MXC_F_PWRSEQ_REG0_PWR_CHZYEN_RUN; // set systick to the RTC input 32.768kHz clock, not system clock; this is needed to keep JTAG alive during sleep MXC_CLKMAN->clk_ctrl |= MXC_F_CLKMAN_CLK_CTRL_RTOS_MODE; SystemCoreClockUpdate(); }
void SystemInit(void) { set_trim_regs(); /* <- not needed for production parts, but harmless in production parts */ set_pwr_regs(); SystemCoreClockUpdate(); MXC_PWRMAN->pwr_rst_ctrl_f = (mxc_pwrman_pwr_rst_ctrl_t) { .flash_active = 1, .sram_active = 1, .io_active = 1, .pullups_enabled = 1, }; }