void __pe_initialize_hardware(void) { _bsp_watchdog_disable(); #if MQX_ENABLE_LOW_POWER /* Reset from LLWU wake up source */ if (_lpm_get_reset_source() == MQX_RESET_SOURCE_LLWU) { PMC_REGSC |= PMC_REGSC_ACKISO_MASK; } #endif /*** !!! Here you can place your own code before PE initialization using property "User code before PE initialization" on the build options tab. !!! ***/ /*** ### MK70FN1M0VMJ12 "Cpu" init code ... ***/ /*** PE initialization code after reset ***/ /* SIM_SCGC6: RTC=1 */ SIM_SCGC6 |= (uint32_t)0x20000000UL; if ((RTC_CR & RTC_CR_OSCE_MASK) == 0u) { /* Only if the OSCILLATOR is not already enabled */ /* RTC_CR: SC2P=0,SC4P=0,SC8P=0,SC16P=0 */ RTC_CR &= (uint32_t)~0x3C00UL; /* RTC_CR: OSCE=1 */ RTC_CR |= (uint32_t)0x0100UL; /* RTC_CR: CLKO=0 */ RTC_CR &= (uint32_t)~0x0200UL; } /* System clock initialization */ /* SIM_SCGC5: PORTE=1,PORTC=1,PORTA=1 */ SIM_SCGC5 |= (uint32_t)0x2A00UL; /* Enable clock gate for ports to enable pin routing */ if ( *((uint8_t*) 0x03FFU) != 0xFFU) { MCG_C3 = *((uint8_t*) 0x03FFU); MCG_C4 = (MCG_C4 & 0xE0U) | ((*((uint8_t*) 0x03FEU)) & 0x1FU); } /* SIM_CLKDIV1: OUTDIV1=0,OUTDIV2=1,OUTDIV3=2,OUTDIV4=5,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0 */ SIM_CLKDIV1 = (uint32_t)0x01250000UL; /* Update system prescalers */ /* SIM_CLKDIV4: NFCDIV=7 */ SIM_CLKDIV4 |= SIM_CLKDIV4_NFCDIV(7); /* SIM_SOPT2: PLLFLLSEL=1 */ SIM_SOPT2 = (uint32_t)((SIM_SOPT2 & (uint32_t)~0x00020000UL) | (uint32_t)0x00010000UL); /* Select PLL 0 as a clock source for various peripherals */ /* SIM_SOPT1: OSC32KSEL=1 */ SIM_SOPT1 |= (uint32_t)0x00080000UL; /* RTC oscillator drives 32 kHz clock for various peripherals */ /* SIM_SCGC1: OSC1=1 */ SIM_SCGC1 |= (uint32_t)0x20UL; /* PORTA_PCR18: ISF=0,MUX=0 */ PORTA_PCR18 &= (uint32_t)~0x01000700UL; /* PORTE_PCR24: ISF=0,MUX=0 */ PORTE_PCR24 &= (uint32_t)~0x01000700UL; /* PORTE_PCR25: ISF=0,MUX=0 */ PORTE_PCR25 &= (uint32_t)~0x01000700UL; /* Switch to FBE Mode */ /* OSC0_CR: ERCLKEN=1,??=0,EREFSTEN=0,??=0,SC2P=0,SC4P=0,SC8P=0,SC16P=0 */ OSC0_CR = (uint8_t)0x80U; /* OSC1_CR: ERCLKEN=1,??=0,EREFSTEN=0,??=0,SC2P=0,SC4P=0,SC8P=0,SC16P=0 */ OSC1_CR = (uint8_t)0x80U; /* MCG_C7: OSCSEL=0 */ MCG_C7 &= (uint8_t)~(uint8_t)0x01U; /* MCG_C10: LOCRE2=0,??=0,RANGE1=2,HGO1=1,EREFS1=1,??=0,??=0 */ MCG_C10 = (uint8_t)0x2CU; /* MCG_C2: LOCRE0=0,??=0,RANGE0=2,HGO0=0,EREFS0=0,LP=0,IRCS=1 */ MCG_C2 = (uint8_t)0x21U; /* MCG_C1: CLKS=2,FRDIV=5,IREFS=0,IRCLKEN=0,IREFSTEN=0 */ MCG_C1 = (uint8_t)0xA8U; /* MCG_C4: DMX32=0,DRST_DRS=0 */ MCG_C4 &= (uint8_t)~(uint8_t)0xE0U; /* MCG_C5: PLLREFSEL0=0,PLLCLKEN0=0,PLLSTEN0=0,??=0,??=0,PRDIV0=4 */ MCG_C5 = (uint8_t)0x04U; /* MCG_C6: LOLIE0=0,PLLS=0,CME0=0,VDIV0=8 */ MCG_C6 = (uint8_t)0x08U; /* MCG_C11: PLLREFSEL1=0,PLLCLKEN1=0,PLLSTEN1=0,PLLCS=0,??=0,PRDIV1=3 */ MCG_C11 = (uint8_t)0x03U; /* MCG_C11: PLLCLKEN1=1 */ MCG_C11 |= (uint8_t)0x40U; /* Enable the PLL */ /* MCG_C12: LOLIE1=0,??=0,CME2=0,VDIV1=8 */ MCG_C12 = (uint8_t)0x08U; while((MCG_S & MCG_S_IREFST_MASK) != 0x00U) { /* Check that the source of the FLL reference clock is the external reference clock. */ } while((MCG_S & 0x0CU) != 0x08U) { /* Wait until external reference clock is selected as MCG output */ } /* Switch to PBE Mode */ /* MCG_C6: LOLIE0=0,PLLS=1,CME0=0,VDIV0=8 */ MCG_C6 = (uint8_t)0x48U; while((MCG_S & 0x0CU) != 0x08U) { /* Wait until external reference clock is selected as MCG output */ } while((MCG_S & MCG_S_LOCK0_MASK) == 0x00U) { /* Wait until PLL locked */ } /* Switch to PEE Mode */ /* MCG_C1: CLKS=0,FRDIV=5,IREFS=0,IRCLKEN=0,IREFSTEN=0 */ MCG_C1 = (uint8_t)0x28U; while((MCG_S & 0x0CU) != 0x0CU) { /* Wait until output of the PLL is selected */ } /* MCG_C6: CME0=1 */ MCG_C6 |= (uint8_t)0x20U; /* Enable the clock monitor */ /*** End of PE initialization code after reset ***/ /*** !!! Here you can place your own code after PE initialization using property "User code after PE initialization" on the build options tab. !!! ***/ }
void _bsp_initialize_hardware(void) { _bsp_watchdog_disable(); #if MQX_ENABLE_LOW_POWER /* Reset from LLWU wake up source */ if (_lpm_get_reset_source() == MQX_RESET_SOURCE_LLWU) { PMC_REGSC |= PMC_REGSC_ACKISO_MASK; } #endif /* System clock initialization */ /* SIM_SCGC5: PORTE=1,PORTC=1,PORTA=1 */ SIM_SCGC5 |= (uint32_t)0x2A00UL; /* Enable clock gate for ports to enable pin routing */ if ( *((uint8_t*) 0x03FFU) != 0xFFU) { MCG_C3 = *((uint8_t*) 0x03FFU); MCG_C4 = (MCG_C4 & 0xE0U) | ((*((uint8_t*) 0x03FEU)) & 0x1FU); } /* SIM_CLKDIV1: OUTDIV1=0,OUTDIV2=1,OUTDIV3=1,OUTDIV4=3,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0 */ SIM_CLKDIV1 = (uint32_t)0x01130000UL; /* Update system prescalers */ /* SIM_SOPT2: PLLFLLSEL=1 */ SIM_SOPT2 |= (uint32_t)0x00010000UL; /* Select PLL as a clock source for various peripherals */ /* SIM_SOPT1: OSC32KSEL=2 */ SIM_SOPT1 = (uint32_t)((SIM_SOPT1 & (uint32_t)~0x00040000UL) | (uint32_t)0x00080000UL); /* System oscillator drives 32 kHz clock for various peripherals */ /* PORTA_PCR18: ISF=0,MUX=0 */ PORTA_PCR18 &= (uint32_t)~0x01000700UL; /* PORTA_PCR19: ISF=0,MUX=0 */ PORTA_PCR19 &= (uint32_t)~0x01000700UL; /* Switch to FBE Mode */ /* OSC_CR: ERCLKEN=1,??=0,EREFSTEN=1,??=0,SC2P=0,SC4P=0,SC8P=0,SC16P=0 */ OSC_CR = (uint8_t)0xA0U; /* MCG_C7: OSCSEL=0 */ MCG_C7 &= (uint8_t)~(uint8_t)0x01U; /* MCG_C2: LOCRE0=0,??=0,RANGE0=2,HGO0=0,EREFS0=1,LP=0,IRCS=1 */ MCG_C2 = (uint8_t)0x25U; /* MCG_C1: CLKS=2,FRDIV=3,IREFS=0,IRCLKEN=0,IREFSTEN=0 */ MCG_C1 = (uint8_t)0x98U; /* MCG_C4: DMX32=0,DRST_DRS=0 */ MCG_C4 &= (uint8_t)~(uint8_t)0xE0U; /* MCG_C5: ??=0,PLLCLKEN0=0,PLLSTEN0=0,PRDIV0=1 */ MCG_C5 = (uint8_t)0x01U; /* MCG_C6: LOLIE0=0,PLLS=0,CME0=0,VDIV0=0 */ MCG_C6 = (uint8_t)0x00U; while((MCG_S & MCG_S_OSCINIT0_MASK) == 0x00U) { /* Check that the oscillator is running */ } while((MCG_S & MCG_S_IREFST_MASK) != 0x00U) { /* Check that the source of the FLL reference clock is the external reference clock. */ } while((MCG_S & 0x0CU) != 0x08U) { /* Wait until external reference clock is selected as MCG output */ } /* Switch to PBE Mode */ /* OSC_CR: ERCLKEN=1,??=0,EREFSTEN=1,??=0,SC2P=0,SC4P=0,SC8P=0,SC16P=0 */ OSC_CR = (uint8_t)0xA0U; /* MCG_C7: OSCSEL=0 */ MCG_C7 &= (uint8_t)~(uint8_t)0x01U; /* MCG_C1: CLKS=2,FRDIV=3,IREFS=0,IRCLKEN=0,IREFSTEN=0 */ MCG_C1 = (uint8_t)0x98U; /* MCG_C2: LOCRE0=0,??=0,RANGE0=2,HGO0=0,EREFS0=1,LP=0,IRCS=1 */ MCG_C2 = (uint8_t)0x25U; /* MCG_C5: ??=0,PLLCLKEN0=0,PLLSTEN0=0,PRDIV0=1 */ MCG_C5 = (uint8_t)0x01U; /* MCG_C6: LOLIE0=0,PLLS=1,CME0=0,VDIV0=0 */ MCG_C6 = (uint8_t)0x40U; while((MCG_S & 0x0CU) != 0x08U) { /* Wait until external reference clock is selected as MCG output */ } while((MCG_S & MCG_S_LOCK0_MASK) == 0x00U) { /* Wait until locked */ } /* Switch to PEE Mode */ /* OSC_CR: ERCLKEN=1,??=0,EREFSTEN=1,??=0,SC2P=0,SC4P=0,SC8P=0,SC16P=0 */ OSC_CR = (uint8_t)0xA0U; /* MCG_C7: OSCSEL=0 */ MCG_C7 &= (uint8_t)~(uint8_t)0x01U; /* MCG_C1: CLKS=0,FRDIV=3,IREFS=0,IRCLKEN=0,IREFSTEN=0 */ MCG_C1 = (uint8_t)0x18U; /* MCG_C2: LOCRE0=0,??=0,RANGE0=2,HGO0=0,EREFS0=1,LP=0,IRCS=1 */ MCG_C2 = (uint8_t)0x25U; /* MCG_C5: ??=0,PLLCLKEN0=0,PLLSTEN0=0,PRDIV0=1 */ MCG_C5 = (uint8_t)0x01U; /* MCG_C6: LOLIE0=0,PLLS=1,CME0=0,VDIV0=0 */ MCG_C6 = (uint8_t)0x40U; while((MCG_S & 0x0CU) != 0x0CU) { /* Wait until output of the PLL is selected */ } /* MCG_C6: CME0=1 */ MCG_C6 |= (uint8_t)0x20U; /* Enable the clock monitor */ /* SIM_SCGC4: LLWU=1 */ SIM_SCGC4 |= (uint32_t)0x10000000UL; }
void __pe_initialize_hardware(void) { _bsp_watchdog_disable(); /*** !!! Here you can place your own code before PE initialization using property "User code before PE initialization" on the build options tab. !!! ***/ /*** ### MK40DX256ZVMD10 "Cpu" init code ... ***/ /*** PE initialization code after reset ***/ /* System clock initialization */ /* SIM_SCGC5: PORTA=1 */ SIM_SCGC5 |= (uint32_t)0x0200UL; /* Enable clock gate for ports to enable pin routing */ if ( *((uint8_t*) 0x03FFU) != 0xFFU) { MCG_C3 = *((uint8_t*) 0x03FFU); MCG_C4 = (MCG_C4 & 0xE0U) | ((*((uint8_t*) 0x03FEU)) & 0x1FU); } /* SIM_CLKDIV1: OUTDIV1=0,OUTDIV2=1,OUTDIV3=1,OUTDIV4=3,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0 */ SIM_CLKDIV1 = (uint32_t)0x01130000UL; /* Update system prescalers */ /* SIM_CLKDIV2: USBDIV=1,USBFRAC=0 */ SIM_CLKDIV2 = (uint32_t)((SIM_CLKDIV2 & (uint32_t)~0x0DUL) | (uint32_t)0x02UL); /* Update USB clock prescalers */ /* SIM_SOPT2: PLLFLLSEL=1 */ SIM_SOPT2 |= (uint32_t)0x00010000UL; /* Select PLL as a clock source for various peripherals */ /* SIM_SOPT1: OSC32KSEL=1 */ SIM_SOPT1 |= (uint32_t)0x00080000UL; /* RTC oscillator drives 32 kHz clock for various peripherals */ /* PORTA_PCR18: ISF=0,MUX=0 */ PORTA_PCR18 &= (uint32_t)~0x01000700UL; /* PORTA_PCR19: ISF=0,MUX=0 */ PORTA_PCR19 &= (uint32_t)~0x01000700UL; /* Switch to FBE Mode */ /* OSC_CR: ERCLKEN=0,??=0,EREFSTEN=0,??=0,SC2P=0,SC4P=0,SC8P=0,SC16P=0 */ OSC_CR = (uint8_t)0x00U; /* SIM_SOPT2: MCGCLKSEL=0 */ SIM_SOPT2 &= (uint32_t)~0x01UL; /* MCG_C2: ??=0,??=0,RANGE=1,HGO=1,EREFS=1,LP=0,IRCS=1 */ MCG_C2 = (uint8_t)0x1DU; /* MCG_C1: CLKS=2,FRDIV=2,IREFS=0,IRCLKEN=0,IREFSTEN=0 */ MCG_C1 = (uint8_t)0x90U; /* MCG_C4: DMX32=0,DRST_DRS=0 */ MCG_C4 &= (uint8_t)~(uint8_t)0xE0U; /* MCG_C5: ??=0,PLLCLKEN=0,PLLSTEN=0,PRDIV=1 */ MCG_C5 = (uint8_t)0x01U; /* MCG_C6: LOLIE=0,PLLS=0,CME=0,VDIV=0x18 */ MCG_C6 = (uint8_t)0x18U; while((MCG_S & MCG_S_OSCINIT_MASK) == 0x00U) { /* Check that the oscillator is running */ } while((MCG_S & MCG_S_IREFST_MASK) != 0x00U) { /* Check that the source of the FLL reference clock is the external reference clock. */ } while((MCG_S & 0x0CU) != 0x08U) { /* Wait until external reference clock is selected as MCG output */ } /* Switch to PBE Mode */ /* OSC_CR: ERCLKEN=0,??=0,EREFSTEN=0,??=0,SC2P=0,SC4P=0,SC8P=0,SC16P=0 */ OSC_CR = (uint8_t)0x00U; /* SIM_SOPT2: MCGCLKSEL=0 */ SIM_SOPT2 &= (uint32_t)~0x01UL; /* MCG_C1: CLKS=2,FRDIV=2,IREFS=0,IRCLKEN=0,IREFSTEN=0 */ MCG_C1 = (uint8_t)0x90U; /* MCG_C2: ??=0,??=0,RANGE=1,HGO=1,EREFS=1,LP=0,IRCS=1 */ MCG_C2 = (uint8_t)0x1DU; /* MCG_C5: ??=0,PLLCLKEN=0,PLLSTEN=0,PRDIV=1 */ MCG_C5 = (uint8_t)0x01U; /* MCG_C6: LOLIE=0,PLLS=1,CME=0,VDIV=0x18 */ MCG_C6 = (uint8_t)0x58U; while((MCG_S & 0x0CU) != 0x08U) { /* Wait until external reference clock is selected as MCG output */ } while((MCG_S & MCG_S_LOCK_MASK) == 0x00U) { /* Wait until locked */ } /* Switch to PEE Mode */ /* OSC_CR: ERCLKEN=0,??=0,EREFSTEN=0,??=0,SC2P=0,SC4P=0,SC8P=0,SC16P=0 */ OSC_CR = (uint8_t)0x00U; /* SIM_SOPT2: MCGCLKSEL=0 */ SIM_SOPT2 &= (uint32_t)~0x01UL; /* MCG_C1: CLKS=0,FRDIV=2,IREFS=0,IRCLKEN=0,IREFSTEN=0 */ MCG_C1 = (uint8_t)0x10U; /* MCG_C2: ??=0,??=0,RANGE=1,HGO=1,EREFS=1,LP=0,IRCS=1 */ MCG_C2 = (uint8_t)0x1DU; /* MCG_C5: ??=0,PLLCLKEN=0,PLLSTEN=0,PRDIV=1 */ MCG_C5 = (uint8_t)0x01U; /* MCG_C6: LOLIE=0,PLLS=1,CME=0,VDIV=0x18 */ MCG_C6 = (uint8_t)0x58U; while((MCG_S & 0x0CU) != 0x0CU) { /* Wait until output of the PLL is selected */ } /* MCG_C6: CME=1 */ MCG_C6 |= (uint8_t)0x20U; /* Enable the clock monitor */ /*** End of PE initialization code after reset ***/ /*** !!! Here you can place your own code after PE initialization using property "User code after PE initialization" on the build options tab. !!! ***/ }