40#define HAL_IMPLEMENTS_COUNTERS FALSE
46#define PLATFORM_NAME "Kinetis"
53#define KINETIS_IRCLK_F 4000000
54#define KINETIS_IRCLK_S 32768
57#define KINETIS_MCG_MODE_FEI 1
58#define KINETIS_MCG_MODE_FEE 2
59#define KINETIS_MCG_MODE_FBI 3
60#define KINETIS_MCG_MODE_FBE 4
61#define KINETIS_MCG_MODE_PEE 5
62#define KINETIS_MCG_MODE_PBE 6
63#define KINETIS_MCG_MODE_BLPI 7
64#define KINETIS_MCG_MODE_BLPE 8
77#if !defined(KINETIS_NO_INIT) || defined(__DOXYGEN__)
78#define KINETIS_NO_INIT FALSE
84#if !defined(KINETIS_MCG_MODE) || defined(__DOXYGEN__)
85#define KINETIS_MCG_MODE KINETIS_MCG_MODE_PEE
91#if !defined(KINETIS_PLLCLK_FREQUENCY) || defined(__DOXYGEN__)
92#define KINETIS_PLLCLK_FREQUENCY 96000000UL
101#if !defined(KINETIS_CLKDIV1_OUTDIV1) || defined(__DOXYGEN__)
102 #if defined(KINETIS_SYSCLK_FREQUENCY) && KINETIS_SYSCLK_FREQUENCY > 0
103 #define KINETIS_CLKDIV1_OUTDIV1 (KINETIS_PLLCLK_FREQUENCY/KINETIS_SYSCLK_FREQUENCY)
105 #define KINETIS_CLKDIV1_OUTDIV1 2
115#if !defined(KINETIS_CLKDIV1_OUTDIV2) || defined(__DOXYGEN__)
116 #if defined(KINETIS_BUSCLK_FREQUENCY) && KINETIS_BUSCLK_FREQUENCY > 0
117 #define KINETIS_CLKDIV1_OUTDIV2 (KINETIS_PLLCLK_FREQUENCY/KINETIS_BUSCLK_FREQUENCY)
118 #elif defined(KINETIS_SYSCLK_FREQUENCY) && KINETIS_SYSCLK_FREQUENCY > 0
119 #define KINETIS_CLKDIV1_OUTDIV2 KINETIS_CLKDIV1_OUTDIV1
121 #define KINETIS_CLKDIV1_OUTDIV2 2
131#if !defined(KINETIS_CLKDIV1_OUTDIV4) || defined(__DOXYGEN__)
132 #if defined(KINETIS_FLASHCLK_FREQUENCY) && KINETIS_FLASHCLK_FREQUENCY > 0
133 #define KINETIS_CLKDIV1_OUTDIV4 (KINETIS_PLLCLK_FREQUENCY/KINETIS_FLASHCLK_FREQUENCY)
134 #elif defined(KINETIS_SYSCLK_FREQUENCY) && KINETIS_SYSCLK_FREQUENCY > 0
135 #define KINETIS_CLKDIV1_OUTDIV4 (KINETIS_CLKDIV1_OUTDIV1*2)
137 #define KINETIS_CLKDIV1_OUTDIV4 4
147#if !defined(KINETIS_MCG_FLL_DMX32) || defined(__DOXYGEN__)
148#define KINETIS_MCG_FLL_DMX32 1
159#if !defined(KINETIS_MCG_FLL_DRS) || defined(__DOXYGEN__)
160#define KINETIS_MCG_FLL_DRS 2
166#if !defined(KINETIS_SYSCLK_FREQUENCY) || defined(__DOXYGEN__)
167#define KINETIS_SYSCLK_FREQUENCY (KINETIS_PLLCLK_FREQUENCY / KINETIS_CLKDIV1_OUTDIV1)
173#if !defined(KINETIS_BUSCLK_FREQUENCY) || defined(__DOXYGEN__)
174#define KINETIS_BUSCLK_FREQUENCY (KINETIS_PLLCLK_FREQUENCY / KINETIS_CLKDIV1_OUTDIV2)
180#if !defined(KINETIS_FLASHCLK_FREQUENCY) || defined(__DOXYGEN__)
181#define KINETIS_FLASHCLK_FREQUENCY (KINETIS_PLLCLK_FREQUENCY / KINETIS_CLKDIV1_OUTDIV4)
187#if !defined(KINETIS_FTM_FREQUENCY) || defined(__DOXYGEN__)
188#define KINETIS_FTM_FREQUENCY KINETIS_SYSCLK_FREQUENCY
197#if !defined(KINETIS_SYSCLK_FREQUENCY)
198 #error KINETIS_SYSCLK_FREQUENCY must be defined
201#if KINETIS_SYSCLK_FREQUENCY <= 0 || KINETIS_SYSCLK_FREQUENCY > KINETIS_SYSCLK_MAX
202 #error KINETIS_SYSCLK_FREQUENCY out of range
205#if !defined(KINETIS_BUSCLK_FREQUENCY)
206 #error KINETIS_BUSCLK_FREQUENCY must be defined
209#if KINETIS_BUSCLK_FREQUENCY <= 0 || KINETIS_BUSCLK_FREQUENCY > KINETIS_BUSCLK_MAX
210 #error KINETIS_BUSCLK_FREQUENCY out of range
213#if KINETIS_BUSCLK_FREQUENCY > KINETIS_SYSCLK_FREQUENCY
214 #error KINETIS_BUSCLK_FREQUENCY must be an integer divide of\
215 KINETIS_SYSCLK_FREQUENCY
218#if !defined(KINETIS_FLASHCLK_FREQUENCY)
219 #error KINETIS_FLASHCLK_FREQUENCY must be defined
222#if KINETIS_FLASHCLK_FREQUENCY <= 0 || KINETIS_FLASHCLK_FREQUENCY > KINETIS_FLASHCLK_MAX
223 #error KINETIS_FLASHCLK_FREQUENCY out of range
226#if KINETIS_FLASHCLK_FREQUENCY > KINETIS_SYSCLK_FREQUENCY
227 #error KINETIS_FLASHCLK_FREQUENCY must be an integer divide of\
228 KINETIS_SYSCLK_FREQUENCY
231#if !(defined(KINETIS_CLKDIV1_OUTDIV1) && \
232 KINETIS_CLKDIV1_OUTDIV1 >= 1 && KINETIS_CLKDIV1_OUTDIV1 <= 16)
233 #error KINETIS_CLKDIV1_OUTDIV1 must be 1 through 16
236#if !(defined(KINETIS_CLKDIV1_OUTDIV2) && \
237 KINETIS_CLKDIV1_OUTDIV2 >= 1 && KINETIS_CLKDIV1_OUTDIV2 <= 16)
238#error KINETIS_CLKDIV1_OUTDIV2 must be 1 through 16
241#if !(defined(KINETIS_CLKDIV1_OUTDIV4) && \
242 KINETIS_CLKDIV1_OUTDIV4 >= 1 && KINETIS_CLKDIV1_OUTDIV4 <= 16)
243#error KINETIS_CLKDIV1_OUTDIV4 must be 1 through 16
246#if !(KINETIS_MCG_FLL_DMX32 == 0 || KINETIS_MCG_FLL_DMX32 == 1)
247#error Invalid KINETIS_MCG_FLL_DMX32 value, must be 0 or 1
250#if !(0 <= KINETIS_MCG_FLL_DRS && KINETIS_MCG_FLL_DRS <= 3)
251#error Invalid KINETIS_MCG_FLL_DRS value, must be 0...3
285#define hal_lld_get_counter_value() 0
296#define hal_lld_get_counter_frequency() 0
void hal_lld_init(void)
Low level HAL driver initialization.
void ke1xf_init(void)
KE1xF initialization.
uint32_t halrtcnt_t
Type of the realtime free counter value.
uint32_t halclock_t
Type representing a system clock frequency.
KE1xF capabilities registry.
This is needed for better compatibility with STM32 or other CPUs of Kinetis family.