aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--os/common/ports/ARMCMx/compilers/GCC/crt0.c10
-rw-r--r--os/common/ports/ARMCMx/compilers/GCC/vectors.c5
2 files changed, 6 insertions, 9 deletions
diff --git a/os/common/ports/ARMCMx/compilers/GCC/crt0.c b/os/common/ports/ARMCMx/compilers/GCC/crt0.c
index a9b58820e..06c41a2d0 100644
--- a/os/common/ports/ARMCMx/compilers/GCC/crt0.c
+++ b/os/common/ports/ARMCMx/compilers/GCC/crt0.c
@@ -51,11 +51,11 @@ typedef funcp_t * funcpp_t;
* 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; \
+static void fill32(void *start, void *end, uint32_t filler) {
+ uint32_t *p1 = start;
+ uint32_t *p2 = end;
+ while (p1 < p2)
+ *p1++ = filler;
}
/*===========================================================================*/
diff --git a/os/common/ports/ARMCMx/compilers/GCC/vectors.c b/os/common/ports/ARMCMx/compilers/GCC/vectors.c
index 707f8b7b1..0eb9d5d14 100644
--- a/os/common/ports/ARMCMx/compilers/GCC/vectors.c
+++ b/os/common/ports/ARMCMx/compilers/GCC/vectors.c
@@ -76,9 +76,6 @@ typedef struct {
*
* @notapi
*/
-#if !defined(__DOXYGEN__)
-__attribute__ ((naked))
-#endif
void _unhandled_exception(void) {
while (true)
@@ -466,7 +463,7 @@ void Vector3FC(void) __attribute__((weak, alias("_unhandled_exception")));
* @brief STM32 vectors table.
*/
#if !defined(__DOXYGEN__)
-__attribute__ ((section("vectors")))
+__attribute__ ((used, section("vectors")))
#endif
vectors_t _vectors = {
&__main_stack_end__,Reset_Handler, NMI_Handler, HardFault_Handler,