1 /************************************************************************/
\r
2 /* (C) Fujitsu Semiconductor Europe GmbH (FSEU) */
\r
4 /* The following software deliverable is intended for and must only be */
\r
5 /* used for reference and in an evaluation laboratory environment. */
\r
6 /* It is provided on an as-is basis without charge and is subject to */
\r
8 /* It is the user's obligation to fully test the software in its */
\r
9 /* environment and to ensure proper functionality, qualification and */
\r
10 /* compliance with component specifications. */
\r
12 /* In the event the software deliverable includes the use of open */
\r
13 /* source components, the provisions of the governing open source */
\r
14 /* license agreement shall apply with respect to such software */
\r
16 /* FSEU does not warrant that the deliverables do not infringe any */
\r
17 /* third party intellectual property right (IPR). In the event that */
\r
18 /* the deliverables infringe a third party IPR it is the sole */
\r
19 /* responsibility of the customer to obtain necessary licenses to */
\r
20 /* continue the usage of the deliverable. */
\r
22 /* To the maximum extent permitted by applicable law FSEU disclaims all */
\r
23 /* warranties, whether express or implied, in particular, but not */
\r
24 /* limited to, warranties of merchantability and fitness for a */
\r
25 /* particular purpose for which the deliverable is not designated. */
\r
27 /* To the maximum extent permitted by applicable law, FSEU's liability */
\r
28 /* is restricted to intentional misconduct and gross negligence. */
\r
29 /* FSEU is not liable for consequential damages. */
\r
32 /************************************************************************/
\r
33 /** \file system_mb9af31x.h
\r
35 ** Headerfile for FM3 system parameters
\r
37 ** User clock definitions can be done for the following clock settings:
\r
38 ** - CLOCK_SETUP : Execute the clock settings form the settings below in
\r
40 ** - __CLKMO : External clock frequency for main oscillion
\r
41 ** - __CLKSO : External clock frequency for sub oscillion
\r
42 ** - SCM_CTL : System Clock Mode Control Register
\r
43 ** - BSC_PSR : Base Clock Prescaler Register
\r
44 ** - APBC0_PSR : APB0 Prescaler Register
\r
45 ** - APBC1_PSR : APB1 Prescaler Register
\r
46 ** - APBC2_PSR : APB2 Prescaler Register
\r
47 ** - SWC_PSR : Software Watchdog Clock Prescaler Register
\r
48 ** - TTC_PSR : Trace Clock Prescaler Register
\r
49 ** - CSW_TMR : Clock Stabilization Wait Time Register
\r
50 ** - PSW_TMR : PLL Clock Stabilization Wait Time Setup Register
\r
51 ** - PLL_CTL1 : PLL Control Register 1
\r
52 ** - PLL_CTL2 : PLL Control Register 2
\r
54 ** The register settings are check for correct values of reserved bits.
\r
55 ** Otherwise a preprocessor error is output and stops the build process.
\r
56 ** Furthermore the 'master clock' is retrieved from the register settings
\r
57 ** and the system clock (HCLK) is calculated from the Base Clock Prescaler
\r
58 ** Register (BSC_PSR). This value is used for the global CMSIS variable
\r
59 ** #SystemCoreClock. Also the absolute external, PLL and HCL freqeuncy is
\r
60 ** is checked. Note that not all possible wrong setting are checked! The
\r
61 ** user has to take care to fulfill the settings stated in the according
\r
62 ** device's data sheet!
\r
64 ** User definition for Hardware Watchdog:
\r
65 ** - HWWD_DISABLE : Disables Hardware Watchdog in SystemInit()
\r
67 ** User definition for CR Trimming:
\r
68 ** - CR_TRIM_SETUP : Enables CR trimming in SystemInit()
\r
71 ** 2011-05-16 V1.0 MWi original version
\r
72 *****************************************************************************/
\r
74 #ifndef _SYSTEM_MB9AF31X_H_
\r
75 #define _SYSTEM_MB9AF31X_H_
\r
77 /******************************************************************************/
\r
79 /******************************************************************************/
\r
83 /******************************************************************************/
\r
84 /* Global pre-processor symbols/macros ('define') */
\r
85 /******************************************************************************/
\r
87 /******************************************************************************/
\r
89 /* START OF USER SETTINGS HERE */
\r
90 /* =========================== */
\r
92 /* All lines with '<<<' can be set by user. */
\r
94 /******************************************************************************/
\r
97 ******************************************************************************
\r
98 ** \brief Clock Setup Enable
\r
99 ** <i>(USER SETTING)</i>
\r
101 ** - 0 = No clock setup done by system_mb9xfxxx.c
\r
102 ** - 1 = Clock setup done by system_mb9xfxxx.c
\r
103 ******************************************************************************/
\r
104 #define CLOCK_SETUP 1 // <<< Define clock setup here
\r
107 ******************************************************************************
\r
108 ** \brief External Main Clock Frequency (in Hz, [value]UL)
\r
109 ** <i>(USER SETTING)</i>
\r
110 ******************************************************************************/
\r
111 #define __CLKMO ( 4000000UL) // <<< External 4MHz Crystal
\r
114 ******************************************************************************
\r
115 ** \brief External Sub Clock Frequency (in Hz, [value]UL)
\r
116 ** <i>(USER SETTING)</i>
\r
117 ******************************************************************************/
\r
118 #define __CLKSO ( 32768UL) // <<< External 32KHz Crystal
\r
121 ******************************************************************************
\r
122 ** \brief System Clock Mode Control Register value definition
\r
123 ** <i>(USER SETTING)</i>
\r
127 ** Bit#7-5 : RCS[2:0]
\r
128 ** - 0 = Internal high-speed CR oscillation (default)
\r
129 ** - 1 = Main oscillation clock
\r
130 ** - 2 = PLL oscillation clock
\r
131 ** - 3 = (not allowed)
\r
132 ** - 4 = Internal low-speed CR oscillation
\r
133 ** - 5 = Sub clock oscillation
\r
134 ** - 6 = (not allowed)
\r
135 ** - 7 = (not allowed)
\r
138 ** - 0 = Disable PLL (default)
\r
139 ** - 1 = Enable PLL
\r
142 ** - 0 = Disable sub oscillation (default)
\r
143 ** - 1 = Enable sub oscillation
\r
145 ** Bit#2 : (reserved)
\r
148 ** - 0 = Disable main oscillation (default)
\r
149 ** - 1 = Enable main oscillation
\r
151 ** Bit#0 : (reserved)
\r
152 ******************************************************************************/
\r
153 #define SCM_CTL_Val 0x00000052 // <<< Define SCM_CTL here
\r
156 ******************************************************************************
\r
157 ** \brief Base Clock Prescaler Register value definition
\r
158 ** <i>(USER SETTING)</i>
\r
162 ** Bit#7-3 : (reserved)
\r
164 ** Bit#2-0 : BSR[2:0]
\r
165 ** - 0 = HCLK = Master Clock
\r
166 ** - 1 = HCLK = Master Clock / 2
\r
167 ** - 2 = HCLK = Master Clock / 3
\r
168 ** - 3 = HCLK = Master Clock / 4
\r
169 ** - 4 = HCLK = Master Clock / 6
\r
170 ** - 5 = HCLK = Master Clock / 8
\r
171 ** - 6 = HCLK = Master Clock / 16
\r
172 ** - 7 = (reserved)
\r
173 ******************************************************************************/
\r
174 #define BSC_PSR_Val 0x00000000 // <<< Define BSC_PSR here
\r
177 ******************************************************************************
\r
178 ** \brief APB0 Prescaler Register value definition
\r
179 ** <i>(USER SETTING)</i>
\r
183 ** Bit#7-2 : (reserved)
\r
185 ** Bit#1-0 : BSR[2:0]
\r
186 ** - 0 = PCLK0 = HCLK
\r
187 ** - 1 = PCLK0 = HCLK / 2
\r
188 ** - 2 = PCLK0 = HCLK / 4
\r
189 ** - 3 = PCLK0 = HCLK / 8
\r
190 ******************************************************************************/
\r
191 #define APBC0_PSR_Val 0x00000001 // <<< Define APBC0_PSR here
\r
194 ******************************************************************************
\r
195 ** \brief APB1 Prescaler Register value definition
\r
196 ** <i>(USER SETTING)</i>
\r
201 ** - 0 = Disable PCLK1 output
\r
202 ** - 1 = Enables PCLK1 (default)
\r
204 ** Bit#6-5 : (reserved)
\r
206 ** Bit#4 : APBC1RST
\r
207 ** - 0 = APB1 bus reset, inactive (default)
\r
208 ** - 1 = APB1 bus reset, active
\r
210 ** Bit#3-2 : (reserved)
\r
212 ** Bit#1-0 : APBC1[2:0]
\r
213 ** - 0 = PCLK1 = HCLK
\r
214 ** - 1 = PCLK1 = HCLK / 2
\r
215 ** - 2 = PCLK1 = HCLK / 4
\r
216 ** - 3 = PCLK1 = HCLK / 8
\r
217 ******************************************************************************/
\r
218 #define APBC1_PSR_Val 0x00000081 // <<< Define APBC1_PSR here
\r
221 ******************************************************************************
\r
222 ** \brief APB2 Prescaler Register value definition
\r
223 ** <i>(USER SETTING)</i>
\r
228 ** - 0 = Disable PCLK2 output
\r
229 ** - 1 = Enables PCLK2 (default)
\r
231 ** Bit#6-5 : (reserved)
\r
233 ** Bit#4 : APBC2RST
\r
234 ** - 0 = APB2 bus reset, inactive (default)
\r
235 ** - 1 = APB2 bus reset, active
\r
237 ** Bit#3-2 : (reserved)
\r
239 ** Bit#1-0 : APBC2[1:0]
\r
240 ** - 0 = PCLK2 = HCLK
\r
241 ** - 1 = PCLK2 = HCLK / 2
\r
242 ** - 2 = PCLK2 = HCLK / 4
\r
243 ** - 3 = PCLK2 = HCLK / 8
\r
244 ******************************************************************************/
\r
245 #define APBC2_PSR_Val 0x00000081 // <<< Define APBC2_PSR here
\r
248 ******************************************************************************
\r
249 ** \brief Software Watchdog Clock Prescaler Register value definition
\r
250 ** <i>(USER SETTING)</i>
\r
255 ** - 0 = (not allowed)
\r
256 ** - 1 = (always write "1" to this bit)
\r
258 ** Bit#6-2 : (reserved)
\r
260 ** Bit#1-0 : SWDS[2:0]
\r
261 ** - 0 = SWDGOGCLK = PCLK0
\r
262 ** - 1 = SWDGOGCLK = PCLK0 / 2
\r
263 ** - 2 = SWDGOGCLK = PCLK0 / 4
\r
264 ** - 3 = SWDGOGCLK = PCLK0 / 8
\r
265 ******************************************************************************/
\r
266 #define SWC_PSR_Val 0x00000003 // <<< Define SWC_PSR here
\r
269 ******************************************************************************
\r
270 ** \brief Trace Clock Prescaler Register value definition
\r
271 ** <i>(USER SETTING)</i>
\r
275 ** Bit#7-1 : (reserved)
\r
278 ** - 0 = TPIUCLK = HCLK
\r
279 ** - 1 = TPIUCLK = HCLK / 2
\r
280 ******************************************************************************/
\r
281 #define TTC_PSR_Val 0x00000000 // <<< Define TTC_PSR here
\r
284 ******************************************************************************
\r
285 ** \brief Clock Stabilization Wait Time Register value definition
\r
286 ** <i>(USER SETTING)</i>
\r
290 ** Bit#7 : (reserved)
\r
292 ** Bit#6-4 : SOWT[2:0]
\r
293 ** - 0 = ~10.3 ms (default)
\r
302 ** Bit#3-0 : MOWT[3:0]
\r
303 ** - 0 = ~500 ns (default)
\r
319 ******************************************************************************/
\r
320 #define CSW_TMR_Val 0x0000005C // <<< Define CSW_TMR here
\r
323 ******************************************************************************
\r
324 ** \brief PLL Clock Stabilization Wait Time Setup Register value definition
\r
325 ** <i>(USER SETTING)</i>
\r
329 ** Bit#7-5 : (reserved)
\r
332 ** - 0 = Selects CLKMO (main oscillation) (default)
\r
333 ** - 1 = (setting diabled)
\r
335 ** Bit#3 : (reserved)
\r
337 ** Bit#2-0 : POWT[2:0]
\r
338 ** - 0 = ~128 us (default)
\r
346 ******************************************************************************/
\r
347 #define PSW_TMR_Val 0x00000000 // <<< Define PSW_TMR here
\r
350 ******************************************************************************
\r
351 ** \brief PLL Control Register 1 value definition
\r
352 ** <i>(USER SETTING)</i>
\r
356 ** Bit#7-4 : PLLK[3:0]
\r
357 ** - 0 = Division(PLLK) = 1/1 (default)
\r
358 ** - 1 = Division(PLLK) = 1/2
\r
359 ** - 2 = Division(PLLK) = 1/3
\r
361 ** - 15 = Division(PLLK) = 1/16
\r
363 ** Bit#3-0 : PLLM[3:0]
\r
364 ** - 0 = Division(PLLM) = 1/1 (default)
\r
365 ** - 1 = Division(PLLM) = 1/2
\r
366 ** - 2 = Division(PLLM) = 1/3
\r
368 ** - 15 = Division(PLLM) = 1/16
\r
369 ******************************************************************************/
\r
370 #define PLL_CTL1_Val 0x00000004 // <<< Define PLL_CTL1 here
\r
373 ******************************************************************************
\r
374 ** \brief PLL Control Register 2 value definition
\r
375 ** <i>(USER SETTING)</i>
\r
379 ** Bit#7-6 : (reserved)
\r
381 ** Bit#5-0 : PLLM[5:0]
\r
382 ** - 0 = Division(PLLN) = 1/1 (default)
\r
383 ** - 1 = Division(PLLN) = 1/2
\r
384 ** - 2 = Division(PLLN) = 1/3
\r
386 ** - 63 = Division(PLLN) = 1/64
\r
387 ******************************************************************************/
\r
388 #define PLL_CTL2_Val 0x00000009 // <<< Define PLL_CTL2 here
\r
391 ******************************************************************************
\r
392 ** \brief Hardware Watchdog disable definition
\r
393 ** <i>(USER SETTING)</i>
\r
395 ** - 0 = Hardware Watchdog enable
\r
396 ** - 1 = Hardware Watchdog disable
\r
397 ******************************************************************************/
\r
398 #define HWWD_DISABLE 1 // <<< Define HW Watach dog enable here
\r
401 ******************************************************************************
\r
402 ** \brief Trimming CR
\r
403 ** <i>(USER SETTING)</i>
\r
405 ** - 0 = CR is not trimmed at startup
\r
406 ** - 1 = CR is trimmed at startup
\r
407 ******************************************************************************/
\r
408 #define CR_TRIM_SETUP 1 // <<< Define CR trimming at startup enable here
\r
411 /******************************************************************************/
\r
413 /* END OF USER SETTINGS HERE */
\r
414 /* ========================= */
\r
416 /******************************************************************************/
\r
418 /******************************************************************************/
\r
419 /* Device dependent System Clock absolute maximum ranges */
\r
420 /******************************************************************************/
\r
423 ******************************************************************************
\r
424 ** \brief Internal High-Speed CR Oscillator Frequency (in Hz, [value]UL)
\r
425 ** <i>(USER SETTING)</i>
\r
426 ******************************************************************************/
\r
427 #define __CLKHC ( 4000000UL) /* Internal 4MHz CR Oscillator */
\r
430 ******************************************************************************
\r
431 ** \brief Internal Low-Speed CR Oscillator Frequency (in Hz, [value]UL)
\r
432 ** <i>(USER SETTING)</i>
\r
433 ******************************************************************************/
\r
434 #define __CLKLC ( 100000UL) /* Internal 100KHz CR Oscillator */
\r
437 ******************************************************************************
\r
438 ** \brief Any case minimum Main Clock frequency (in Hz, [value]UL)
\r
439 ** <i>(DEVICE DEPENDENT SETTING)</i>
\r
440 ******************************************************************************/
\r
441 #define __CLKMOMIN ( 4000000UL)
\r
444 ******************************************************************************
\r
445 ** \brief Maximum Main Clock frequency using external clock
\r
446 ** <i>(DEVICE DEPENDENT SETTING)</i>
\r
447 ******************************************************************************/
\r
448 #define __CLKMOMAX ( 48000000UL)
\r
451 ******************************************************************************
\r
452 ** \brief Any case minimum Sub Clock frequency
\r
453 ** <i>(DEVICE DEPENDENT SETTING)</i>
\r
454 ******************************************************************************/
\r
455 #define __CLKSOMIN ( 32000UL)
\r
458 ******************************************************************************
\r
459 ** \brief Maximum Sub Clock frequency using external clock
\r
460 ** <i>(DEVICE DEPENDENT SETTING)</i>
\r
461 ******************************************************************************/
\r
462 #define __CLKSOMAX ( 100000UL)
\r
465 ******************************************************************************
\r
466 ** \brief Absolute minimum PLL input frequency
\r
467 ** <i>(DEVICE DEPENDENT SETTING)</i>
\r
468 ******************************************************************************/
\r
469 #define __PLLCLKINMIN ( 4000000UL)
\r
472 ******************************************************************************
\r
473 ** \brief Absolute maximum PLL input frequency
\r
474 ** <i>(DEVICE DEPENDENT SETTING)</i>
\r
475 ******************************************************************************/
\r
476 #define __PLLCLKINMAX ( 16000000UL)
\r
479 ******************************************************************************
\r
480 ** \brief Absolute minimum PLL oscillation frequency
\r
481 ** <i>(DEVICE DEPENDENT SETTING)</i>
\r
482 ******************************************************************************/
\r
483 #define __PLLCLKMIN (200000000UL)
\r
486 ******************************************************************************
\r
487 ** \brief Absolute maximum PLL oscillation frequency
\r
488 ** <i>(DEVICE DEPENDENT SETTING)</i>
\r
489 ******************************************************************************/
\r
490 #define __PLLCLKMAX (300000000UL)
\r
493 ******************************************************************************
\r
494 ** \brief Absolute maximum System Clock frequency (HCLK)
\r
495 ** <i>(DEVICE DEPENDENT SETTING)</i>
\r
496 ******************************************************************************/
\r
497 #define __HCLKMAX ( 40000000UL)
\r
500 ******************************************************************************
\r
501 ** \brief Preprocessor macro for checking range (clock settings)
\r
502 ******************************************************************************/
\r
503 #define CHECK_RANGE(val, min, max) ((val < min) || (val > max))
\r
506 ******************************************************************************
\r
507 ** \brief Preprocessor macro for checking bits with mask (clock settings)
\r
508 ******************************************************************************/
\r
509 #define CHECK_RSVD(val, mask) (val & mask)
\r
512 /******************************************************************************/
\r
513 /* Check register settings */
\r
514 /******************************************************************************/
\r
515 #if (CHECK_RSVD((SCM_CTL_Val), ~0x000000FA))
\r
516 #error "SCM_CTL: Invalid values of reserved bits!"
\r
519 #if ((SCM_CTL_Val & 0xE0) == 0x40) && ((SCM_CTL_Val & 0x10) != 0x10)
\r
520 #error "SCM_CTL: CLKPLL is selected but PLL is not enabled!"
\r
523 #if (CHECK_RSVD((CSW_TMR_Val), ~0x0000007F))
\r
524 #error "CSW_TMR: Invalid values of reserved bits!"
\r
527 #if ((SCM_CTL_Val & 0x10)) /* if PLL is used */
\r
528 #if (CHECK_RSVD((PSW_TMR_val), ~0x00000007))
\r
529 #error "PSW_TMR: Invalid values of reserved bits!"
\r
532 #if (CHECK_RSVD((PLL_CTL1_Val), ~0x000000FF))
\r
533 #error "PLL_CTL1: Invalid values of reserved bits!"
\r
536 #if (CHECK_RSVD((PLL_CTL2_Val), ~0x0000003F))
\r
537 #error "PLL_CTL2: Invalid values of reserved bits!"
\r
541 #if (CHECK_RSVD((BSC_PSR_Val), ~0x00000007))
\r
542 #error "BSC_PSR: Invalid values of reserved bits!"
\r
545 #if (CHECK_RSVD((APBC0_PSR_Val), ~0x00000003))
\r
546 #error "APBC0_PSR: Invalid values of reserved bits!"
\r
549 #if (CHECK_RSVD((APBC1_PSR_Val), ~0x00000083))
\r
550 #error "APBC1_PSR: Invalid values of reserved bits!"
\r
553 #if (CHECK_RSVD((APBC2_PSR_Val), ~0x00000083))
\r
554 #error "APBC2_PSR: Invalid values of reserved bits!"
\r
557 #if (CHECK_RSVD((SWC_PSR_Val), ~0x00000003))
\r
558 #error "SWC_PSR: Invalid values of reserved bits!"
\r
561 #if (CHECK_RSVD((TTC_PSR_Val), ~0x00000001))
\r
562 #error "TTC_PSR: Invalid values of reserved bits!"
\r
565 /******************************************************************************/
\r
566 /* Define clocks with checking settings */
\r
567 /******************************************************************************/
\r
570 ******************************************************************************
\r
571 ** \brief Calculate PLL K factor from settings
\r
572 ******************************************************************************/
\r
573 #define __PLLK (((PLL_CTL1_Val >> 4) & 0x0F) + 1)
\r
576 ******************************************************************************
\r
577 ** \brief Calculate PLL N factor from settings
\r
578 ******************************************************************************/
\r
579 #define __PLLN (((PLL_CTL2_Val ) & 0x1F) + 1)
\r
582 ******************************************************************************
\r
583 ** \brief Calculate PLL M factor from settings
\r
584 ******************************************************************************/
\r
585 #define __PLLM (((PLL_CTL1_Val ) & 0x0F) + 1)
\r
588 ******************************************************************************
\r
589 ** \brief Calculate PLL output frequency from settings
\r
590 ******************************************************************************/
\r
591 #define __PLLCLK ((__CLKMO * __PLLN) / __PLLK)
\r
593 /******************************************************************************/
\r
594 /* Determine core clock frequency according to settings */
\r
595 /******************************************************************************/
\r
598 ******************************************************************************
\r
599 ** \brief Define Master Clock from settings
\r
600 ******************************************************************************/
\r
601 #if (((SCM_CTL_Val >> 5) & 0x07) == 0)
\r
602 #define __MASTERCLK (__CLKHC)
\r
603 #elif (((SCM_CTL_Val >> 5) & 0x07) == 1)
\r
604 #define __MASTERCLK (__CLKMO)
\r
605 #elif (((SCM_CTL_Val >> 5) & 0x07) == 2)
\r
606 #define __MASTERCLK (__PLLCLK)
\r
607 #elif (((SCM_CTL_Val >> 5) & 0x07) == 4)
\r
608 #define __MASTERCLK (__CLKLC)
\r
609 #elif (((SCM_CTL_Val >> 5) & 0x07) == 5)
\r
610 #define __MASTERCLK (__CLKSO)
\r
612 #define __MASTERCLK (0UL)
\r
616 ******************************************************************************
\r
617 ** \brief Define System Clock Frequency (Core Clock) from settings
\r
618 ******************************************************************************/
\r
619 #if ((BSC_PSR_Val & 0x07) == 0)
\r
620 #define __HCLK (__MASTERCLK / 1)
\r
621 #elif ((BSC_PSR_Val & 0x07) == 1)
\r
622 #define __HCLK (__MASTERCLK / 2)
\r
623 #elif ((BSC_PSR_Val & 0x07) == 2)
\r
624 #define __HCLK (__MASTERCLK / 3)
\r
625 #elif ((BSC_PSR_Val & 0x07) == 3)
\r
626 #define __HCLK (__MASTERCLK / 4)
\r
627 #elif ((BSC_PSR_Val & 0x07) == 4)
\r
628 #define __HCLK (__MASTERCLK / 6)
\r
629 #elif ((BSC_PSR_Val & 0x07) == 5)
\r
630 #define __HCLK (__MASTERCLK / 8)
\r
631 #elif ((BSC_PSR_Val & 0x07) == 6)
\r
632 #define __HCLK (__MASTERCLK /16)
\r
634 #define __HCLK (0UL)
\r
637 /******************************************************************************/
\r
638 /* HCLK range check */
\r
639 /******************************************************************************/
\r
640 #if (CHECK_RANGE(__CLKMO, __CLKMOMIN, __CLKMOMAX) != 0)
\r
641 #error "Main Oscillator Clock (CLKMO) out of range!"
\r
644 #if (CHECK_RANGE(__CLKSO, __CLKSOMIN, __CLKSOMAX) != 0)
\r
645 #error "Sub Oscillator Clock (CLKMO) out of range!"
\r
648 #if (CHECK_RANGE((__CLKMO / __PLLK), __PLLCLKINMIN, __PLLCLKINMAX) != 0)
\r
649 #error "PLL input frequency out of range!"
\r
652 #if (CHECK_RANGE(((__CLKMO * __PLLN * __PLLM) / __PLLK), __PLLCLKMIN, __PLLCLKMAX) != 0)
\r
653 #error "PLL oscillation frequency out of range!"
\r
656 #if (CHECK_RANGE(__HCLK, 0, __HCLKMAX) != 0)
\r
657 #error "System Clock (HCLK) out of range!"
\r
660 /******************************************************************************/
\r
661 /* Global function prototypes ('extern', definition in C source) */
\r
662 /******************************************************************************/
\r
664 extern uint32_t SystemCoreClock; // System Clock Frequency (Core Clock)
\r
666 extern void SystemInit (void); // Initialize the system
\r
668 extern void SystemCoreClockUpdate (void); // Update SystemCoreClock variable
\r
674 #endif /* __SYSTEM_MB9AF31X_H */
\r