summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/bwbootloader/bwbootloader.h4
-rw-r--r--src/bwbootloader/prog.c2
-rw-r--r--src/bwbootloader/spacer.avr.S2
3 files changed, 7 insertions, 1 deletions
diff --git a/src/bwbootloader/bwbootloader.h b/src/bwbootloader/bwbootloader.h
index 81f7796..a6a51b9 100644
--- a/src/bwbootloader/bwbootloader.h
+++ b/src/bwbootloader/bwbootloader.h
@@ -39,6 +39,10 @@ enum
BWBOOTLOADER_READ_FUSES,
};
+/** Application entry point, right after vectors, defined in spacer.avr.S. */
+void
+application_entry (void);
+
#endif
#endif /* bwbootloader_h */
diff --git a/src/bwbootloader/prog.c b/src/bwbootloader/prog.c
index 7b7d2c1..2bd7fa6 100644
--- a/src/bwbootloader/prog.c
+++ b/src/bwbootloader/prog.c
@@ -80,6 +80,6 @@ void
prog_start (void)
{
/* Jump after vectors. */
- ((void (*) (void)) _VECTORS_SIZE) ();
+ application_entry ();
}
diff --git a/src/bwbootloader/spacer.avr.S b/src/bwbootloader/spacer.avr.S
index 5ff2cb7..215c395 100644
--- a/src/bwbootloader/spacer.avr.S
+++ b/src/bwbootloader/spacer.avr.S
@@ -26,4 +26,6 @@
#include "bwbootloader.h"
.section .progmem
+ .global application_entry
+application_entry:
.skip FLASHEND + 1 - BWBOOTLOADER_SIZE - _VECTORS_SIZE, 0xff