mbed library sources. Supersedes mbed-src. GR-PEACH runs on RAM.
Fork of mbed-dev by
Revision 97:c27a4bafb213, committed 2016-03-24
- Comitter:
- mbed_official
- Date:
- Thu Mar 24 06:30:11 2016 +0000
- Parent:
- 96:12647ac05603
- Child:
- 98:f043b034eb5d
- Commit message:
- Synchronized with git revision dd3cba536fbbd4e36a7e93fde54c3d3984bdd0f6
Full URL: https://github.com/mbedmicro/mbed/commit/dd3cba536fbbd4e36a7e93fde54c3d3984bdd0f6/
Prevent KL05 from using an unstable clock
Changed in this revision
| targets/cmsis/TARGET_Freescale/TARGET_KLXX/TARGET_KL05Z/system_MKL05Z4.c | Show annotated file Show diff for this revision Revisions of this file |
--- a/targets/cmsis/TARGET_Freescale/TARGET_KLXX/TARGET_KL05Z/system_MKL05Z4.c Thu Mar 24 06:15:10 2016 +0000
+++ b/targets/cmsis/TARGET_Freescale/TARGET_KLXX/TARGET_KL05Z/system_MKL05Z4.c Thu Mar 24 06:30:11 2016 +0000
@@ -103,6 +103,11 @@
-- SystemInit()
---------------------------------------------------------------------------- */
+static void busy_delay(uint32_t delay) {
+ volatile uint32_t i = delay;
+ while (i--);
+}
+
void SystemInit (void) {
#if (DISABLE_WDOG)
/* Disable the WDOG module */
@@ -189,6 +194,13 @@
while((MCG->S & MCG_S_IRCST_MASK) == 0x00U) { /* Check that the fast external reference clock is selected. */
}
#endif /* (CLOCK_SETUP == 2) */
+ // Give the FLL time to stabilize
+ // This can take up to 1ms according to the KL05 datasheet
+ // Note: Without this delay the UART's baud can be wrong for the
+ // first byte sent in some cases. A delay of 1000 fixes this
+ // problem even under optimizations. The delay of 10,000 is used
+ // to add a saftey margin.
+ busy_delay(10000);
}
/* ----------------------------------------------------------------------------
