64 #ifndef FLASH_PP_MAINSS_S
65 #define FLASH_PP_MAINSS_S 16
74 #define SysCtlXtalCfgToIndex(a) ((a & 0x7c0) >> 6)
118 #define MAX_VCO_ENTRIES 2
119 #define MAX_XTAL_ENTRIES 18
127 #define PLL_M_TO_REG(mi, mf) \
128 ((uint32_t)mi | (uint32_t)(mf << SYSCTL_PLLFREQ0_MFRAC_S))
129 #define PLL_N_TO_REG(n) \
130 ((uint32_t)(n - 1) << SYSCTL_PLLFREQ1_N_S)
269 uint_fast16_t ui16F1, ui16F2;
270 uint_fast16_t ui16PInt, ui16PFract;
271 uint_fast8_t ui8Q, ui8N;
287 ui32Xtal /= (uint32_t)ui8N;
292 ui16F1 = ui16PFract / 32;
297 ui16F2 = ui16PFract - (ui16F1 * 32);
302 ui32Result = ui32Xtal * (uint32_t)ui16PInt;
307 ui32Result += (ui32Xtal * (uint32_t)ui16F1) / 32;
312 ui32Result += (ui32Xtal * (uint32_t)ui16F2) / 1024;
317 ui32Result = ui32Result / (uint32_t)ui8Q;
341 #define SYSCTL_PPBASE 0x400fe300
342 #define SYSCTL_SRBASE 0x400fe500
343 #define SYSCTL_RCGCBASE 0x400fe600
344 #define SYSCTL_SCGCBASE 0x400fe700
345 #define SYSCTL_DCGCBASE 0x400fe800
346 #define SYSCTL_PCBASE 0x400fe900
347 #define SYSCTL_PRBASE 0x400fea00
364 _SysCtlPeripheralValid(uint32_t ui32Peripheral)
573 ASSERT(_SysCtlPeripheralValid(ui32Peripheral));
579 ui32Peripheral & 0xff));
637 ASSERT(_SysCtlPeripheralValid(ui32Peripheral));
643 ui32Peripheral & 0xff));
672 ASSERT(_SysCtlPeripheralValid(ui32Peripheral));
678 ui32Peripheral & 0xff) = 1;
708 ASSERT(_SysCtlPeripheralValid(ui32Peripheral));
714 ui32Peripheral & 0xff) = 0;
764 volatile uint_fast8_t ui8Delay;
769 ASSERT(_SysCtlPeripheralValid(ui32Peripheral));
775 ui32Peripheral & 0xff) = 1;
780 for(ui8Delay = 0; ui8Delay < 16; ui8Delay++)
788 ui32Peripheral & 0xff) = 0;
846 ASSERT(_SysCtlPeripheralValid(ui32Peripheral));
852 ui32Peripheral & 0xff) = 1;
903 ASSERT(_SysCtlPeripheralValid(ui32Peripheral));
909 ui32Peripheral & 0xff) = 0;
967 ASSERT(_SysCtlPeripheralValid(ui32Peripheral));
973 ui32Peripheral & 0xff) = 1;
1032 ASSERT(_SysCtlPeripheralValid(ui32Peripheral));
1038 ui32Peripheral & 0xff) = 0;
1098 ASSERT(_SysCtlPeripheralValid(ui32Peripheral));
1104 ui32Peripheral & 0xff) = 1;
1166 ASSERT(_SysCtlPeripheralValid(ui32Peripheral));
1172 ui32Peripheral & 0xff) = 0;
1824 #if defined(ewarm) || defined(DOXYGEN)
1828 __asm(
" subs r0, #1\n"
1829 " bne.n SysCtlDelay\n"
1833 #if defined(codered) || defined(gcc) || defined(sourcerygxx)
1837 __asm(
" subs r0, #1\n"
1838 " bne SysCtlDelay\n"
1842 #if defined(rvmdk) || defined(__ARMCC_VERSION)
1856 __asm(
" .sect \".text:SysCtlDelay\"\n"
1858 " .thumbfunc SysCtlDelay\n"
1860 " .global SysCtlDelay\n"
1863 " bne.n SysCtlDelay\n"
2117 int32_t i32Timeout, i32VCOIdx, i32XtalIdx;
2118 uint32_t ui32MOSCCTL;
2119 uint32_t ui32SysDiv, ui32Osc, ui32OscSelect, ui32RSClkConfig;
2236 i32VCOIdx = (ui32Config >> 24) & 7;
2315 ui32SysDiv = (g_pui32VCOFrequencies[i32VCOIdx] + ui32SysClock - 1) /
2352 for(i32Timeout = 32768; i32Timeout > 0; i32Timeout--)
2366 ui32RSClkConfig |= ((ui32SysDiv - 1) <<
2414 if(ui32SysClock == 0)
2424 ui32SysDiv = ui32Osc / ui32SysClock;
2439 ui32SysClock = ui32Osc / (ui32SysDiv + 1);
2465 return(ui32SysClock);
2534 uint32_t ui32Delay, ui32RCC, ui32RCC2;
2613 ui32RCC2 |= (ui32Config & 0x00000008) << 3;
2677 for(ui32Delay = 32768; ui32Delay > 0; ui32Delay--)
2729 uint32_t ui32RCC, ui32RCC2, ui32PLL, ui32Clk, ui32Max;
2781 ui32Clk = 16000000 / 4;
2819 ui32Max = 0xffffffff;
2824 if(((ui32RCC2 & SYSCTL_RCC2_USERCC2) &&
2908 if(ui32RCC2 & SYSCTL_RCC2_USERCC2)
2912 !(ui32RCC2 & SYSCTL_RCC2_BYPASS2)) ||
2913 (!(ui32RCC2 & SYSCTL_RCC2_USERCC2) &&
2917 ui32Clk = ((ui32Clk * 2) / (((ui32RCC2 &
2939 if(ui32Max < ui32Clk)
3058 ui32Value = ui32Div - 1;
#define SYSCTL_DSCLKCFG_DSOSCSRC_RTC
void SysCtlDeepSleep(void)
#define SYSCTL_PERIPH_ADC0
#define SYSCTL_PERIPH_QEI0
void SysCtlSleepPowerSet(uint32_t ui32Config)
#define SYSCTL_PERIPH_GPIOJ
#define SYSCTL_PLLFREQ0_MFRAC_S
void SysCtlVoltageEventConfig(uint32_t ui32Config)
#define SYSCTL_PERIPH_COMP0
#define SYSCTL_PERIPH_GPIOG
#define SYSCTL_MEMTIM0_FBCHT_1_5
void SysCtlPeripheralDeepSleepEnable(uint32_t ui32Peripheral)
void SysCtlDeepSleepClockSet(uint32_t ui32Config)
#define SYSCTL_MEMTIM0_EBCHT_2_5
void SysCtlClockOutConfig(uint32_t ui32Config, uint32_t ui32Div)
#define SYSCTL_MEMTIM0_MB1
static const uint32_t g_pppui32XTALtoVCO[2][18][2]
void SysCtlUSBPLLDisable(void)
#define SYSCTL_CLKOUT_MOSC
#define SysCtlXtalCfgToIndex(a)
#define SYSCTL_DSLPCLKCFG_O_M
#define SYSCTL_PLLFREQ0_MFRAC_M
#define SYSCTL_RCC_XTAL_M
#define SYSCTL_RCC_XTAL_S
void SysCtlIntUnregister(void)
#define SYSCTL_PERIPH_I2C3
#define SYSCTL_PERIPH_GPIOH
#define SYSCTL_RCC2_DIV400
#define SYSCTL_PERIPH_GPIOK
void SysCtlIntEnable(uint32_t ui32Ints)
#define SYSCTL_RCC2_SYSDIV2_S
#define SYSCTL_PERIPH_HIBERNATE
#define SYSCTL_RSCLKCFG_NEWFREQ
#define INT_SYSCTL_TM4C123
#define SYSCTL_PERIPH_GPIOB
void SysCtlResetCauseClear(uint32_t ui32Causes)
#define SYSCTL_RESBEHAVCTL
#define SYSCTL_CLKOUT_DIS
#define SYSCTL_RSCLKCFG_OSYSDIV_S
#define SYSCTL_CLKOUT_SYSCLK
#define SYSCTL_PERIPH_GPIOS
#define SYSCTL_MEMTIM0_EWS_S
#define SYSCTL_PERIPH_WTIMER1
#define SYSCTL_PERIPH_I2C6
#define SYSCTL_MEMTIM0_FBCHT_2_5
#define SYSCTL_PLLFREQ0_MINT_S
#define SYSCTL_RCC_OSCSRC_INT4
#define SYSCTL_MEMTIM0_FBCE
#define SYSCTL_DSLPPWRCFG
#define SYSCTL_RCC2_OSCSRC2_32
#define SYSCTL_PERIPH_I2C0
#define SYSCTL_PERIPH_GPIOT
uint32_t SysCtlResetBehaviorGet(void)
#define SYSCTL_PERIPH_GPIOF
#define SYSCTL_PERIPH_WDOG0
void SysCtlPWMClockSet(uint32_t ui32Config)
void SysCtlUSBPLLEnable(void)
bool SysCtlPeripheralReady(uint32_t ui32Peripheral)
static uint32_t _SysCtlMemTimingGet(uint32_t ui32SysClock)
#define SYSCTL_PIOSCCAL_UTEN
#define SYSCTL_DSLPCLKCFG_D_M
#define SYSCTL_DSLP_MOSC_PD
#define SYSCTL_MOSCCTL_OSCRNG
uint32_t SysCtlIntStatus(bool bMasked)
#define SYSCTL_PERIPH_WTIMER3
uint32_t SysCtlResetCauseGet(void)
#define SYSCTL_DC1_MINSYSDIV_50
#define SYSCTL_MOSCCTL_NOXTAL
#define SYSCTL_PERIPH_WTIMER4
#define SYSCTL_DSLP_OSC_INT
uint32_t SysCtlFlashSectorSizeGet(void)
#define SYSCTL_RCC_SYSDIV_M
#define SYSCTL_PERIPH_GPIOR
#define SYSCTL_RCC2_SYSDIV2LSB
#define SYSCTL_PERIPH_TIMER2
#define SYSCTL_PERIPH_TIMER5
static const uint32_t g_pui32Xtals[]
void SysCtlDelay(uint32_t ui32Count)
uint32_t SysCtlClockGet(void)
#define SYSCTL_RSCLKCFG_PLLSRC_M
void SysCtlLDOSleepSet(uint32_t ui32Voltage)
uint32_t SysCtlVoltageEventStatus(void)
#define SYSCTL_XTAL_16MHZ
#define SYSCTL_PERIPH_EMAC0
#define SYSCTL_RCC_OSCSRC_30
#define SYSCTL_PERIPH_TIMER1
void SysCtlNMIClear(uint32_t ui32Ints)
void SysCtlMOSCConfigSet(uint32_t ui32Config)
#define NVIC_APINT_SYSRESETREQ
#define SYSCTL_DC1_MINSYSDIV_25
#define SYSCTL_PERIPH_UART5
#define SYSCTL_PLLFREQ1_N_M
#define SYSCTL_PERIPH_UDMA
#define SYSCTL_PERIPH_UART0
#define SYSCTL_RSCLKCFG_PLLSRC_MOSC
#define SYSCTL_RSCLKCFG_MEMTIMU
void SysCtlPeripheralSleepDisable(uint32_t ui32Peripheral)
#define SYSCTL_RCC_BYPASS
#define SYSCTL_PERIPH_GPIOQ
#define SYSCTL_RSCLKCFG_OSCSRC_M
void SysCtlGPIOAHBEnable(uint32_t ui32GPIOPeripheral)
#define SYSCTL_PERIPH_SSI0
#define SYSCTL_PLLFREQ1_Q_S
#define SYSCTL_RSCLKCFG_OSCSRC_RTC
#define SYSCTL_RCC_OSCSRC_M
#define SYSCTL_RCC2_OSCSRC2_M
#define FLASH_PP_MAINSS_M
#define SYSCTL_PERIPH_UART1
#define SYSCTL_PERIPH_USB0
bool SysCtlPeripheralPresent(uint32_t ui32Peripheral)
void SysCtlDeepSleepPowerSet(uint32_t ui32Config)
#define SYSCTL_CLKOUT_PIOSC
#define SYSCTL_DSLPCLKCFG_D_S
void SysCtlGPIOAHBDisable(uint32_t ui32GPIOPeripheral)
void SysCtlPeripheralPowerOn(uint32_t ui32Peripheral)
#define SYSCTL_PERIPH_I2C7
void SysCtlPeripheralPowerOff(uint32_t ui32Peripheral)
#define SYSCTL_PERIPH_GPIOP
#define SYSCTL_PERIPH_GPIOM
#define SYSCTL_MOSCCTL_PWRDN
#define SYSCTL_PERIPH_GPIOA
#define SYSCTL_PIOSCCAL_UT_M
#define SYSCTL_DC0_FLASHSZ_M
#define SYSCTL_PERIPH_UART7
#define SYSCTL_XTAL_10MHZ
#define SYSCTL_PERIPH_WTIMER5
#define SYSCTL_DIVSCLK_DIV_M
#define SYSCTL_RSCLKCFG_USEPLL
void SysCtlPeripheralClockGating(bool bEnable)
void SysCtlIntRegister(void(*pfnHandler)(void))
#define SYSCTL_PERIPH_GPION
#define SYSCTL_PERIPH_I2C2
#define SYSCTL_XTAL_25MHZ
void SysCtlIntDisable(uint32_t ui32Ints)
#define SYSCTL_DSLP_PIOSC_PD
uint32_t SysCtlLDOSleepGet(void)
#define SYSCTL_PERIPH_EEPROM0
#define SYSCTL_PERIPH_PWM0
#define SYSCTL_MEMTIM0_FWS_S
#define SYSCTL_PERIPH_GPIOC
#define SYSCTL_RSCLKCFG_PSYSDIV_M
uint32_t SysCtlPWMClockGet(void)
#define SYSCTL_DSLP_OSC_MAIN
void SysCtlVoltageEventClear(uint32_t ui32Status)
#define SYSCTL_PERIPH_SSI3
static const uint32_t g_pui32VCOFrequencies[2]
#define SYSCTL_PERIPH_LCD0
#define NVIC_APINT_VECTKEY
#define SYSCTL_PERIPH_TIMER0
#define SYSCTL_MAIN_OSC_DIS
#define SYSCTL_RCC_OSCSRC_MAIN
void SysCtlPeripheralEnable(uint32_t ui32Peripheral)
#define PLL_M_TO_REG(mi, mf)
#define SYSCTL_DSCLKCFG_PIOSCPD
void SysCtlPeripheralDeepSleepDisable(uint32_t ui32Peripheral)
uint32_t SysCtlSRAMSizeGet(void)
#define SYSCTL_PERIPH_TIMER3
uint32_t SysCtlFlashSizeGet(void)
#define SYSCTL_RSCLKCFG_PSYSDIV_S
#define SYSCTL_RCC2_BYPASS2
#define SYSCTL_RIS_MOSCPUPRIS
void SysCtlPeripheralReset(uint32_t ui32Peripheral)
#define SYSCTL_PIOSCCAL_CAL
#define SYSCTL_PERIPH_I2C9
#define SYSCTL_MEMTIM0_FBCHT_3
#define SYSCTL_RCC2_USERCC2
#define SYSCTL_PERIPH_FAN0
#define SYSCTL_DC1_MINSYSDIV_M
#define SYSCTL_RCC_PWMDIV_M
#define SYSCTL_DC1_MINSYSDIV_66
#define SYSCTL_PERIPH_GPIOE
#define SYSCTL_RCC2_PWRDN2
#define SYSCTL_DC1_MINSYSDIV_40
#define SYSCTL_PLLFREQ0_MINT_M
#define SYSCTL_RSCLKCFG_ACG
#define SYSCTL_PERIPH_WDOG1
#define SYSCTL_RCC2_USBPWRDN
#define SYSCTL_DSLPCLKCFG
#define SYSCTL_PIOSCSTAT_CRPASS
#define SYSCTL_DSLP_OSC_INT30
#define SYSCTL_PERIPH_GPIOD
#define SYSCTL_MEMTIM0_EBCHT_3
#define SYSCTL_RCC_SYSDIV_S
void SysCtlPeripheralDisable(uint32_t ui32Peripheral)
#define SYSCTL_PERIPH_WTIMER2
#define SYSCTL_PIOSCCAL_UPDATE
#define SYSCTL_DC1_MINSYSDIV_20
void IntUnregister(uint32_t ui32Interrupt)
#define SYSCTL_PERIPH_I2C5
#define SYSCTL_PERIPH_SSI1
void SysCtlIntClear(uint32_t ui32Ints)
#define SYSCTL_PERIPH_SSI2
#define SYSCTL_PERIPH_UART3
#define SYSCTL_PERIPH_CAN1
#define SYSCTL_RSCLKCFG_OSYSDIV_M
#define SYSCTL_DC1_MINSYSDIV_80
#define NVIC_SYS_CTRL_SLEEPDEEP
#define SYSCTL_PERIPH_EPI0
#define SYSCTL_DSCLKCFG_MOSCDPD
#define SYSCTL_PLLFREQ1_Q_M
#define SYSCTL_MEMTIM0_EBCHT_3_5
#define SYSCTL_PERIPH_I2C8
void __attribute__((weak))
void SysCtlPeripheralSleepEnable(uint32_t ui32Peripheral)
#define SYSCTL_PERIPH_UART2
#define SYSCTL_RSCLKCFG_PLLSRC_PIOSC
#define SYSCTL_RCC_MOSCDIS
#define SYSCTL_PLLFREQ1_N_S
#define SYSCTL_MEMTIM0_EBCE
#define SYSCTL_RCC2_SYSDIV2_M
#define SYSCTL_DSCLKCFG_DSOSCSRC_LFIOSC
#define SYSCTL_PERIPH_QEI1
#define SYSCTL_RCC_USESYSDIV
#define SYSCTL_MEMTIM0_FBCHT_0_5
uint32_t SysCtlLDODeepSleepGet(void)
void SysCtlLDODeepSleepSet(uint32_t ui32Voltage)
#define SYSCTL_RSCLKCFG_OSCSRC_LFIOSC
void SysCtlDeepSleepClockConfigSet(uint32_t ui32Div, uint32_t ui32Config)
#define SYSCTL_PERIPH_I2C4
#define SYSCTL_PERIPH_WTIMER0
#define SYSCTL_MISC_MOSCPUPMIS
void SysCtlClockSet(uint32_t ui32Config)
#define SYSCTL_PERIPH_ADC1
uint32_t SysCtlClockFreqSet(uint32_t ui32Config, uint32_t ui32SysClock)
uint32_t SysCtlNMIStatus(void)
#define SYSCTL_RCC_USEPWMDIV
#define SYSCTL_MISC_PLLLMIS
static const struct @1 g_sXTALtoMEMTIM[]
#define SYSCTL_PERIPH_UART6
void SysCtlResetBehaviorSet(uint32_t ui32Behavior)
#define SYSCTL_MEMTIM0_FBCHT_2
#define SYSCTL_RSCLKCFG_OSCSRC_MOSC
#define SYSCTL_PLLFREQ0_PLLPWR
#define SYSCTL_PERIPH_CCM0
#define SYSCTL_MEMTIM0_EBCHT_0_5
#define SYSCTL_PERIPH_PWM1
#define SYSCTL_RSCLKCFG_OSCSRC_PIOSC
#define SYSCTL_PERIPH_I2C1
#define SYSCTL_PERIPH_CAN0
#define SYSCTL_PLLSTAT_LOCK
#define SYSCTL_PERIPH_TIMER4
#define SYSCTL_PERIPH_EPHY0
#define SYSCTL_MEMTIM0_EBCHT_2
#define SYSCTL_DSLP_OSC_EXT32
void SysCtlAltClkConfig(uint32_t ui32Config)
#define SYSCTL_RCC_OSCSRC_INT
void IntDisable(uint32_t ui32Interrupt)
#define SYSCTL_PERIPH_GPIOL
void IntRegister(uint32_t ui32Interrupt, void(*pfnHandler)(void))
#define SYSCTL_PIOSCSTAT_CR_M
#define FLASH_PP_MAINSS_S
void IntEnable(uint32_t ui32Interrupt)
static uint32_t _SysCtlFrequencyGet(uint32_t ui32Xtal)
uint32_t SysCtlPIOSCCalibrate(uint32_t ui32Type)
#define SYSCTL_DSCLKCFG_DSOSCSRC_MOSC
#define SYSCTL_MEMTIM0_FBCHT_3_5
#define SYSCTL_PERIPH_UART4