summaryrefslogtreecommitdiff
path: root/nuttx/arch
diff options
context:
space:
mode:
Diffstat (limited to 'nuttx/arch')
-rw-r--r--nuttx/arch/arm/src/arm/up_assert.c2
-rw-r--r--nuttx/arch/arm/src/arm/up_head.S12
-rw-r--r--nuttx/arch/arm/src/arm/up_nommuhead.S12
-rw-r--r--nuttx/arch/arm/src/armv6-m/up_assert.c2
-rw-r--r--nuttx/arch/arm/src/armv7-m/mpu.h10
-rw-r--r--nuttx/arch/arm/src/armv7-m/up_assert.c2
-rw-r--r--nuttx/arch/arm/src/common/up_allocateheap.c4
-rw-r--r--nuttx/arch/arm/src/common/up_internal.h2
-rw-r--r--nuttx/arch/arm/src/dm320/dm320_allocateheap.c4
-rw-r--r--nuttx/arch/arm/src/imx/imx_allocateheap.c4
-rw-r--r--nuttx/arch/arm/src/kinetis/kinetis_vectors.S10
-rw-r--r--nuttx/arch/arm/src/lm/lm_vectors.S10
-rw-r--r--nuttx/arch/arm/src/lpc17xx/lpc17_allocateheap.c26
-rw-r--r--nuttx/arch/arm/src/lpc17xx/lpc17_vectors.S10
-rw-r--r--nuttx/arch/arm/src/lpc214x/lpc214x_head.S12
-rwxr-xr-xnuttx/arch/arm/src/lpc2378/lpc23xx_head.S12
-rw-r--r--nuttx/arch/arm/src/lpc31xx/lpc31_allocateheap.c4
-rw-r--r--nuttx/arch/arm/src/lpc43xx/lpc43_allocateheap.c8
-rw-r--r--nuttx/arch/arm/src/nuc1xx/nuc_start.c2
-rw-r--r--nuttx/arch/arm/src/sam3u/sam3u_allocateheap.c26
-rw-r--r--nuttx/arch/arm/src/sam3u/sam3u_vectors.S10
-rw-r--r--nuttx/arch/arm/src/stm32/stm32_allocateheap.c8
-rw-r--r--nuttx/arch/arm/src/stm32/stm32_vectors.S10
-rw-r--r--nuttx/arch/arm/src/str71x/str71x_head.S12
-rwxr-xr-xnuttx/arch/avr/src/at90usb/at90usb_head.S10
-rwxr-xr-xnuttx/arch/avr/src/atmega/atmega_head.S10
-rw-r--r--nuttx/arch/avr/src/avr/avr_internal.h2
-rw-r--r--nuttx/arch/avr/src/avr/up_dumpstate.c2
-rw-r--r--nuttx/arch/avr/src/avr32/avr32_internal.h2
-rw-r--r--nuttx/arch/avr/src/avr32/up_dumpstate.c2
-rw-r--r--nuttx/arch/avr/src/avr32/up_nommuhead.S10
-rw-r--r--nuttx/arch/avr/src/common/up_allocateheap.c4
-rw-r--r--nuttx/arch/hc/src/common/up_allocateheap.c4
-rw-r--r--nuttx/arch/hc/src/common/up_internal.h2
-rw-r--r--nuttx/arch/hc/src/m9s12/m9s12_assert.c2
-rwxr-xr-xnuttx/arch/hc/src/m9s12/m9s12_start.S12
-rw-r--r--nuttx/arch/mips/src/common/up_allocateheap.c4
-rw-r--r--nuttx/arch/mips/src/common/up_internal.h2
-rw-r--r--nuttx/arch/mips/src/mips32/up_dumpstate.c2
-rw-r--r--nuttx/arch/mips/src/pic32mx/pic32mx-head.S10
-rw-r--r--nuttx/arch/sh/src/common/up_allocateheap.c4
-rw-r--r--nuttx/arch/sh/src/common/up_internal.h2
-rw-r--r--nuttx/arch/sh/src/m16c/chip.h24
-rw-r--r--nuttx/arch/sh/src/m16c/m16c_dumpstate.c2
-rw-r--r--nuttx/arch/sh/src/m16c/m16c_head.S8
-rw-r--r--nuttx/arch/sh/src/sh1/sh1_dumpstate.c2
-rw-r--r--nuttx/arch/sh/src/sh1/sh1_head.S10
-rw-r--r--nuttx/arch/x86/src/common/up_allocateheap.c4
-rw-r--r--nuttx/arch/x86/src/common/up_assert.c2
-rw-r--r--nuttx/arch/x86/src/common/up_internal.h2
-rwxr-xr-xnuttx/arch/x86/src/qemu/qemu_head.S10
51 files changed, 190 insertions, 174 deletions
diff --git a/nuttx/arch/arm/src/arm/up_assert.c b/nuttx/arch/arm/src/arm/up_assert.c
index d97aba5ea..e5bf00d6e 100644
--- a/nuttx/arch/arm/src/arm/up_assert.c
+++ b/nuttx/arch/arm/src/arm/up_assert.c
@@ -174,7 +174,7 @@ static void up_dumpstate(void)
if (rtcb->pid == 0)
{
- ustackbase = g_heapbase - 4;
+ ustackbase = g_idle_topstack - 4;
ustacksize = CONFIG_IDLETHREAD_STACKSIZE;
}
else
diff --git a/nuttx/arch/arm/src/arm/up_head.S b/nuttx/arch/arm/src/arm/up_head.S
index 46efd8772..ef911d0b6 100644
--- a/nuttx/arch/arm/src/arm/up_head.S
+++ b/nuttx/arch/arm/src/arm/up_head.S
@@ -610,7 +610,7 @@ __start:
*
* The idle task stack starts at the end of BSS and is of size
* CONFIG_IDLETHREAD_STACKSIZE. The heap continues from there until the
- * end of memory. See g_heapbase below.
+ * end of memory. See g_idle_topstack below.
*/
.Linitparms:
@@ -645,17 +645,17 @@ __start:
/* Data section variables */
- /* This global variable is unsigned long g_heapbase and is
+ /* This global variable is unsigned long g_idle_topstack and is
* exported from here only because of its coupling to .Linitparms
* above.
*/
.data
.align 4
- .globl g_heapbase
- .type g_heapbase, object
-g_heapbase:
+ .globl g_idle_topstack
+ .type g_idle_topstack, object
+g_idle_topstack:
.long _ebss+CONFIG_IDLETHREAD_STACKSIZE
- .size g_heapbase, .-g_heapbase
+ .size g_idle_topstack, .-g_idle_topstack
.end
diff --git a/nuttx/arch/arm/src/arm/up_nommuhead.S b/nuttx/arch/arm/src/arm/up_nommuhead.S
index aac95b73a..e3f5a94e6 100644
--- a/nuttx/arch/arm/src/arm/up_nommuhead.S
+++ b/nuttx/arch/arm/src/arm/up_nommuhead.S
@@ -135,7 +135,7 @@ __start:
* _ebss is the end of the BSS regsion (see ld.script)
* The idle task stack starts at the end of BSS and is
* of size CONFIG_IDLETHREAD_STACKSIZE. The heap continues
- * from there until the end of memory. See g_heapbase
+ * from there until the end of memory. See g_idle_topstack
* below.
*/
@@ -150,18 +150,18 @@ LC2: .long _eronly /* Where .data defaults are stored in FLASH */
#endif
.size __start, .-__start
- /* This global variable is unsigned long g_heapbase and is
+ /* This global variable is unsigned long g_idle_topstack and is
* exported from here only because of its coupling to LCO
* above.
*/
.data
.align 4
- .globl g_heapbase
- .type g_heapbase, object
-g_heapbase:
+ .globl g_idle_topstack
+ .type g_idle_topstack, object
+g_idle_topstack:
.long _ebss+CONFIG_IDLETHREAD_STACKSIZE
- .size g_heapbase, .-g_heapbase
+ .size g_idle_topstack, .-g_idle_topstack
.end
diff --git a/nuttx/arch/arm/src/armv6-m/up_assert.c b/nuttx/arch/arm/src/armv6-m/up_assert.c
index 15ba1f53f..de5e5f6a1 100644
--- a/nuttx/arch/arm/src/armv6-m/up_assert.c
+++ b/nuttx/arch/arm/src/armv6-m/up_assert.c
@@ -181,7 +181,7 @@ static void up_dumpstate(void)
if (rtcb->pid == 0)
{
- ustackbase = g_heapbase - 4;
+ ustackbase = g_idle_topstack - 4;
ustacksize = CONFIG_IDLETHREAD_STACKSIZE;
}
else
diff --git a/nuttx/arch/arm/src/armv7-m/mpu.h b/nuttx/arch/arm/src/armv7-m/mpu.h
index 74bfe7a9e..7e2e6bb77 100644
--- a/nuttx/arch/arm/src/armv7-m/mpu.h
+++ b/nuttx/arch/arm/src/armv7-m/mpu.h
@@ -66,7 +66,7 @@
/* MPU Type Register Bit Definitions */
#define MPU_TYPE_SEPARATE (1 << 0) /* Bit 0: 0:unified or 1:separate memory maps */
-#define MPU_TYPE_DREGION_SHIFT (8) /* Bits 8-15: Number MPU data regsion */
+#define MPU_TYPE_DREGION_SHIFT (8) /* Bits 8-15: Number MPU data regions */
#define MPU_TYPE_DREGION_MASK (0xff << MPU_TYPE_DREGION_SHIFT)
#define MPU_TYPE_IREGION_SHIFT (16) /* Bits 16-23: Number MPU instruction regions */
#define MPU_TYPE_IREGION_MASK (0xff << MPU_TYPE_IREGION_SHIFT)
@@ -104,11 +104,11 @@
# define MPU_RASR_SRD_5 (0x20 << MPU_RASR_SRD_SHIFT)
# define MPU_RASR_SRD_6 (0x40 << MPU_RASR_SRD_SHIFT)
# define MPU_RASR_SRD_7 (0x80 << MPU_RASR_SRD_SHIFT)
-#define MPU_RASR_ATTR_SHIFT (21) /* Bits 19-21: TEX Address Permisson */
-#define MPU_RASR_ATTR__MASK (7 << MPU_RASR_ATTR_SHIFT)
-#define MPU_RASR_S (1 << 18) /* Bit 18: Shareable */
-#define MPU_RASR_C (1 << 17) /* Bit 17: Cacheable */
#define MPU_RASR_B (1 << 16) /* Bit 16: Bufferable */
+#define MPU_RASR_C (1 << 17) /* Bit 17: Cacheable */
+#define MPU_RASR_S (1 << 18) /* Bit 18: Shareable */
+#define MPU_RASR_ATTR_SHIFT (19) /* Bits 19-21: TEX Address Permisson */
+#define MPU_RASR_ATTR_MASK (7 << MPU_RASR_ATTR_SHIFT)
#define MPU_RASR_AP_SHIFT (24) /* Bits 24-26: Access permission */
#define MPU_RASR_AP_MASK (7 << MPU_RASR_AP_SHIFT)
# define MPU_RASR_AP_NONO (0 << MPU_RASR_AP_SHIFT) /* P:None U:None */
diff --git a/nuttx/arch/arm/src/armv7-m/up_assert.c b/nuttx/arch/arm/src/armv7-m/up_assert.c
index 394c6858f..a4a58639c 100644
--- a/nuttx/arch/arm/src/armv7-m/up_assert.c
+++ b/nuttx/arch/arm/src/armv7-m/up_assert.c
@@ -180,7 +180,7 @@ static void up_dumpstate(void)
if (rtcb->pid == 0)
{
- ustackbase = g_heapbase - 4;
+ ustackbase = g_idle_topstack - 4;
ustacksize = CONFIG_IDLETHREAD_STACKSIZE;
}
else
diff --git a/nuttx/arch/arm/src/common/up_allocateheap.c b/nuttx/arch/arm/src/common/up_allocateheap.c
index 12cbfcfa8..617bffd2e 100644
--- a/nuttx/arch/arm/src/common/up_allocateheap.c
+++ b/nuttx/arch/arm/src/common/up_allocateheap.c
@@ -82,6 +82,6 @@
void up_allocate_heap(FAR void **heap_start, size_t *heap_size)
{
up_ledon(LED_HEAPALLOCATE);
- *heap_start = (FAR void*)g_heapbase;
- *heap_size = CONFIG_DRAM_END - g_heapbase;
+ *heap_start = (FAR void*)g_idle_topstack;
+ *heap_size = CONFIG_DRAM_END - g_idle_topstack;
}
diff --git a/nuttx/arch/arm/src/common/up_internal.h b/nuttx/arch/arm/src/common/up_internal.h
index 6e874b2ca..1a7c1e304 100644
--- a/nuttx/arch/arm/src/common/up_internal.h
+++ b/nuttx/arch/arm/src/common/up_internal.h
@@ -166,7 +166,7 @@ extern volatile uint32_t *current_regs;
* CONFIG_DRAM_END
*/
-extern const uint32_t g_heapbase;
+extern const uint32_t g_idle_topstack;
/* Address of the saved user stack pointer */
diff --git a/nuttx/arch/arm/src/dm320/dm320_allocateheap.c b/nuttx/arch/arm/src/dm320/dm320_allocateheap.c
index 1383b93da..27a7e7a90 100644
--- a/nuttx/arch/arm/src/dm320/dm320_allocateheap.c
+++ b/nuttx/arch/arm/src/dm320/dm320_allocateheap.c
@@ -85,6 +85,6 @@
void up_allocate_heap(FAR void **heap_start, size_t *heap_size)
{
up_ledon(LED_HEAPALLOCATE);
- *heap_start = (FAR void*)g_heapbase;
- *heap_size = (DM320_SDRAM_VADDR + CONFIG_DRAM_SIZE) - g_heapbase;
+ *heap_start = (FAR void*)g_idle_topstack;
+ *heap_size = (DM320_SDRAM_VADDR + CONFIG_DRAM_SIZE) - g_idle_topstack;
}
diff --git a/nuttx/arch/arm/src/imx/imx_allocateheap.c b/nuttx/arch/arm/src/imx/imx_allocateheap.c
index 37b05eb7f..f94a7fe44 100644
--- a/nuttx/arch/arm/src/imx/imx_allocateheap.c
+++ b/nuttx/arch/arm/src/imx/imx_allocateheap.c
@@ -86,8 +86,8 @@
void up_allocate_heap(FAR void **heap_start, size_t *heap_size)
{
up_ledon(LED_HEAPALLOCATE);
- *heap_start = (FAR void*)g_heapbase;
- *heap_size = (IMX_SDRAM_VSECTION + CONFIG_DRAM_SIZE) - g_heapbase;
+ *heap_start = (FAR void*)g_idle_topstack;
+ *heap_size = (IMX_SDRAM_VSECTION + CONFIG_DRAM_SIZE) - g_idle_topstack;
}
/****************************************************************************
diff --git a/nuttx/arch/arm/src/kinetis/kinetis_vectors.S b/nuttx/arch/arm/src/kinetis/kinetis_vectors.S
index 7fa223615..11ac46221 100644
--- a/nuttx/arch/arm/src/kinetis/kinetis_vectors.S
+++ b/nuttx/arch/arm/src/kinetis/kinetis_vectors.S
@@ -738,13 +738,13 @@ g_intstackbase:
* and is of size CONFIG_IDLETHREAD_STACKSIZE. The IDLE thread is the thread that
* the system boots on and, eventually, becomes the idle, do nothing task that runs
* only when there is nothing else to run. The heap continues from there until the
- * end of memory. See g_heapbase below.
+ * end of memory. See g_idle_topstack below.
*/
- .globl g_heapbase
- .type g_heapbase, object
-g_heapbase:
+ .globl g_idle_topstack
+ .type g_idle_topstack, object
+g_idle_topstack:
.word HEAP_BASE
- .size g_heapbase, .-g_heapbase
+ .size g_idle_topstack, .-g_idle_topstack
.end
diff --git a/nuttx/arch/arm/src/lm/lm_vectors.S b/nuttx/arch/arm/src/lm/lm_vectors.S
index 1d3553b4e..0f4300065 100644
--- a/nuttx/arch/arm/src/lm/lm_vectors.S
+++ b/nuttx/arch/arm/src/lm/lm_vectors.S
@@ -336,13 +336,13 @@ g_intstackbase:
* and is of size CONFIG_IDLETHREAD_STACKSIZE. The IDLE thread is the thread that
* the system boots on and, eventually, becomes the idle, do nothing task that runs
* only when there is nothing else to run. The heap continues from there until the
- * end of memory. See g_heapbase below.
+ * end of memory. See g_idle_topstack below.
*/
- .globl g_heapbase
- .type g_heapbase, object
-g_heapbase:
+ .globl g_idle_topstack
+ .type g_idle_topstack, object
+g_idle_topstack:
.long _ebss+CONFIG_IDLETHREAD_STACKSIZE
- .size g_heapbase, .-g_heapbase
+ .size g_idle_topstack, .-g_idle_topstack
.end
diff --git a/nuttx/arch/arm/src/lpc17xx/lpc17_allocateheap.c b/nuttx/arch/arm/src/lpc17xx/lpc17_allocateheap.c
index f316570f5..047edf5e3 100644
--- a/nuttx/arch/arm/src/lpc17xx/lpc17_allocateheap.c
+++ b/nuttx/arch/arm/src/lpc17xx/lpc17_allocateheap.c
@@ -198,9 +198,12 @@
void up_allocate_heap(FAR void **heap_start, size_t *heap_size)
{
#if defined(CONFIG_NUTTX_KERNEL) && defined(CONFIG_MM_KERNEL_HEAP)
- /* Get the unaligned size of the user-space heap */
+ /* Get the unaligned size and position of the user-space heap.
+ * This heap begins after the user-space .bss section at an offset
+ * of CONFIG_MM_KERNEL_HEAPSIZE (subject to alignment).
+ */
- uintptr_t ubase = (uintptr_t)g_heapbase + CONFIG_MM_KERNEL_HEAPSIZE;
+ uintptr_t ubase = (uintptr_t)USERSPACE->us_bssend + CONFIG_MM_KERNEL_HEAPSIZE;
size_t usize = CONFIG_DRAM_END - ubase;
int log2;
@@ -231,8 +234,8 @@ void up_allocate_heap(FAR void **heap_start, size_t *heap_size)
/* Return the heap settings */
up_ledon(LED_HEAPALLOCATE);
- *heap_start = (FAR void*)g_heapbase;
- *heap_size = CONFIG_DRAM_END - g_heapbase;
+ *heap_start = (FAR void*)g_idle_topstack;
+ *heap_size = CONFIG_DRAM_END - g_idle_topstack;
#endif
}
@@ -249,9 +252,12 @@ void up_allocate_heap(FAR void **heap_start, size_t *heap_size)
#if defined(CONFIG_NUTTX_KERNEL) && defined(CONFIG_MM_KERNEL_HEAP)
void up_allocate_kheap(FAR void **heap_start, size_t *heap_size)
{
- /* Get the unaligned size of the user-space heap */
+ /* Get the unaligned size and position of the user-space heap.
+ * This heap begins after the user-space .bss section at an offset
+ * of CONFIG_MM_KERNEL_HEAPSIZE (subject to alignment).
+ */
- uintptr_t ubase = (uintptr_t)g_heapbase + CONFIG_MM_KERNEL_HEAPSIZE;
+ uintptr_t ubase = (uintptr_t)USERSPACE->us_bssend + CONFIG_MM_KERNEL_HEAPSIZE;
size_t usize = CONFIG_DRAM_END - ubase;
int log2;
@@ -268,10 +274,12 @@ void up_allocate_kheap(FAR void **heap_start, size_t *heap_size)
usize = (1 << log2);
ubase = CONFIG_DRAM_END - usize;
- /* Return the kernel heap settings */
+ /* Return the kernel heap settings (i.e., the part of the heap region
+ * that was not dedicated to the user heap).
+ */
- *heap_start = (FAR void*)g_heapbase;
- *heap_size = ubase - (uintptr_t)g_heapbase;
+ *heap_start = (FAR void*)USERSPACE->us_bssend;
+ *heap_size = ubase - (uintptr_t)USERSPACE->us_bssend;
}
#endif
diff --git a/nuttx/arch/arm/src/lpc17xx/lpc17_vectors.S b/nuttx/arch/arm/src/lpc17xx/lpc17_vectors.S
index 25d2e7f19..eca382b1b 100644
--- a/nuttx/arch/arm/src/lpc17xx/lpc17_vectors.S
+++ b/nuttx/arch/arm/src/lpc17xx/lpc17_vectors.S
@@ -417,13 +417,13 @@ g_intstackbase:
* and is of size CONFIG_IDLETHREAD_STACKSIZE. The IDLE thread is the thread that
* the system boots on and, eventually, becomes the idle, do nothing task that runs
* only when there is nothing else to run. The heap continues from there until the
- * end of memory. See g_heapbase below.
+ * end of memory. See g_idle_topstack below.
*/
- .globl g_heapbase
- .type g_heapbase, object
-g_heapbase:
+ .globl g_idle_topstack
+ .type g_idle_topstack, object
+g_idle_topstack:
.word HEAP_BASE
- .size g_heapbase, .-g_heapbase
+ .size g_idle_topstack, .-g_idle_topstack
.end
diff --git a/nuttx/arch/arm/src/lpc214x/lpc214x_head.S b/nuttx/arch/arm/src/lpc214x/lpc214x_head.S
index 678481154..ea2ea1220 100644
--- a/nuttx/arch/arm/src/lpc214x/lpc214x_head.S
+++ b/nuttx/arch/arm/src/lpc214x/lpc214x_head.S
@@ -604,7 +604,7 @@ __start:
* _ebss is the end of the BSS regsion (see ld.script)
* The idle task stack starts at the end of BSS and is
* of size CONFIG_IDLETHREAD_STACKSIZE. The heap continues
- * from there until the end of memory. See g_heapbase
+ * from there until the end of memory. See g_idle_topstack
* below.
*/
@@ -617,18 +617,18 @@ LC2: .long _eronly /* Where .data defaults are stored in FLASH */
.long _edata
.size __start, .-__start
- /* This global variable is unsigned long g_heapbase and is
+ /* This global variable is unsigned long g_idle_topstack and is
* exported from here only because of its coupling to LCO
* above.
*/
.data
.align 4
- .globl g_heapbase
- .type g_heapbase, object
-g_heapbase:
+ .globl g_idle_topstack
+ .type g_idle_topstack, object
+g_idle_topstack:
.long _ebss+CONFIG_IDLETHREAD_STACKSIZE
- .size g_heapbase, .-g_heapbase
+ .size g_idle_topstack, .-g_idle_topstack
.end
diff --git a/nuttx/arch/arm/src/lpc2378/lpc23xx_head.S b/nuttx/arch/arm/src/lpc2378/lpc23xx_head.S
index a4cab8f05..578b77753 100755
--- a/nuttx/arch/arm/src/lpc2378/lpc23xx_head.S
+++ b/nuttx/arch/arm/src/lpc2378/lpc23xx_head.S
@@ -204,7 +204,7 @@ __start:
* _ebss is the end of the BSS regsion (see ld.script)
* The idle task stack starts at the end of BSS and is
* of size CONFIG_IDLETHREAD_STACKSIZE. The heap continues
- * from there until the end of memory. See g_heapbase
+ * from there until the end of memory. See g_idle_topstack
* below.
*/
@@ -217,18 +217,18 @@ LC2: .long _eronly /* Where .data defaults are stored in FLASH */
.long _edata
.size __start, .-__start
- /* This global variable is unsigned long g_heapbase and is
+ /* This global variable is unsigned long g_idle_topstack and is
* exported from here only because of its coupling to LCO
* above.
*/
.data
.align 4
- .globl g_heapbase
- .type g_heapbase, object
-g_heapbase:
+ .globl g_idle_topstack
+ .type g_idle_topstack, object
+g_idle_topstack:
.long _ebss+CONFIG_IDLETHREAD_STACKSIZE
- .size g_heapbase, .-g_heapbase
+ .size g_idle_topstack, .-g_idle_topstack
.end
diff --git a/nuttx/arch/arm/src/lpc31xx/lpc31_allocateheap.c b/nuttx/arch/arm/src/lpc31xx/lpc31_allocateheap.c
index f57c343ef..7c2c8696a 100644
--- a/nuttx/arch/arm/src/lpc31xx/lpc31_allocateheap.c
+++ b/nuttx/arch/arm/src/lpc31xx/lpc31_allocateheap.c
@@ -180,8 +180,8 @@
void up_allocate_heap(FAR void **heap_start, size_t *heap_size)
{
up_ledon(LED_HEAPALLOCATE);
- *heap_start = (FAR void*)g_heapbase;
- *heap_size = LPC31_HEAP_VEND - g_heapbase;
+ *heap_start = (FAR void*)g_idle_topstack;
+ *heap_size = LPC31_HEAP_VEND - g_idle_topstack;
}
/************************************************************************
diff --git a/nuttx/arch/arm/src/lpc43xx/lpc43_allocateheap.c b/nuttx/arch/arm/src/lpc43xx/lpc43_allocateheap.c
index c33f9f1ed..4d9d7b21c 100644
--- a/nuttx/arch/arm/src/lpc43xx/lpc43_allocateheap.c
+++ b/nuttx/arch/arm/src/lpc43xx/lpc43_allocateheap.c
@@ -211,10 +211,10 @@
* thread is the thread that the system boots on and, eventually, becomes the
* idle, do nothing task that runs only when there is nothing else to run.
* The heap continues from there until the configured end of memory.
- * g_heapbase is the beginning of this heap region (not necessarily aligned).
+ * g_idle_topstack is the beginning of this heap region (not necessarily aligned).
*/
-const uint32_t g_heapbase = (uint32_t)&_ebss + CONFIG_IDLETHREAD_STACKSIZE;
+const uint32_t g_idle_topstack = (uint32_t)&_ebss + CONFIG_IDLETHREAD_STACKSIZE;
/****************************************************************************
* Private Functions
@@ -244,8 +244,8 @@ void up_allocate_heap(FAR void **heap_start, size_t *heap_size)
/* Start with the first SRAM region */
up_ledon(LED_HEAPALLOCATE);
- *heap_start = (FAR void*)g_heapbase;
- *heap_size = CONFIG_DRAM_END - g_heapbase;
+ *heap_start = (FAR void*)g_idle_topstack;
+ *heap_size = CONFIG_DRAM_END - g_idle_topstack;
}
/************************************************************************
diff --git a/nuttx/arch/arm/src/nuc1xx/nuc_start.c b/nuttx/arch/arm/src/nuc1xx/nuc_start.c
index 67c06c7a5..fa5f249a3 100644
--- a/nuttx/arch/arm/src/nuc1xx/nuc_start.c
+++ b/nuttx/arch/arm/src/nuc1xx/nuc_start.c
@@ -77,7 +77,7 @@
* Public Data
****************************************************************************/
-const uint32_t g_heapbase = HEAP_BASE;
+const uint32_t g_idle_topstack = HEAP_BASE;
/****************************************************************************
* Private Functions
diff --git a/nuttx/arch/arm/src/sam3u/sam3u_allocateheap.c b/nuttx/arch/arm/src/sam3u/sam3u_allocateheap.c
index 86d5fbf36..576fae802 100644
--- a/nuttx/arch/arm/src/sam3u/sam3u_allocateheap.c
+++ b/nuttx/arch/arm/src/sam3u/sam3u_allocateheap.c
@@ -109,9 +109,12 @@
void up_allocate_heap(FAR void **heap_start, size_t *heap_size)
{
#if defined(CONFIG_NUTTX_KERNEL) && defined(CONFIG_MM_KERNEL_HEAP)
- /* Get the unaligned size of the user-space heap */
+ /* Get the unaligned size and position of the user-space heap.
+ * This heap begins after the user-space .bss section at an offset
+ * of CONFIG_MM_KERNEL_HEAPSIZE (subject to alignment).
+ */
- uintptr_t ubase = (uintptr_t)g_heapbase + CONFIG_MM_KERNEL_HEAPSIZE;
+ uintptr_t ubase = (uintptr_t)USERSPACE->us_bssend + CONFIG_MM_KERNEL_HEAPSIZE;
size_t usize = CONFIG_DRAM_END - ubase;
int log2;
@@ -142,8 +145,8 @@ void up_allocate_heap(FAR void **heap_start, size_t *heap_size)
/* Return the heap settings */
up_ledon(LED_HEAPALLOCATE);
- *heap_start = (FAR void*)g_heapbase;
- *heap_size = CONFIG_DRAM_END - g_heapbase;
+ *heap_start = (FAR void*)g_idle_topstack;
+ *heap_size = CONFIG_DRAM_END - g_idle_topstack;
#endif
}
@@ -160,9 +163,12 @@ void up_allocate_heap(FAR void **heap_start, size_t *heap_size)
#if defined(CONFIG_NUTTX_KERNEL) && defined(CONFIG_MM_KERNEL_HEAP)
void up_allocate_kheap(FAR void **heap_start, size_t *heap_size)
{
- /* Get the unaligned size of the user-space heap */
+ /* Get the unaligned size and position of the user-space heap.
+ * This heap begins after the user-space .bss section at an offset
+ * of CONFIG_MM_KERNEL_HEAPSIZE (subject to alignment).
+ */
- uintptr_t ubase = (uintptr_t)g_heapbase + CONFIG_MM_KERNEL_HEAPSIZE;
+ uintptr_t ubase = (uintptr_t)USERSPACE->us_bssend + CONFIG_MM_KERNEL_HEAPSIZE;
size_t usize = CONFIG_DRAM_END - ubase;
int log2;
@@ -179,10 +185,12 @@ void up_allocate_kheap(FAR void **heap_start, size_t *heap_size)
usize = (1 << log2);
ubase = CONFIG_DRAM_END - usize;
- /* Return the kernel heap settings */
+ /* Return the kernel heap settings (i.e., the part of the heap region
+ * that was not dedicated to the user heap).
+ */
- *heap_start = (FAR void*)g_heapbase;
- *heap_size = ubase - (uintptr_t)g_heapbase;
+ *heap_start = (FAR void*)USERSPACE->us_bssend;
+ *heap_size = ubase - (uintptr_t)USERSPACE->us_bssend;
}
#endif
diff --git a/nuttx/arch/arm/src/sam3u/sam3u_vectors.S b/nuttx/arch/arm/src/sam3u/sam3u_vectors.S
index ec0287e34..eba6edd3a 100644
--- a/nuttx/arch/arm/src/sam3u/sam3u_vectors.S
+++ b/nuttx/arch/arm/src/sam3u/sam3u_vectors.S
@@ -443,13 +443,13 @@ g_intstackbase:
* and is of size CONFIG_IDLETHREAD_STACKSIZE. The IDLE thread is the thread that
* the system boots on and, eventually, becomes the idle, do nothing task that runs
* only when there is nothing else to run. The heap continues from there until the
- * end of memory. See g_heapbase below.
+ * end of memory. See g_idle_topstack below.
*/
- .globl g_heapbase
- .type g_heapbase, object
-g_heapbase:
+ .globl g_idle_topstack
+ .type g_idle_topstack, object
+g_idle_topstack:
.word HEAP_BASE
- .size g_heapbase, .-g_heapbase
+ .size g_idle_topstack, .-g_idle_topstack
.end
diff --git a/nuttx/arch/arm/src/stm32/stm32_allocateheap.c b/nuttx/arch/arm/src/stm32/stm32_allocateheap.c
index 149de8648..6a29fb16c 100644
--- a/nuttx/arch/arm/src/stm32/stm32_allocateheap.c
+++ b/nuttx/arch/arm/src/stm32/stm32_allocateheap.c
@@ -88,7 +88,7 @@
#endif
/* For the STM312F10xxx family, all internal SRAM is in one contiguous block
- * starting at g_heapbase and extending through CONFIG_DRAM_END (my apologies for
+ * starting at g_idle_topstack and extending through CONFIG_DRAM_END (my apologies for
* the bad naming). In addition, external FSMC SRAM may be available.
*/
@@ -198,7 +198,7 @@
*
* 3) 64Kb of CCM SRAM beginning at address 0x1000:0000
*
- * As determined by ld.script, g_heapbase lies in the 112Kb memory
+ * As determined by ld.script, g_idle_topstack lies in the 112Kb memory
* region and that extends to 0x2001:0000. But the first and second memory
* regions are contiguous and treated as one in this logic that extends to
* 0x2002:0000.
@@ -370,8 +370,8 @@
void up_allocate_heap(FAR void **heap_start, size_t *heap_size)
{
up_ledon(LED_HEAPALLOCATE);
- *heap_start = (FAR void*)g_heapbase;
- *heap_size = SRAM1_END - g_heapbase;
+ *heap_start = (FAR void*)g_idle_topstack;
+ *heap_size = SRAM1_END - g_idle_topstack;
}
/****************************************************************************
diff --git a/nuttx/arch/arm/src/stm32/stm32_vectors.S b/nuttx/arch/arm/src/stm32/stm32_vectors.S
index ab29c2e14..6b9c0affe 100644
--- a/nuttx/arch/arm/src/stm32/stm32_vectors.S
+++ b/nuttx/arch/arm/src/stm32/stm32_vectors.S
@@ -426,14 +426,14 @@ g_intstackbase:
* and is of size CONFIG_IDLETHREAD_STACKSIZE. The IDLE thread is the thread that
* the system boots on and, eventually, becomes the idle, do nothing task that runs
* only when there is nothing else to run. The heap continues from there until the
- * end of memory. See g_heapbase below.
+ * end of memory. See g_idle_topstack below.
*/
- .globl g_heapbase
- .type g_heapbase, object
-g_heapbase:
+ .globl g_idle_topstack
+ .type g_idle_topstack, object
+g_idle_topstack:
.long _ebss+CONFIG_IDLETHREAD_STACKSIZE
- .size g_heapbase, .-g_heapbase
+ .size g_idle_topstack, .-g_idle_topstack
.end
diff --git a/nuttx/arch/arm/src/str71x/str71x_head.S b/nuttx/arch/arm/src/str71x/str71x_head.S
index e83affa37..710fd57a5 100644
--- a/nuttx/arch/arm/src/str71x/str71x_head.S
+++ b/nuttx/arch/arm/src/str71x/str71x_head.S
@@ -599,7 +599,7 @@ dtor_end:
* _ebss is the end of the BSS regsion (see ld.script)
* The idle task stack starts at the end of BSS and is
* of size CONFIG_IDLETHREAD_STACKSIZE. The heap continues
- * from there until the end of memory. See g_heapbase
+ * from there until the end of memory. See g_idle_topstack
* below.
*/
@@ -612,18 +612,18 @@ LC2: .long _eronly /* Where .data defaults are stored in FLASH */
.long _edata
.size __start, .-__start
- /* This global variable is unsigned long g_heapbase and is
+ /* This global variable is unsigned long g_idle_topstack and is
* exported from here only because of its coupling to LCO
* above.
*/
.data
.align 4
- .globl g_heapbase
- .type g_heapbase, object
-g_heapbase:
+ .globl g_idle_topstack
+ .type g_idle_topstack, object
+g_idle_topstack:
.long _ebss+CONFIG_IDLETHREAD_STACKSIZE
- .size g_heapbase, .-g_heapbase
+ .size g_idle_topstack, .-g_idle_topstack
.end
diff --git a/nuttx/arch/avr/src/at90usb/at90usb_head.S b/nuttx/arch/avr/src/at90usb/at90usb_head.S
index be747632b..1e705ba71 100755
--- a/nuttx/arch/avr/src/at90usb/at90usb_head.S
+++ b/nuttx/arch/avr/src/at90usb/at90usb_head.S
@@ -266,14 +266,14 @@ __do_clear_bss:
* Heap Base
****************************************************************************/
- /* This global variable is unsigned long g_heapbase and is exported from
+ /* This global variable is unsigned long g_idle_topstack 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:
+ .globl g_idle_topstack
+ .type g_idle_topstack, object
+g_idle_topstack:
.word _enoinit+CONFIG_IDLETHREAD_STACKSIZE
- .size g_heapbase, .-g_heapbase
+ .size g_idle_topstack, .-g_idle_topstack
.end
diff --git a/nuttx/arch/avr/src/atmega/atmega_head.S b/nuttx/arch/avr/src/atmega/atmega_head.S
index 95de2f100..89c3cd1f9 100755
--- a/nuttx/arch/avr/src/atmega/atmega_head.S
+++ b/nuttx/arch/avr/src/atmega/atmega_head.S
@@ -260,14 +260,14 @@ __do_clear_bss:
* Heap Base
****************************************************************************/
- /* This global variable is unsigned long g_heapbase and is exported from
+ /* This global variable is unsigned long g_idle_topstack 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:
+ .globl g_idle_topstack
+ .type g_idle_topstack, object
+g_idle_topstack:
.word _enoinit+CONFIG_IDLETHREAD_STACKSIZE
- .size g_heapbase, .-g_heapbase
+ .size g_idle_topstack, .-g_idle_topstack
.end
diff --git a/nuttx/arch/avr/src/avr/avr_internal.h b/nuttx/arch/avr/src/avr/avr_internal.h
index 031000cd1..2c78791e4 100644
--- a/nuttx/arch/avr/src/avr/avr_internal.h
+++ b/nuttx/arch/avr/src/avr/avr_internal.h
@@ -81,7 +81,7 @@ extern volatile uint8_t *current_regs;
* heap is CONFIG_DRAM_END
*/
-extern uint16_t g_heapbase;
+extern uint16_t g_idle_topstack;
#endif /* __ASSEMBLY__ */
diff --git a/nuttx/arch/avr/src/avr/up_dumpstate.c b/nuttx/arch/avr/src/avr/up_dumpstate.c
index 62e80255f..6ba50d238 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 - 1;
+ ustackbase = g_idle_topstack - 1;
ustacksize = CONFIG_IDLETHREAD_STACKSIZE;
}
else
diff --git a/nuttx/arch/avr/src/avr32/avr32_internal.h b/nuttx/arch/avr/src/avr32/avr32_internal.h
index 3d45f6c54..bcac8074a 100644
--- a/nuttx/arch/avr/src/avr32/avr32_internal.h
+++ b/nuttx/arch/avr/src/avr32/avr32_internal.h
@@ -79,7 +79,7 @@ extern volatile uint32_t *current_regs;
* heap is CONFIG_DRAM_END
*/
-extern uint32_t g_heapbase;
+extern uint32_t g_idle_topstack;
#endif /* __ASSEMBLY__ */
diff --git a/nuttx/arch/avr/src/avr32/up_dumpstate.c b/nuttx/arch/avr/src/avr32/up_dumpstate.c
index 32db56f0d..90cb22837 100644
--- a/nuttx/arch/avr/src/avr32/up_dumpstate.c
+++ b/nuttx/arch/avr/src/avr32/up_dumpstate.c
@@ -158,7 +158,7 @@ void up_dumpstate(void)
if (rtcb->pid == 0)
{
- ustackbase = g_heapbase - 4;
+ ustackbase = g_idle_topstack - 4;
ustacksize = CONFIG_IDLETHREAD_STACKSIZE;
}
else
diff --git a/nuttx/arch/avr/src/avr32/up_nommuhead.S b/nuttx/arch/avr/src/avr32/up_nommuhead.S
index 316e68aaf..149b1f26f 100644
--- a/nuttx/arch/avr/src/avr32/up_nommuhead.S
+++ b/nuttx/arch/avr/src/avr32/up_nommuhead.S
@@ -141,17 +141,17 @@ __start:
.word up_lowinit
.size __start, .-__start
- /* This global variable is unsigned long g_heapbase and is
+ /* This global variable is unsigned long g_idle_topstack and is
* exported from here only because of its coupling to other
* uses of _ebss in this file
*/
.data
.align 4
- .globl g_heapbase
- .type g_heapbase, object
-g_heapbase:
+ .globl g_idle_topstack
+ .type g_idle_topstack, object
+g_idle_topstack:
.long _ebss+CONFIG_IDLETHREAD_STACKSIZE
- .size g_heapbase, .-g_heapbase
+ .size g_idle_topstack, .-g_idle_topstack
.end
diff --git a/nuttx/arch/avr/src/common/up_allocateheap.c b/nuttx/arch/avr/src/common/up_allocateheap.c
index 3a67ff6a7..3893e3a2d 100644
--- a/nuttx/arch/avr/src/common/up_allocateheap.c
+++ b/nuttx/arch/avr/src/common/up_allocateheap.c
@@ -82,6 +82,6 @@
void up_allocate_heap(FAR void **heap_start, size_t *heap_size)
{
up_ledon(LED_HEAPALLOCATE);
- *heap_start = (FAR void*)g_heapbase;
- *heap_size = CONFIG_DRAM_END - g_heapbase;
+ *heap_start = (FAR void*)g_idle_topstack;
+ *heap_size = CONFIG_DRAM_END - g_idle_topstack;
}
diff --git a/nuttx/arch/hc/src/common/up_allocateheap.c b/nuttx/arch/hc/src/common/up_allocateheap.c
index b107baaa5..f0c8f58a4 100644
--- a/nuttx/arch/hc/src/common/up_allocateheap.c
+++ b/nuttx/arch/hc/src/common/up_allocateheap.c
@@ -81,6 +81,6 @@
void up_allocate_heap(FAR void **heap_start, size_t *heap_size)
{
up_ledon(LED_HEAPALLOCATE);
- *heap_start = (FAR void*)g_heapbase;
- *heap_size = CONFIG_DRAM_END - g_heapbase;
+ *heap_start = (FAR void*)g_idle_topstack;
+ *heap_size = CONFIG_DRAM_END - g_idle_topstack;
}
diff --git a/nuttx/arch/hc/src/common/up_internal.h b/nuttx/arch/hc/src/common/up_internal.h
index 0de737fb6..87503c56f 100644
--- a/nuttx/arch/hc/src/common/up_internal.h
+++ b/nuttx/arch/hc/src/common/up_internal.h
@@ -141,7 +141,7 @@ extern volatile uint8_t *current_regs;
* The end of the heap is CONFIG_DRAM_END
*/
-extern uint16_t g_heapbase;
+extern uint16_t g_idle_topstack;
/* Address of the saved user stack pointer */
diff --git a/nuttx/arch/hc/src/m9s12/m9s12_assert.c b/nuttx/arch/hc/src/m9s12/m9s12_assert.c
index 62ad33d2d..9f97ec4db 100644
--- a/nuttx/arch/hc/src/m9s12/m9s12_assert.c
+++ b/nuttx/arch/hc/src/m9s12/m9s12_assert.c
@@ -169,7 +169,7 @@ static void up_dumpstate(void)
if (rtcb->pid == 0)
{
- ustackbase = g_heapbase - 4;
+ ustackbase = g_idle_topstack - 4;
ustacksize = CONFIG_IDLETHREAD_STACKSIZE;
}
else
diff --git a/nuttx/arch/hc/src/m9s12/m9s12_start.S b/nuttx/arch/hc/src/m9s12/m9s12_start.S
index 66c1b80f9..c79388030 100755
--- a/nuttx/arch/hc/src/m9s12/m9s12_start.S
+++ b/nuttx/arch/hc/src/m9s12/m9s12_start.S
@@ -233,7 +233,7 @@ __start:
* _ebss is the end of the BSS regsion (see ld.script)
* The idle task stack starts at the end of BSS and is
* of size CONFIG_IDLETHREAD_STACKSIZE. The heap continues
- * from there until the end of memory. See g_heapbase
+ * from there until the end of memory. See g_idle_topstack
* below.
*/
@@ -262,12 +262,12 @@ __start:
* and is of size CONFIG_IDLETHREAD_STACKSIZE. The IDLE thread is the thread that
* the system boots on and, eventually, becomes the idle, do nothing task that runs
* only when there is nothing else to run. The heap continues from there until the
- * end of memory. See g_heapbase below.
+ * end of memory. See g_idle_topstack below.
*/
- .globl g_heapbase
- .type g_heapbase, object
-g_heapbase:
+ .globl g_idle_topstack
+ .type g_idle_topstack, object
+g_idle_topstack:
.hword _ebss+CONFIG_IDLETHREAD_STACKSIZE
- .size g_heapbase, .-g_heapbase
+ .size g_idle_topstack, .-g_idle_topstack
.end
diff --git a/nuttx/arch/mips/src/common/up_allocateheap.c b/nuttx/arch/mips/src/common/up_allocateheap.c
index b8c449ff1..f6dc51511 100644
--- a/nuttx/arch/mips/src/common/up_allocateheap.c
+++ b/nuttx/arch/mips/src/common/up_allocateheap.c
@@ -82,6 +82,6 @@
void up_allocate_heap(FAR void **heap_start, size_t *heap_size)
{
up_ledon(LED_HEAPALLOCATE);
- *heap_start = (FAR void*)g_heapbase;
- *heap_size = CONFIG_DRAM_END - g_heapbase;
+ *heap_start = (FAR void*)g_idle_topstack;
+ *heap_size = CONFIG_DRAM_END - g_idle_topstack;
}
diff --git a/nuttx/arch/mips/src/common/up_internal.h b/nuttx/arch/mips/src/common/up_internal.h
index 927538dea..1950a74e6 100644
--- a/nuttx/arch/mips/src/common/up_internal.h
+++ b/nuttx/arch/mips/src/common/up_internal.h
@@ -138,7 +138,7 @@ extern volatile uint32_t *current_regs;
* of the heap is CONFIG_DRAM_END
*/
-extern uint32_t g_heapbase;
+extern uint32_t g_idle_topstack;
/* Address of the saved user stack pointer */
diff --git a/nuttx/arch/mips/src/mips32/up_dumpstate.c b/nuttx/arch/mips/src/mips32/up_dumpstate.c
index 064aa0681..bdd21726b 100644
--- a/nuttx/arch/mips/src/mips32/up_dumpstate.c
+++ b/nuttx/arch/mips/src/mips32/up_dumpstate.c
@@ -167,7 +167,7 @@ void up_dumpstate(void)
if (rtcb->pid == 0)
{
- ustackbase = g_heapbase - 4;
+ ustackbase = g_idle_topstack - 4;
ustacksize = CONFIG_IDLETHREAD_STACKSIZE;
}
else
diff --git a/nuttx/arch/mips/src/pic32mx/pic32mx-head.S b/nuttx/arch/mips/src/pic32mx/pic32mx-head.S
index 2e1a34080..471effc3f 100644
--- a/nuttx/arch/mips/src/pic32mx/pic32mx-head.S
+++ b/nuttx/arch/mips/src/pic32mx/pic32mx-head.S
@@ -122,7 +122,7 @@
.global g_nestlevel
#endif
#endif
- .global g_heapbase
+ .global g_idle_topstack
/* Imported symbols */
@@ -698,13 +698,13 @@ g_nestlevel:
#endif
#endif
-/* This global variable is unsigned int g_heapbase and is exported here only
+/* This global variable is unsigned int g_idle_topstack and is exported here only
* because of its coupling to idle thread stack.
*/
.sdata
- .type g_heapbase, object
-g_heapbase:
+ .type g_idle_topstack, object
+g_idle_topstack:
.long PIC32MX_HEAP_BASE
- .size g_heapbase, .-g_heapbase
+ .size g_idle_topstack, .-g_idle_topstack
diff --git a/nuttx/arch/sh/src/common/up_allocateheap.c b/nuttx/arch/sh/src/common/up_allocateheap.c
index ad1935d9a..734a50483 100644
--- a/nuttx/arch/sh/src/common/up_allocateheap.c
+++ b/nuttx/arch/sh/src/common/up_allocateheap.c
@@ -81,6 +81,6 @@
void up_allocate_heap(FAR void **heap_start, size_t *heap_size)
{
up_ledon(LED_HEAPALLOCATE);
- *heap_start = (FAR void*)g_heapbase;
- *heap_size = CONFIG_DRAM_END - g_heapbase;
+ *heap_start = (FAR void*)g_idle_topstack;
+ *heap_size = CONFIG_DRAM_END - g_idle_topstack;
}
diff --git a/nuttx/arch/sh/src/common/up_internal.h b/nuttx/arch/sh/src/common/up_internal.h
index f56e97c97..99c273ca6 100644
--- a/nuttx/arch/sh/src/common/up_internal.h
+++ b/nuttx/arch/sh/src/common/up_internal.h
@@ -140,7 +140,7 @@ extern volatile uint32_t *current_regs;
* CONFIG_DRAM_END
*/
-extern uint32_t g_heapbase;
+extern uint32_t g_idle_topstack;
#endif
/****************************************************************************
diff --git a/nuttx/arch/sh/src/m16c/chip.h b/nuttx/arch/sh/src/m16c/chip.h
index 0a91d6041..02140df79 100644
--- a/nuttx/arch/sh/src/m16c/chip.h
+++ b/nuttx/arch/sh/src/m16c/chip.h
@@ -253,20 +253,20 @@
#ifndef __ASSEMBLY__
-extern uint16_t g_snbss; /* Start of near .bss */
-extern uint16_t g_enbss; /* End+1 of near .bss */
-extern uint16_t g_sndata; /* Start of near .data */
-extern uint16_t g_endata; /* End+1 of near .data */
-extern uint32_t g_enronly; /* Start of relocated read-only data in FLASH */
+extern uint16_t g_snbss; /* Start of near .bss */
+extern uint16_t g_enbss; /* End+1 of near .bss */
+extern uint16_t g_sndata; /* Start of near .data */
+extern uint16_t g_endata; /* End+1 of near .data */
+extern uint32_t g_enronly; /* Start of relocated read-only data in FLASH */
#ifdef CONFIG_M16C_HAVEFARRAM
- extern uint32_t g_sfbss; /* Start of far .bss */
- extern uint32_t g_efbss; /* End+1 of far .bss */
- extern uint32_t g_sfdata; /* Start of far .data */
- extern uint32_t g_efdata; /* End_1 of far .data */
- extern uint32_t g_efronly; /* Start of relocated read-only data in FLASH */
+ extern uint32_t g_sfbss; /* Start of far .bss */
+ extern uint32_t g_efbss; /* End+1 of far .bss */
+ extern uint32_t g_sfdata; /* Start of far .data */
+ extern uint32_t g_efdata; /* End_1 of far .data */
+ extern uint32_t g_efronly; /* Start of relocated read-only data in FLASH */
#endif
-extern uint32_t g_svarvect; /* Start of variable vectors */
-extern uint32_t g_heapbase; /* Start of the heap */
+extern uint32_t g_svarvect; /* Start of variable vectors */
+extern uint32_t g_idle_topstack; /* Start of the heap */
/* Address of the saved user stack pointer */
diff --git a/nuttx/arch/sh/src/m16c/m16c_dumpstate.c b/nuttx/arch/sh/src/m16c/m16c_dumpstate.c
index 3570a9ebe..8083f62bd 100644
--- a/nuttx/arch/sh/src/m16c/m16c_dumpstate.c
+++ b/nuttx/arch/sh/src/m16c/m16c_dumpstate.c
@@ -171,7 +171,7 @@ void up_dumpstate(void)
if (rtcb->pid == 0)
{
- ustackbase = g_heapbase - 1;
+ ustackbase = g_idle_topstack - 1;
ustacksize = CONFIG_IDLETHREAD_STACKSIZE;
}
else
diff --git a/nuttx/arch/sh/src/m16c/m16c_head.S b/nuttx/arch/sh/src/m16c/m16c_head.S
index 4e6b0e2c8..470946313 100644
--- a/nuttx/arch/sh/src/m16c/m16c_head.S
+++ b/nuttx/arch/sh/src/m16c/m16c_head.S
@@ -147,11 +147,11 @@ _g_svarvect:
.long _svarvect
.size _g_svarvect, .-_g_svarvect
- .globl _g_heapbase
- .type _g_heapbase, object
-_g_heapbase:
+ .globl _g_idle_topstack
+ .type _g_idle_topstack, object
+_g_idle_topstack:
.long _enbss+CONFIG_ARCH_INTERRUPTSTACK+CONFIG_IDLETHREAD_STACKSIZE
- .size _g_heapbase, .-_g_heapbase
+ .size _g_idle_topstack, .-_g_idle_topstack
/************************************************************************************
* Code
diff --git a/nuttx/arch/sh/src/sh1/sh1_dumpstate.c b/nuttx/arch/sh/src/sh1/sh1_dumpstate.c
index 3d101c92d..8990f6615 100644
--- a/nuttx/arch/sh/src/sh1/sh1_dumpstate.c
+++ b/nuttx/arch/sh/src/sh1/sh1_dumpstate.c
@@ -160,7 +160,7 @@ void up_dumpstate(void)
if (rtcb->pid == 0)
{
- ustackbase = g_heapbase - 4;
+ ustackbase = g_idle_topstack - 4;
ustacksize = CONFIG_IDLETHREAD_STACKSIZE;
}
else
diff --git a/nuttx/arch/sh/src/sh1/sh1_head.S b/nuttx/arch/sh/src/sh1/sh1_head.S
index 9a52b9bb3..774d22784 100644
--- a/nuttx/arch/sh/src/sh1/sh1_head.S
+++ b/nuttx/arch/sh/src/sh1/sh1_head.S
@@ -507,18 +507,18 @@ __start0:
.section .data
- /* This global variable is unsigned long g_heapbase and is
+ /* This global variable is unsigned long g_idle_topstack and is
* exported from here only because of its coupling to the stack
* above.
*/
.data
.align 4
- .globl _g_heapbase
- .type _g_heapbase, object
-_g_heapbase:
+ .globl _g_idle_topstack
+ .type _g_idle_topstack, object
+_g_idle_topstack:
.long _ebss+CONFIG_IDLETHREAD_STACKSIZE
- .size _g_heapbase, .-_g_heapbase
+ .size _g_idle_topstack, .-_g_idle_topstack
.end
diff --git a/nuttx/arch/x86/src/common/up_allocateheap.c b/nuttx/arch/x86/src/common/up_allocateheap.c
index b56f9b59a..55f60f056 100644
--- a/nuttx/arch/x86/src/common/up_allocateheap.c
+++ b/nuttx/arch/x86/src/common/up_allocateheap.c
@@ -82,6 +82,6 @@
void up_allocate_heap(FAR void **heap_start, size_t *heap_size)
{
up_ledon(LED_HEAPALLOCATE);
- *heap_start = (FAR void*)g_heapbase;
- *heap_size = CONFIG_DRAM_END - g_heapbase;
+ *heap_start = (FAR void*)g_idle_topstack;
+ *heap_size = CONFIG_DRAM_END - g_idle_topstack;
}
diff --git a/nuttx/arch/x86/src/common/up_assert.c b/nuttx/arch/x86/src/common/up_assert.c
index 173ca6623..ed83eb6ce 100644
--- a/nuttx/arch/x86/src/common/up_assert.c
+++ b/nuttx/arch/x86/src/common/up_assert.c
@@ -128,7 +128,7 @@ static void up_dumpstate(void)
if (rtcb->pid == 0)
{
- ustackbase = g_heapbase - 4;
+ ustackbase = g_idle_topstack - 4;
ustacksize = CONFIG_IDLETHREAD_STACKSIZE;
}
else
diff --git a/nuttx/arch/x86/src/common/up_internal.h b/nuttx/arch/x86/src/common/up_internal.h
index c27717c38..3351e24c4 100644
--- a/nuttx/arch/x86/src/common/up_internal.h
+++ b/nuttx/arch/x86/src/common/up_internal.h
@@ -140,7 +140,7 @@ extern volatile uint32_t *current_regs;
* heap is CONFIG_DRAM_END
*/
-extern uint32_t g_heapbase;
+extern uint32_t g_idle_topstack;
/* Address of the saved user stack pointer */
diff --git a/nuttx/arch/x86/src/qemu/qemu_head.S b/nuttx/arch/x86/src/qemu/qemu_head.S
index 2b86c1835..22c490469 100755
--- a/nuttx/arch/x86/src/qemu/qemu_head.S
+++ b/nuttx/arch/x86/src/qemu/qemu_head.S
@@ -50,7 +50,7 @@
* the end of BSS and is of size CONFIG_IDLETHREAD_STACKSIZE. The IDLE thread
* is the thread that the system boots on and, eventually, becomes the idle,
* do nothing task that runs only when there is nothing else to run. The
- * heap continues from there until the end of memory. See g_heapbase below.
+ * heap continues from there until the end of memory. See g_idle_topstack below.
*/
#define STACKBASE ((_ebss + 0x1f) & 0xffffffe0)
@@ -78,7 +78,7 @@
.global __start /* Making entry point visible to linker */
.global os_start /* os_start is defined elsewhere */
.global up_lowsetup /* up_lowsetup is defined elsewhere */
- .global g_heapbase /* The start of the heap */
+ .global g_idle_topstack /* The start of the heap */
/****************************************************************************
* .text
@@ -154,8 +154,8 @@ hang:
* until the end of memory.
*/
- .type g_heapbase, @object
-g_heapbase:
+ .type g_idle_topstack, @object
+g_idle_topstack:
.long _ebss
- .size g_heapbase, . - g_heapbase
+ .size g_idle_topstack, . - g_idle_topstack
.end