summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakob Odersky <jodersky@gmail.com>2015-05-05 20:57:20 +0200
committerJakob Odersky <jodersky@gmail.com>2015-05-05 20:57:20 +0200
commitf573c78fc173cfba41f00958230d141e7136e625 (patch)
treec511aaba4d28009256046916f44c8dff84c878be
parent63912680ba89e8583c2c3ec82899f5bc2d7ffdcd (diff)
downloadpx4-nuttx-f573c78fc173cfba41f00958230d141e7136e625.tar.gz
px4-nuttx-f573c78fc173cfba41f00958230d141e7136e625.tar.bz2
px4-nuttx-f573c78fc173cfba41f00958230d141e7136e625.zip
bug: warn about requiring -Os for setting clock
-rw-r--r--nuttx/arch/arm/src/kinetis/kinetis_clockconfig.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/nuttx/arch/arm/src/kinetis/kinetis_clockconfig.c b/nuttx/arch/arm/src/kinetis/kinetis_clockconfig.c
index 8d383523a..9bc6c1659 100644
--- a/nuttx/arch/arm/src/kinetis/kinetis_clockconfig.c
+++ b/nuttx/arch/arm/src/kinetis/kinetis_clockconfig.c
@@ -362,6 +362,12 @@ kinesis_setdividers(uint32_t div1, uint32_t div2, uint32_t div3, uint32_t div4)
/* Set clock dividers to desired value */
+ /* XXX: WARNING!
+ *
+ * For some reason, if the optimization level is not set for size
+ * (-Os) on GCC 4.8.4, the below register assignment will cause this
+ * function to never return.
+ */
putreg32(SIM_CLKDIV1_OUTDIV1(div1) | SIM_CLKDIV1_OUTDIV2(div2) |
SIM_CLKDIV1_OUTDIV3(div3) | SIM_CLKDIV1_OUTDIV4(div4),
KINETIS_SIM_CLKDIV1);