diff options
Diffstat (limited to 'os/ports')
-rw-r--r-- | os/ports/GCC/ARMCMx/crt0.c | 24 |
1 files changed, 11 insertions, 13 deletions
diff --git a/os/ports/GCC/ARMCMx/crt0.c b/os/ports/GCC/ARMCMx/crt0.c index bb8d3830d..4ac08ecdb 100644 --- a/os/ports/GCC/ARMCMx/crt0.c +++ b/os/ports/GCC/ARMCMx/crt0.c @@ -33,6 +33,17 @@ typedef funcp_t * funcpp_t; #define SYMVAL(sym) (uint32_t)(((uint8_t *)&(sym)) - ((uint8_t *)0))
+/*
+ * Area fill code, it is a macro because here functions cannot be called
+ * until stacks are initialized.
+ */
+#define fill32(start, end, filler) { \
+ uint32_t *p1 = start; \
+ uint32_t *p2 = end; \
+ while (p1 < p2) \
+ *p1++ = filler; \
+}
+
/*===========================================================================*/
/**
* @name Startup settings
@@ -228,19 +239,6 @@ void _default_exit(void) { }
/**
- * @brief Memory fill.
- *
- * @param[in] start fill area start
- * @param[in] end fill area end
- * @param[in] filler filler pattern
- */
-static void fill32(uint32_t *start, uint32_t *end, uint32_t filler) {
-
- while (start < end)
- *start++ = filler;
-}
-
-/**
* @brief Reset vector.
*/
#if !defined(__DOXYGEN__)
|