aboutsummaryrefslogtreecommitdiffstats
path: root/src/gos
diff options
context:
space:
mode:
authorinmarket <andrewh@inmarket.com.au>2015-07-08 13:57:00 +1000
committerinmarket <andrewh@inmarket.com.au>2015-07-08 13:57:00 +1000
commit57156a3636aa92423b8e86fe1b2740550d01b7b6 (patch)
tree0c0b4488c0ba43fe8e1d180c8a0827c57efcfdbd /src/gos
parent93e523512479e6dc5f60fb0fb9bcf63696acd49a (diff)
parent8318e8dc29c571f56742df6ea81d2f8298127826 (diff)
downloaduGFX-57156a3636aa92423b8e86fe1b2740550d01b7b6.tar.gz
uGFX-57156a3636aa92423b8e86fe1b2740550d01b7b6.tar.bz2
uGFX-57156a3636aa92423b8e86fe1b2740550d01b7b6.zip
Merge branch 'master' into Alternate_Raw32_Scheduler
Diffstat (limited to 'src/gos')
-rw-r--r--src/gos/gos_arduino.c11
-rw-r--r--src/gos/gos_options.h12
-rw-r--r--src/gos/gos_raw32.c9
3 files changed, 23 insertions, 9 deletions
diff --git a/src/gos/gos_arduino.c b/src/gos/gos_arduino.c
index 0c01a30c..380d528a 100644
--- a/src/gos/gos_arduino.c
+++ b/src/gos/gos_arduino.c
@@ -229,18 +229,19 @@ void gfxSleepMicroseconds(delaytime_t ms) {
* For those it doesn't - read the compiler manuals and the library source code to
* work out the correct macro values.
* You can use the debugger to work out the values for your compiler and put them here.
- * Defining these macros as constant values makes the system behaviour guaranteed but also
- * makes your code compiler and cpu architecture dependant.
+ * Defining these macros as constant values makes the system behavior guaranteed but also
+ * makes your code compiler and cpu architecture dependent. It also saves a heap of code
+ * and a few bytes of RAM.
*/
-#if 0
- // Define your compiler constant values here.
- // These example values are for mingw32 compiler (x86).
+#if GFX_COMPILER == GFX_COMPILER_MINGW32
#define AUTO_DETECT_MASK FALSE
#define STACK_DIR_UP FALSE
#define MASK1 0x00000011
#define MASK2 0x00000000
#define STACK_BASE 12
#else
+ // Use auto-detection of the stack frame format
+ // Assumes all the relevant stuff to be relocated is in the first 256 bytes of the jmpbuf.
#define AUTO_DETECT_MASK TRUE
#define STACK_DIR_UP stackdirup // TRUE if the stack grow up instead of down
#define MASK1 jmpmask1 // The 1st mask of jmp_buf elements that need relocation
diff --git a/src/gos/gos_options.h b/src/gos/gos_options.h
index 2f896508..8fb4f51b 100644
--- a/src/gos/gos_options.h
+++ b/src/gos/gos_options.h
@@ -82,6 +82,18 @@
* @name GOS Optional Parameters
* @{
*/
+ /**
+ * @brief Enable compiler specific code
+ * @details Defaults to GFX_COMPILER_UNKNOWN
+ * @note This is setting enables optimisations that are compiler specific. It does
+ * not need to be specified as reasonable defaults and various auto-detection
+ * will happen as required.
+ */
+ #ifndef GFX_COMPILER
+ #define GFX_COMPILER GFX_COMPILER_UNKNOWN
+ #endif
+ #define GFX_COMPILER_UNKNOWN 0 // Unknown compiler
+ #define GFX_COMPILER_MINGW32 1 // MingW32 (x86) compiler for windows
/**
* @brief Should uGFX avoid initializing the operating system
* @details Defaults to FALSE
diff --git a/src/gos/gos_raw32.c b/src/gos/gos_raw32.c
index 529dcf79..085c3c5d 100644
--- a/src/gos/gos_raw32.c
+++ b/src/gos/gos_raw32.c
@@ -440,17 +440,18 @@ void gfxSleepMicroseconds(delaytime_t ms) {
* work out the correct macro values.
* You can use the debugger to work out the values for your compiler and put them here.
* Defining these macros as constant values makes the system behavior guaranteed but also
- * makes your code compiler and cpu architecture dependent.
+ * makes your code compiler and cpu architecture dependent. It also saves a heap of code
+ * and a few bytes of RAM.
*/
- #if 0
- // Define your compiler constant values here.
- // These example values are for mingw32 compiler (x86).
+ #if GFX_COMPILER == GFX_COMPILER_MINGW32
#define AUTO_DETECT_MASK FALSE
#define STACK_DIR_UP FALSE
#define MASK1 0x00000011
#define MASK2 0x00000000
#define STACK_BASE 12
#else
+ // Use auto-detection of the stack frame format
+ // Assumes all the relevant stuff to be relocated is in the first 256 bytes of the jmpbuf.
#define AUTO_DETECT_MASK TRUE
#define STACK_DIR_UP stackdirup // TRUE if the stack grow up instead of down
#define MASK1 jmpmask1 // The 1st mask of jmp_buf elements that need relocation