summaryrefslogtreecommitdiff
path: root/AT91SAM7S256/Source
diff options
context:
space:
mode:
authorNicolas Schodet2010-01-17 19:01:19 +0100
committerNicolas Schodet2010-08-20 00:18:22 +0200
commita76dd27d273424a260908c88c6b3aa5d04e898b7 (patch)
tree38d7c39cc52d4ecc8a1f8b5121fd2275f5509207 /AT91SAM7S256/Source
parent39668ecb5ca8c74b8fedd75a6d80efb9d89a3f7f (diff)
gcc: add __ramfunc definition
Functions which can be executed during flash programming (this include interrupts) should not be stored in flash. They are copied to RAM at startup. Also disable jump table generation for switch statements as those are stored in .rodata section (which is in flash).
Diffstat (limited to 'AT91SAM7S256/Source')
-rw-r--r--AT91SAM7S256/Source/stdconst.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/AT91SAM7S256/Source/stdconst.h b/AT91SAM7S256/Source/stdconst.h
index 29bf239..07ffd87 100644
--- a/AT91SAM7S256/Source/stdconst.h
+++ b/AT91SAM7S256/Source/stdconst.h
@@ -62,4 +62,8 @@ typedef char* PSZ;
#define SIZEOF_DATA(name) (sizeof (name))
#endif
+#ifdef __GNUC__
+#define __ramfunc __attribute__ ((section (".fastrun"), optimize ("no-jump-tables")))
+#endif
+
#endif