diff --git a/arch/arm/src/arm/up_assert.c b/arch/arm/src/arm/up_assert.c index d97aba5ea36..e5bf00d6ee3 100644 --- a/arch/arm/src/arm/up_assert.c +++ b/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/arch/arm/src/arm/up_head.S b/arch/arm/src/arm/up_head.S index 46efd877255..ef911d0b664 100644 --- a/arch/arm/src/arm/up_head.S +++ b/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/arch/arm/src/arm/up_nommuhead.S b/arch/arm/src/arm/up_nommuhead.S index aac95b73a42..e3f5a94e681 100644 --- a/arch/arm/src/arm/up_nommuhead.S +++ b/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/arch/arm/src/armv6-m/up_assert.c b/arch/arm/src/armv6-m/up_assert.c index 15ba1f53f76..de5e5f6a121 100644 --- a/arch/arm/src/armv6-m/up_assert.c +++ b/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/arch/arm/src/armv7-m/mpu.h b/arch/arm/src/armv7-m/mpu.h index 74bfe7a9ed7..7e2e6bb77c6 100644 --- a/arch/arm/src/armv7-m/mpu.h +++ b/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/arch/arm/src/armv7-m/up_assert.c b/arch/arm/src/armv7-m/up_assert.c index 394c6858f40..a4a58639cac 100644 --- a/arch/arm/src/armv7-m/up_assert.c +++ b/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/arch/arm/src/common/up_allocateheap.c b/arch/arm/src/common/up_allocateheap.c index 12cbfcfa8e8..617bffd2e3b 100644 --- a/arch/arm/src/common/up_allocateheap.c +++ b/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/arch/arm/src/common/up_internal.h b/arch/arm/src/common/up_internal.h index 6e874b2cab2..1a7c1e304c5 100644 --- a/arch/arm/src/common/up_internal.h +++ b/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/arch/arm/src/dm320/dm320_allocateheap.c b/arch/arm/src/dm320/dm320_allocateheap.c index 1383b93dae0..27a7e7a90d1 100644 --- a/arch/arm/src/dm320/dm320_allocateheap.c +++ b/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/arch/arm/src/imx/imx_allocateheap.c b/arch/arm/src/imx/imx_allocateheap.c index 37b05eb7f50..f94a7fe4443 100644 --- a/arch/arm/src/imx/imx_allocateheap.c +++ b/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/arch/arm/src/kinetis/kinetis_vectors.S b/arch/arm/src/kinetis/kinetis_vectors.S index 7fa223615b5..11ac46221bd 100644 --- a/arch/arm/src/kinetis/kinetis_vectors.S +++ b/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/arch/arm/src/lm/lm_vectors.S b/arch/arm/src/lm/lm_vectors.S index 1d3553b4e1f..0f4300065ce 100644 --- a/arch/arm/src/lm/lm_vectors.S +++ b/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/arch/arm/src/lpc17xx/lpc17_allocateheap.c b/arch/arm/src/lpc17xx/lpc17_allocateheap.c index f316570f55f..047edf5e310 100644 --- a/arch/arm/src/lpc17xx/lpc17_allocateheap.c +++ b/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/arch/arm/src/lpc17xx/lpc17_vectors.S b/arch/arm/src/lpc17xx/lpc17_vectors.S index 25d2e7f193e..eca382b1b1c 100644 --- a/arch/arm/src/lpc17xx/lpc17_vectors.S +++ b/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/arch/arm/src/lpc214x/lpc214x_head.S b/arch/arm/src/lpc214x/lpc214x_head.S index 6784811545c..ea2ea12207c 100644 --- a/arch/arm/src/lpc214x/lpc214x_head.S +++ b/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/arch/arm/src/lpc2378/lpc23xx_head.S b/arch/arm/src/lpc2378/lpc23xx_head.S index a4cab8f05d9..578b777534a 100755 --- a/arch/arm/src/lpc2378/lpc23xx_head.S +++ b/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/arch/arm/src/lpc31xx/lpc31_allocateheap.c b/arch/arm/src/lpc31xx/lpc31_allocateheap.c index f57c343ef97..7c2c8696ab9 100644 --- a/arch/arm/src/lpc31xx/lpc31_allocateheap.c +++ b/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/arch/arm/src/lpc43xx/lpc43_allocateheap.c b/arch/arm/src/lpc43xx/lpc43_allocateheap.c index c33f9f1edef..4d9d7b21c84 100644 --- a/arch/arm/src/lpc43xx/lpc43_allocateheap.c +++ b/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/arch/arm/src/nuc1xx/nuc_start.c b/arch/arm/src/nuc1xx/nuc_start.c index 67c06c7a5ff..fa5f249a3f3 100644 --- a/arch/arm/src/nuc1xx/nuc_start.c +++ b/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/arch/arm/src/sam3u/sam3u_allocateheap.c b/arch/arm/src/sam3u/sam3u_allocateheap.c index 86d5fbf3687..576fae8023a 100644 --- a/arch/arm/src/sam3u/sam3u_allocateheap.c +++ b/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/arch/arm/src/sam3u/sam3u_vectors.S b/arch/arm/src/sam3u/sam3u_vectors.S index ec0287e3439..eba6edd3ae0 100644 --- a/arch/arm/src/sam3u/sam3u_vectors.S +++ b/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/arch/arm/src/stm32/stm32_allocateheap.c b/arch/arm/src/stm32/stm32_allocateheap.c index 149de864891..6a29fb16c7b 100644 --- a/arch/arm/src/stm32/stm32_allocateheap.c +++ b/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/arch/arm/src/stm32/stm32_vectors.S b/arch/arm/src/stm32/stm32_vectors.S index ab29c2e144d..6b9c0affe93 100644 --- a/arch/arm/src/stm32/stm32_vectors.S +++ b/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/arch/arm/src/str71x/str71x_head.S b/arch/arm/src/str71x/str71x_head.S index e83affa3747..710fd57a58c 100644 --- a/arch/arm/src/str71x/str71x_head.S +++ b/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/arch/avr/src/at90usb/at90usb_head.S b/arch/avr/src/at90usb/at90usb_head.S index be747632b76..1e705ba713d 100755 --- a/arch/avr/src/at90usb/at90usb_head.S +++ b/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/arch/avr/src/atmega/atmega_head.S b/arch/avr/src/atmega/atmega_head.S index 95de2f100cf..89c3cd1f9c7 100755 --- a/arch/avr/src/atmega/atmega_head.S +++ b/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/arch/avr/src/avr/avr_internal.h b/arch/avr/src/avr/avr_internal.h index 031000cd197..2c78791e404 100644 --- a/arch/avr/src/avr/avr_internal.h +++ b/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/arch/avr/src/avr/up_dumpstate.c b/arch/avr/src/avr/up_dumpstate.c index 62e80255fcf..6ba50d2381c 100644 --- a/arch/avr/src/avr/up_dumpstate.c +++ b/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/arch/avr/src/avr32/avr32_internal.h b/arch/avr/src/avr32/avr32_internal.h index 3d45f6c54dc..bcac8074abb 100644 --- a/arch/avr/src/avr32/avr32_internal.h +++ b/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/arch/avr/src/avr32/up_dumpstate.c b/arch/avr/src/avr32/up_dumpstate.c index 32db56f0d43..90cb2283777 100644 --- a/arch/avr/src/avr32/up_dumpstate.c +++ b/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/arch/avr/src/avr32/up_nommuhead.S b/arch/avr/src/avr32/up_nommuhead.S index 316e68aaff4..149b1f26fdc 100644 --- a/arch/avr/src/avr32/up_nommuhead.S +++ b/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/arch/avr/src/common/up_allocateheap.c b/arch/avr/src/common/up_allocateheap.c index 3a67ff6a742..3893e3a2d97 100644 --- a/arch/avr/src/common/up_allocateheap.c +++ b/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/arch/hc/src/common/up_allocateheap.c b/arch/hc/src/common/up_allocateheap.c index b107baaa539..f0c8f58a42b 100644 --- a/arch/hc/src/common/up_allocateheap.c +++ b/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/arch/hc/src/common/up_internal.h b/arch/hc/src/common/up_internal.h index 0de737fb62e..87503c56fbb 100644 --- a/arch/hc/src/common/up_internal.h +++ b/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/arch/hc/src/m9s12/m9s12_assert.c b/arch/hc/src/m9s12/m9s12_assert.c index 62ad33d2d12..9f97ec4dbf5 100644 --- a/arch/hc/src/m9s12/m9s12_assert.c +++ b/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/arch/hc/src/m9s12/m9s12_start.S b/arch/hc/src/m9s12/m9s12_start.S index 66c1b80f9a0..c79388030cb 100755 --- a/arch/hc/src/m9s12/m9s12_start.S +++ b/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/arch/mips/src/common/up_allocateheap.c b/arch/mips/src/common/up_allocateheap.c index b8c449ff127..f6dc5151118 100644 --- a/arch/mips/src/common/up_allocateheap.c +++ b/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/arch/mips/src/common/up_internal.h b/arch/mips/src/common/up_internal.h index 927538dea20..1950a74e6b6 100644 --- a/arch/mips/src/common/up_internal.h +++ b/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/arch/mips/src/mips32/up_dumpstate.c b/arch/mips/src/mips32/up_dumpstate.c index 064aa0681fe..bdd21726b98 100644 --- a/arch/mips/src/mips32/up_dumpstate.c +++ b/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/arch/mips/src/pic32mx/pic32mx-head.S b/arch/mips/src/pic32mx/pic32mx-head.S index 2e1a340805b..471effc3f2f 100644 --- a/arch/mips/src/pic32mx/pic32mx-head.S +++ b/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/arch/sh/src/common/up_allocateheap.c b/arch/sh/src/common/up_allocateheap.c index ad1935d9a5d..734a504837b 100644 --- a/arch/sh/src/common/up_allocateheap.c +++ b/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/arch/sh/src/common/up_internal.h b/arch/sh/src/common/up_internal.h index f56e97c976e..99c273ca6a8 100644 --- a/arch/sh/src/common/up_internal.h +++ b/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/arch/sh/src/m16c/chip.h b/arch/sh/src/m16c/chip.h index 0a91d6041e5..02140df790e 100644 --- a/arch/sh/src/m16c/chip.h +++ b/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/arch/sh/src/m16c/m16c_dumpstate.c b/arch/sh/src/m16c/m16c_dumpstate.c index 3570a9ebe87..8083f62bd1f 100644 --- a/arch/sh/src/m16c/m16c_dumpstate.c +++ b/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/arch/sh/src/m16c/m16c_head.S b/arch/sh/src/m16c/m16c_head.S index 4e6b0e2c83f..4709463139f 100644 --- a/arch/sh/src/m16c/m16c_head.S +++ b/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/arch/sh/src/sh1/sh1_dumpstate.c b/arch/sh/src/sh1/sh1_dumpstate.c index 3d101c92dd9..8990f661581 100644 --- a/arch/sh/src/sh1/sh1_dumpstate.c +++ b/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/arch/sh/src/sh1/sh1_head.S b/arch/sh/src/sh1/sh1_head.S index 9a52b9bb397..774d2278439 100644 --- a/arch/sh/src/sh1/sh1_head.S +++ b/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/arch/x86/src/common/up_allocateheap.c b/arch/x86/src/common/up_allocateheap.c index b56f9b59a0b..55f60f0566a 100644 --- a/arch/x86/src/common/up_allocateheap.c +++ b/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/arch/x86/src/common/up_assert.c b/arch/x86/src/common/up_assert.c index 173ca6623c0..ed83eb6ce52 100644 --- a/arch/x86/src/common/up_assert.c +++ b/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/arch/x86/src/common/up_internal.h b/arch/x86/src/common/up_internal.h index c27717c387d..3351e24c4f1 100644 --- a/arch/x86/src/common/up_internal.h +++ b/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/arch/x86/src/qemu/qemu_head.S b/arch/x86/src/qemu/qemu_head.S index 2b86c183547..22c4904695a 100755 --- a/arch/x86/src/qemu/qemu_head.S +++ b/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