Make room for the noinit section before the heap
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3710 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
parent
b4518798da
commit
a69feab58a
@ -46,9 +46,9 @@
|
|||||||
* Pre-processor definitions
|
* 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.
|
/* 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.
|
* 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 _sdata /* Start of .data section in RAM */
|
||||||
.global _edata /* End of .data section in RAM */
|
.global _edata /* End of .data section in RAM */
|
||||||
.global _eronly /* Start of .data section in FLASH */
|
.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 up_lowinit /* Perform low level initialization */
|
||||||
.global os_start /* NuttX entry point */
|
.global os_start /* NuttX entry point */
|
||||||
|
|
||||||
@ -263,15 +264,14 @@ __do_clear_bss:
|
|||||||
* Heap Base
|
* Heap Base
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
/* This global variable is unsigned long g_heapbase and is
|
/* This global variable is unsigned long g_heapbase and is exported from
|
||||||
* exported from here only because of its coupling to other
|
* here only because of its coupling to other uses of _enoinit in this file
|
||||||
* uses of _ebss in this file
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
.data
|
.data
|
||||||
.globl g_heapbase
|
.globl g_heapbase
|
||||||
.type g_heapbase, object
|
.type g_heapbase, object
|
||||||
g_heapbase:
|
g_heapbase:
|
||||||
.word _ebss+CONFIG_IDLETHREAD_STACKSIZE
|
.word _enoinit+CONFIG_IDLETHREAD_STACKSIZE
|
||||||
.size g_heapbase, .-g_heapbase
|
.size g_heapbase, .-g_heapbase
|
||||||
.end
|
.end
|
||||||
|
@ -47,9 +47,9 @@
|
|||||||
* Pre-processor definitions
|
* 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.
|
/* 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
|
* 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 _sdata /* Start of .data section in RAM */
|
||||||
.global _edata /* End of .data section in RAM */
|
.global _edata /* End of .data section in RAM */
|
||||||
.global _eronly /* Start of .data section in FLASH */
|
.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 up_lowinit /* Perform low level initialization */
|
||||||
.global os_start /* NuttX entry point */
|
.global os_start /* NuttX entry point */
|
||||||
|
|
||||||
@ -257,15 +258,14 @@ __do_clear_bss:
|
|||||||
* Heap Base
|
* Heap Base
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
/* This global variable is unsigned long g_heapbase and is
|
/* This global variable is unsigned long g_heapbase and is exported from
|
||||||
* exported from here only because of its coupling to other
|
* here only because of its coupling to other uses of _enoinit in this file
|
||||||
* uses of _ebss in this file
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
.data
|
.data
|
||||||
.globl g_heapbase
|
.globl g_heapbase
|
||||||
.type g_heapbase, object
|
.type g_heapbase, object
|
||||||
g_heapbase:
|
g_heapbase:
|
||||||
.word _ebss+CONFIG_IDLETHREAD_STACKSIZE
|
.word _enoinit+CONFIG_IDLETHREAD_STACKSIZE
|
||||||
.size g_heapbase, .-g_heapbase
|
.size g_heapbase, .-g_heapbase
|
||||||
.end
|
.end
|
||||||
|
@ -181,7 +181,7 @@ void up_dumpstate(void)
|
|||||||
|
|
||||||
if (rtcb->pid == 0)
|
if (rtcb->pid == 0)
|
||||||
{
|
{
|
||||||
ustackbase = g_heapbase - 4;
|
ustackbase = g_heapbase - 1;
|
||||||
ustacksize = CONFIG_IDLETHREAD_STACKSIZE;
|
ustacksize = CONFIG_IDLETHREAD_STACKSIZE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -193,8 +193,8 @@ void up_dumpstate(void)
|
|||||||
/* Get the limits on the interrupt stack memory */
|
/* Get the limits on the interrupt stack memory */
|
||||||
|
|
||||||
#if CONFIG_ARCH_INTERRUPTSTACK > 0
|
#if CONFIG_ARCH_INTERRUPTSTACK > 0
|
||||||
istackbase = (uint16_t)&g_intstackbase;
|
istackbase = (uint16_t)&g_intstackbase - 1;
|
||||||
istacksize = (CONFIG_ARCH_INTERRUPTSTACK & ~3) - 4;
|
istacksize = CONFIG_ARCH_INTERRUPTSTACK;
|
||||||
|
|
||||||
/* Show interrupt stack info */
|
/* Show interrupt stack info */
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user