aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--docs/ch.txt23
-rw-r--r--ports/ARM7/chcore.h4
2 files changed, 26 insertions, 1 deletions
diff --git a/docs/ch.txt b/docs/ch.txt
index 23d1ec096..884eb1f11 100644
--- a/docs/ch.txt
+++ b/docs/ch.txt
@@ -207,6 +207,29 @@
/** @} */
/**
+ * @defgroup ARM7CONF Configuration Options
+ * @{
+ * <p>
+ * The ARM7 port allows some architecture-specific configurations:
+ * <ul>
+ * <li>@p INT_REQUIRED_STACK, this value represent the amount of stack space used
+ * by an interrupt handler between the @p extctx and @p intctx
+ * structures.<br>
+ * In practice this value is the stack space used by the chSchDoReschedule()
+ * stack frame.<br>
+ * This value can be affected by a variety of external things like compiler
+ * version, compiler options, kernel settings (speed/size) and so on.<br>
+ * The default for this value is @p 0x10 which should be a safe value, you
+ * can trim this down by defining the macro externally. This would save
+ * some valuable RAM space for each thread present in the system.<br>
+ * The default value is set into <b>./ports/ARM7/chcore.h</b>.</li>
+ * </ul>
+ * </p>
+ * @ingroup ARM7
+ */
+/** @} */
+
+/**
* @defgroup LPC214x LPC214x Support
* @{
* <p>
diff --git a/ports/ARM7/chcore.h b/ports/ARM7/chcore.h
index 1c90eff99..b1f5505d3 100644
--- a/ports/ARM7/chcore.h
+++ b/ports/ARM7/chcore.h
@@ -119,11 +119,13 @@ extern "C" {
#endif /* !REENTRANT_LOCKS */
#endif /* THUMB */
+#ifndef INT_REQUIRED_STACK
#ifdef THUMB
#define INT_REQUIRED_STACK 0x10
#else /* !THUMB */
-#define INT_REQUIRED_STACK 0
+#define INT_REQUIRED_STACK 0x10
#endif /* !THUMB */
+#endif
#define STACK_ALIGN(n) ((((n) - 1) | sizeof(stkalign_t)) + 1)