summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas Schodet2010-06-16 23:29:48 +0200
committerNicolas Schodet2010-06-16 23:29:48 +0200
commit35370c5301abeede6017e971a44c7b3200d40aa7 (patch)
tree3de753a22d9d63276c5d6d0709c0b3459475e607
parentfcc01eeffbfe04ea907b950f58760443fb54d60d (diff)
bwbootloader: fix prog_start, function pointers point to word
-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