summaryrefslogtreecommitdiffstats
path: root/nuttx/arch/avr
diff options
context:
space:
mode:
authorpatacongo <patacongo@7fd9a85b-ad96-42d3-883c-3090e2eb8679>2011-06-15 23:54:25 +0000
committerpatacongo <patacongo@7fd9a85b-ad96-42d3-883c-3090e2eb8679>2011-06-15 23:54:25 +0000
commit0480efca5335d6336cfa9d05d975ffcca1783c23 (patch)
tree4072756cd5eaa266c4ee4f6527a7a3369e5e3b69 /nuttx/arch/avr
parentc489254e2d6e1336ca51841d69313582fda6a4ca (diff)
Make room for the noinit section before the heap
git-svn-id: https://nuttx.svn.sourceforge.net/svnroot/nuttx/trunk@3710 7fd9a85b-ad96-42d3-883c-3090e2eb8679
Diffstat (limited to 'nuttx/arch/avr')
-rwxr-xr-xnuttx/arch/avr/src/at90usb/at90usb_head.S12
-rwxr-xr-xnuttx/arch/avr/src/atmega/atmega_head.S12
-rw-r--r--nuttx/arch/avr/src/avr/up_dumpstate.c6
3 files changed, 15 insertions, 15 deletions
diff --git a/nuttx/arch/avr/src/at90usb/at90usb_head.S b/nuttx/arch/avr/src/at90usb/at90usb_head.S
index 49b0e0e90b..a3f56245f7 100755
--- a/nuttx/arch/avr/src/at90usb/at90usb_head.S
+++ b/nuttx/arch/avr/src/at90usb/at90usb_head.S
@@ -46,9 +46,9 @@
* Pre-processor definitions
****************************************************************************/
-/* Stack is allocated just after .bss and before the heap */
+/* Stack is allocated just after uninitialized data and just before the heap */
-#define STACKBASE (_ebss+CONFIG_IDLETHREAD_STACKSIZE-1)
+#define STACKBASE (_enoinit+CONFIG_IDLETHREAD_STACKSIZE-1)
/* The RAMPZ register is only available for CPUs with more than 64Kb of FLASH.
* Only the AT90USB646, 647, 1286, and 1287 are supported by this file.
@@ -72,6 +72,7 @@
.global _sdata /* Start of .data section in RAM */
.global _edata /* End of .data section in RAM */
.global _eronly /* Start of .data section in FLASH */
+ .global _enoinit /* End of uninitialized data. Defined by ld.script */
.global up_lowinit /* Perform low level initialization */
.global os_start /* NuttX entry point */
@@ -263,15 +264,14 @@ __do_clear_bss:
* Heap Base
****************************************************************************/
- /* This global variable is unsigned long g_heapbase and is
- * exported from here only because of its coupling to other
- * uses of _ebss in this file
+ /* This global variable is unsigned long g_heapbase and is exported from
+ * here only because of its coupling to other uses of _enoinit in this file
*/
.data
.globl g_heapbase
.type g_heapbase, object
g_heapbase:
- .word _ebss+CONFIG_IDLETHREAD_STACKSIZE
+ .word _enoinit+CONFIG_IDLETHREAD_STACKSIZE
.size g_heapbase, .-g_heapbase
.end
diff --git a/nuttx/arch/avr/src/atmega/atmega_head.S b/nuttx/arch/avr/src/atmega/atmega_head.S
index cad7e54c8c..9b6581ce76 100755
--- a/nuttx/arch/avr/src/atmega/atmega_head.S
+++ b/nuttx/arch/avr/src/atmega/atmega_head.S
@@ -47,9 +47,9 @@
* Pre-processor definitions
****************************************************************************/
-/* Stack is allocated just after .bss and before the heap */
+/* Stack is allocated just after uninitialized data and just before the heap */
-#define STACKBASE (_ebss+CONFIG_IDLETHREAD_STACKSIZE-4)
+#define STACKBASE (_enoinit+CONFIG_IDLETHREAD_STACKSIZE-1)
/* The RAMPZ register is only available for CPUs with more than 64Kb of FLASH.
* At present, only the ATMega128 is supported so RAMPZ should always be
@@ -72,6 +72,7 @@
.global _sdata /* Start of .data section in RAM */
.global _edata /* End of .data section in RAM */
.global _eronly /* Start of .data section in FLASH */
+ .global _enoinit /* End of uninitilized data. Defined by ld.script */
.global up_lowinit /* Perform low level initialization */
.global os_start /* NuttX entry point */
@@ -257,15 +258,14 @@ __do_clear_bss:
* Heap Base
****************************************************************************/
- /* This global variable is unsigned long g_heapbase and is
- * exported from here only because of its coupling to other
- * uses of _ebss in this file
+ /* This global variable is unsigned long g_heapbase and is exported from
+ * here only because of its coupling to other uses of _enoinit in this file
*/
.data
.globl g_heapbase
.type g_heapbase, object
g_heapbase:
- .word _ebss+CONFIG_IDLETHREAD_STACKSIZE
+ .word _enoinit+CONFIG_IDLETHREAD_STACKSIZE
.size g_heapbase, .-g_heapbase
.end
diff --git a/nuttx/arch/avr/src/avr/up_dumpstate.c b/nuttx/arch/avr/src/avr/up_dumpstate.c
index 2e3af537bf..e22aa8f8b8 100644
--- a/nuttx/arch/avr/src/avr/up_dumpstate.c
+++ b/nuttx/arch/avr/src/avr/up_dumpstate.c
@@ -181,7 +181,7 @@ void up_dumpstate(void)
if (rtcb->pid == 0)
{
- ustackbase = g_heapbase - 4;
+ ustackbase = g_heapbase - 1;
ustacksize = CONFIG_IDLETHREAD_STACKSIZE;
}
else
@@ -193,8 +193,8 @@ void up_dumpstate(void)
/* Get the limits on the interrupt stack memory */
#if CONFIG_ARCH_INTERRUPTSTACK > 0
- istackbase = (uint16_t)&g_intstackbase;
- istacksize = (CONFIG_ARCH_INTERRUPTSTACK & ~3) - 4;
+ istackbase = (uint16_t)&g_intstackbase - 1;
+ istacksize = CONFIG_ARCH_INTERRUPTSTACK;
/* Show interrupt stack info */