arch/risc-v: Make esp32 SoCs allocate idle stack after ebss
ESP32 SoC use a static allocated array as idle stack. To fit the existed idle stack allocation, make idle stack allocated from ebss for the whole esp32 series. Signed-off-by: Inochi Amaoto <inochiama@outlook.com>
This commit is contained in:
parent
64e008f65b
commit
f4a38c01df
@ -32,6 +32,7 @@
|
|||||||
#include <nuttx/board.h>
|
#include <nuttx/board.h>
|
||||||
#include <nuttx/mm/mm.h>
|
#include <nuttx/mm/mm.h>
|
||||||
|
|
||||||
|
#include "riscv_internal.h"
|
||||||
#include "rom/rom_layout.h"
|
#include "rom/rom_layout.h"
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
@ -74,13 +75,11 @@ void up_allocate_heap(void **heap_start, size_t *heap_size)
|
|||||||
* Check boards/risc-v/espressif.
|
* Check boards/risc-v/espressif.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
extern uint8_t _sheap[];
|
|
||||||
|
|
||||||
board_autoled_on(LED_HEAPALLOCATE);
|
board_autoled_on(LED_HEAPALLOCATE);
|
||||||
|
|
||||||
*heap_start = _sheap;
|
*heap_start = (void *)g_idle_topstack;
|
||||||
*heap_size = (uintptr_t)ets_rom_layout_p->dram0_rtos_reserved_start -
|
*heap_size = (uintptr_t)ets_rom_layout_p->dram0_rtos_reserved_start -
|
||||||
(uintptr_t)_sheap;
|
g_idle_topstack;
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
|
@ -26,6 +26,7 @@
|
|||||||
|
|
||||||
#include <arch/irq.h>
|
#include <arch/irq.h>
|
||||||
|
|
||||||
|
#include "riscv_internal.h"
|
||||||
#include "chip.h"
|
#include "chip.h"
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
@ -50,8 +51,9 @@ __start:
|
|||||||
|
|
||||||
/* Set stack pointer to the idle thread stack */
|
/* Set stack pointer to the idle thread stack */
|
||||||
|
|
||||||
lui sp, %hi(ESP_IDLESTACK_TOP)
|
la sp, _ebss
|
||||||
addi sp, sp, %lo(ESP_IDLESTACK_TOP)
|
li t0, SMP_STACK_SIZE
|
||||||
|
add sp, sp, t0
|
||||||
|
|
||||||
/* Set gp pointer */
|
/* Set gp pointer */
|
||||||
|
|
||||||
|
@ -33,14 +33,4 @@
|
|||||||
* Pre-processor Definitions
|
* Pre-processor Definitions
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
/* Idle thread stack starts from _ebss */
|
|
||||||
|
|
||||||
#ifndef __ASSEMBLY__
|
|
||||||
#define ESP_IDLESTACK_BASE (uint32_t)&g_idlestack
|
|
||||||
#else
|
|
||||||
#define ESP_IDLESTACK_BASE g_idlestack
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define ESP_IDLESTACK_TOP (ESP_IDLESTACK_BASE + SMP_STACK_SIZE)
|
|
||||||
|
|
||||||
#endif /* __ARCH_RISCV_SRC_COMMON_ESPRESSIF_ESP_MEMORYMAP_H */
|
#endif /* __ARCH_RISCV_SRC_COMMON_ESPRESSIF_ESP_MEMORYMAP_H */
|
||||||
|
@ -174,11 +174,7 @@ HDR_ATTR static void (*_entry_point)(void) = __start;
|
|||||||
* Public Data
|
* Public Data
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
/* Address of the IDLE thread */
|
uintptr_t g_idle_topstack = (uintptr_t)_ebss + SMP_STACK_SIZE;
|
||||||
|
|
||||||
uint8_t g_idlestack[SMP_STACK_SIZE]
|
|
||||||
aligned_data(16) locate_data(".noinit");
|
|
||||||
uintptr_t g_idle_topstack = ESP_IDLESTACK_TOP;
|
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Private Functions
|
* Private Functions
|
||||||
@ -461,7 +457,7 @@ void __esp_start(void)
|
|||||||
|
|
||||||
/* Setup base stack */
|
/* Setup base stack */
|
||||||
|
|
||||||
riscv_set_basestack(ESP_IDLESTACK_BASE, SMP_STACK_SIZE);
|
riscv_set_basestack((uintptr_t)_ebss, SMP_STACK_SIZE);
|
||||||
|
|
||||||
/* Setup the syscall table needed by the ROM code */
|
/* Setup the syscall table needed by the ROM code */
|
||||||
|
|
||||||
|
@ -36,6 +36,7 @@
|
|||||||
#include <arch/board/board_memorymap.h>
|
#include <arch/board/board_memorymap.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include "riscv_internal.h"
|
||||||
#include "esp32c3.h"
|
#include "esp32c3.h"
|
||||||
#include "hardware/esp32c3_rom_layout.h"
|
#include "hardware/esp32c3_rom_layout.h"
|
||||||
|
|
||||||
@ -91,14 +92,13 @@ void up_allocate_heap(void **heap_start, size_t *heap_size)
|
|||||||
* Check boards/risc-v/esp32c3-legacy.
|
* Check boards/risc-v/esp32c3-legacy.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
extern uint8_t _sheap[];
|
|
||||||
extern const struct esp32c3_rom_layout_s *ets_rom_layout_p;
|
extern const struct esp32c3_rom_layout_s *ets_rom_layout_p;
|
||||||
|
|
||||||
board_autoled_on(LED_HEAPALLOCATE);
|
board_autoled_on(LED_HEAPALLOCATE);
|
||||||
|
|
||||||
*heap_start = _sheap;
|
*heap_start = (void *)g_idle_topstack;
|
||||||
*heap_size = ets_rom_layout_p->dram0_rtos_reserved_start -
|
*heap_size = (uintptr_t)ets_rom_layout_p->dram0_rtos_reserved_start -
|
||||||
(uintptr_t)_sheap;
|
g_idle_topstack;
|
||||||
#endif /* CONFIG_BUILD_PROTECTED && CONFIG_MM_KERNEL_HEAP */
|
#endif /* CONFIG_BUILD_PROTECTED && CONFIG_MM_KERNEL_HEAP */
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -123,9 +123,7 @@ void up_allocate_kheap(void **heap_start, size_t *heap_size)
|
|||||||
* Check boards/risc-v/esp32c3-legacy.
|
* Check boards/risc-v/esp32c3-legacy.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
extern uint8_t _sheap[];
|
uintptr_t kbase = g_idle_topstack;
|
||||||
|
|
||||||
uintptr_t kbase = (uintptr_t)_sheap;
|
|
||||||
uintptr_t ktop = KDRAM_END;
|
uintptr_t ktop = KDRAM_END;
|
||||||
size_t ksize = ktop - kbase;
|
size_t ksize = ktop - kbase;
|
||||||
|
|
||||||
|
@ -25,6 +25,7 @@
|
|||||||
#include <nuttx/config.h>
|
#include <nuttx/config.h>
|
||||||
#include <arch/irq.h>
|
#include <arch/irq.h>
|
||||||
|
|
||||||
|
#include "riscv_internal.h"
|
||||||
#include "chip.h"
|
#include "chip.h"
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
@ -49,8 +50,9 @@ __start:
|
|||||||
|
|
||||||
/* Set stack pointer to the idle thread stack */
|
/* Set stack pointer to the idle thread stack */
|
||||||
|
|
||||||
lui sp, %hi(ESP32C3_IDLESTACK_TOP)
|
la sp, _ebss
|
||||||
addi sp, sp, %lo(ESP32C3_IDLESTACK_TOP)
|
li t0, SMP_STACK_SIZE
|
||||||
|
add sp, sp, t0
|
||||||
|
|
||||||
/* Set gp pointer */
|
/* Set gp pointer */
|
||||||
|
|
||||||
|
@ -31,14 +31,4 @@
|
|||||||
* Pre-processor Definitions
|
* Pre-processor Definitions
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
/* Idle thread stack starts from _ebss */
|
|
||||||
|
|
||||||
#ifndef __ASSEMBLY__
|
|
||||||
#define ESP32C3_IDLESTACK_BASE (uint32_t)&g_idlestack
|
|
||||||
#else
|
|
||||||
#define ESP32C3_IDLESTACK_BASE g_idlestack
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define ESP32C3_IDLESTACK_TOP (ESP32C3_IDLESTACK_BASE + SMP_STACK_SIZE)
|
|
||||||
|
|
||||||
#endif /* __ARCH_RISCV_SRC_ESP32C3_LEGACY_ESP32C3_MEMORYMAP_H */
|
#endif /* __ARCH_RISCV_SRC_ESP32C3_LEGACY_ESP32C3_MEMORYMAP_H */
|
||||||
|
@ -127,11 +127,7 @@ HDR_ATTR static void (*_entry_point)(void) = __start;
|
|||||||
* Public Data
|
* Public Data
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
/* Address of the IDLE thread */
|
uintptr_t g_idle_topstack = (uintptr_t)_ebss + SMP_STACK_SIZE;
|
||||||
|
|
||||||
uint8_t g_idlestack[SMP_STACK_SIZE]
|
|
||||||
aligned_data(16) locate_data(".noinit");
|
|
||||||
uintptr_t g_idle_topstack = ESP32C3_IDLESTACK_TOP;
|
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Private Functions
|
* Private Functions
|
||||||
@ -296,7 +292,7 @@ void __esp32c3_start(void)
|
|||||||
|
|
||||||
/* Setup base stack */
|
/* Setup base stack */
|
||||||
|
|
||||||
riscv_set_basestack(ESP32C3_IDLESTACK_BASE, SMP_STACK_SIZE);
|
riscv_set_basestack((uintptr_t)_ebss, SMP_STACK_SIZE);
|
||||||
|
|
||||||
/* Setup the syscall table needed by the ROM code */
|
/* Setup the syscall table needed by the ROM code */
|
||||||
|
|
||||||
|
@ -85,31 +85,6 @@ SECTIONS
|
|||||||
. = ORIGIN(KDRAM) + _iram_end - _iram_start;
|
. = ORIGIN(KDRAM) + _iram_end - _iram_start;
|
||||||
} >KDRAM
|
} >KDRAM
|
||||||
|
|
||||||
/* Shared RAM */
|
|
||||||
|
|
||||||
.dram0.bss (NOLOAD) :
|
|
||||||
{
|
|
||||||
. = ALIGN (8);
|
|
||||||
_sbss = ABSOLUTE(.);
|
|
||||||
*(.dynsbss)
|
|
||||||
*(.sbss)
|
|
||||||
*(.sbss.*)
|
|
||||||
*(.gnu.linkonce.sb.*)
|
|
||||||
*(.scommon)
|
|
||||||
*(.sbss2)
|
|
||||||
*(.sbss2.*)
|
|
||||||
*(.gnu.linkonce.sb2.*)
|
|
||||||
*(.dynbss)
|
|
||||||
*(.bss)
|
|
||||||
*(.bss.*)
|
|
||||||
*(.share.mem)
|
|
||||||
*(.gnu.linkonce.b.*)
|
|
||||||
*(COMMON)
|
|
||||||
|
|
||||||
. = ALIGN (8);
|
|
||||||
_ebss = ABSOLUTE(.);
|
|
||||||
} >KDRAM
|
|
||||||
|
|
||||||
.noinit (NOLOAD):
|
.noinit (NOLOAD):
|
||||||
{
|
{
|
||||||
/* This section contains data that is not initialized during load,
|
/* This section contains data that is not initialized during load,
|
||||||
@ -139,10 +114,31 @@ SECTIONS
|
|||||||
*(.dram1.*)
|
*(.dram1.*)
|
||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
_edata = ABSOLUTE(.);
|
_edata = ABSOLUTE(.);
|
||||||
|
} >KDRAM
|
||||||
|
|
||||||
/* Heap starts at the end of .data */
|
/* Shared RAM */
|
||||||
|
|
||||||
_sheap = ABSOLUTE(.);
|
.dram0.bss (NOLOAD) :
|
||||||
|
{
|
||||||
|
. = ALIGN (8);
|
||||||
|
_sbss = ABSOLUTE(.);
|
||||||
|
*(.dynsbss)
|
||||||
|
*(.sbss)
|
||||||
|
*(.sbss.*)
|
||||||
|
*(.gnu.linkonce.sb.*)
|
||||||
|
*(.scommon)
|
||||||
|
*(.sbss2)
|
||||||
|
*(.sbss2.*)
|
||||||
|
*(.gnu.linkonce.sb2.*)
|
||||||
|
*(.dynbss)
|
||||||
|
*(.bss)
|
||||||
|
*(.bss.*)
|
||||||
|
*(.share.mem)
|
||||||
|
*(.gnu.linkonce.b.*)
|
||||||
|
*(COMMON)
|
||||||
|
|
||||||
|
. = ALIGN (32);
|
||||||
|
_ebss = ABSOLUTE(.);
|
||||||
} >KDRAM
|
} >KDRAM
|
||||||
|
|
||||||
.flash.text :
|
.flash.text :
|
||||||
|
@ -54,31 +54,6 @@ SECTIONS
|
|||||||
. = ORIGIN(dram0_0_seg) + _iram_end - _iram_start;
|
. = ORIGIN(dram0_0_seg) + _iram_end - _iram_start;
|
||||||
} >dram0_0_seg
|
} >dram0_0_seg
|
||||||
|
|
||||||
/* Shared RAM */
|
|
||||||
|
|
||||||
.dram0.bss (NOLOAD) :
|
|
||||||
{
|
|
||||||
. = ALIGN (8);
|
|
||||||
_sbss = ABSOLUTE(.);
|
|
||||||
*(.dynsbss)
|
|
||||||
*(.sbss)
|
|
||||||
*(.sbss.*)
|
|
||||||
*(.gnu.linkonce.sb.*)
|
|
||||||
*(.scommon)
|
|
||||||
*(.sbss2)
|
|
||||||
*(.sbss2.*)
|
|
||||||
*(.gnu.linkonce.sb2.*)
|
|
||||||
*(.dynbss)
|
|
||||||
*(.bss)
|
|
||||||
*(.bss.*)
|
|
||||||
*(.share.mem)
|
|
||||||
*(.gnu.linkonce.b.*)
|
|
||||||
*(COMMON)
|
|
||||||
|
|
||||||
. = ALIGN (8);
|
|
||||||
_ebss = ABSOLUTE(.);
|
|
||||||
} >dram0_0_seg
|
|
||||||
|
|
||||||
.noinit (NOLOAD):
|
.noinit (NOLOAD):
|
||||||
{
|
{
|
||||||
/* This section contains data that is not initialized during load,
|
/* This section contains data that is not initialized during load,
|
||||||
@ -108,10 +83,31 @@ SECTIONS
|
|||||||
*(.dram1.*)
|
*(.dram1.*)
|
||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
_edata = ABSOLUTE(.);
|
_edata = ABSOLUTE(.);
|
||||||
|
} >dram0_0_seg
|
||||||
|
|
||||||
/* Heap starts at the end of .data */
|
/* Shared RAM */
|
||||||
|
|
||||||
_sheap = ABSOLUTE(.);
|
.dram0.bss (NOLOAD) :
|
||||||
|
{
|
||||||
|
. = ALIGN (8);
|
||||||
|
_sbss = ABSOLUTE(.);
|
||||||
|
*(.dynsbss)
|
||||||
|
*(.sbss)
|
||||||
|
*(.sbss.*)
|
||||||
|
*(.gnu.linkonce.sb.*)
|
||||||
|
*(.scommon)
|
||||||
|
*(.sbss2)
|
||||||
|
*(.sbss2.*)
|
||||||
|
*(.gnu.linkonce.sb2.*)
|
||||||
|
*(.dynbss)
|
||||||
|
*(.bss)
|
||||||
|
*(.bss.*)
|
||||||
|
*(.share.mem)
|
||||||
|
*(.gnu.linkonce.b.*)
|
||||||
|
*(COMMON)
|
||||||
|
|
||||||
|
. = ALIGN (32);
|
||||||
|
_ebss = ABSOLUTE(.);
|
||||||
} >dram0_0_seg
|
} >dram0_0_seg
|
||||||
|
|
||||||
.flash.text :
|
.flash.text :
|
||||||
|
@ -144,32 +144,6 @@ SECTIONS
|
|||||||
. = ORIGIN(dram0_0_seg) + _iram_end - _iram_start;
|
. = ORIGIN(dram0_0_seg) + _iram_end - _iram_start;
|
||||||
} >dram0_0_seg
|
} >dram0_0_seg
|
||||||
|
|
||||||
/* Shared RAM */
|
|
||||||
|
|
||||||
.dram0.bss (NOLOAD) :
|
|
||||||
{
|
|
||||||
/* .bss initialized on power-up */
|
|
||||||
|
|
||||||
. = ALIGN (8);
|
|
||||||
_sbss = ABSOLUTE(.);
|
|
||||||
*(.dynsbss)
|
|
||||||
*(.sbss)
|
|
||||||
*(.sbss.*)
|
|
||||||
*(.gnu.linkonce.sb.*)
|
|
||||||
*(.scommon)
|
|
||||||
*(.sbss2)
|
|
||||||
*(.sbss2.*)
|
|
||||||
*(.gnu.linkonce.sb2.*)
|
|
||||||
*(.dynbss)
|
|
||||||
KEEP (*(.bss))
|
|
||||||
*(.bss.*)
|
|
||||||
*(.share.mem)
|
|
||||||
*(.gnu.linkonce.b.*)
|
|
||||||
*(COMMON)
|
|
||||||
. = ALIGN(8);
|
|
||||||
_ebss = ABSOLUTE(.);
|
|
||||||
} >dram0_0_seg
|
|
||||||
|
|
||||||
.noinit (NOLOAD):
|
.noinit (NOLOAD):
|
||||||
{
|
{
|
||||||
/* This section contains data that is not initialized during load,
|
/* This section contains data that is not initialized during load,
|
||||||
@ -205,12 +179,34 @@ SECTIONS
|
|||||||
esp32c3_start.*(.rodata .rodata.*)
|
esp32c3_start.*(.rodata .rodata.*)
|
||||||
_edata = ABSOLUTE(.);
|
_edata = ABSOLUTE(.);
|
||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
|
|
||||||
/* Heap starts at the end of .data */
|
|
||||||
|
|
||||||
_sheap = ABSOLUTE(.);
|
|
||||||
} >dram0_0_seg AT>ROM
|
} >dram0_0_seg AT>ROM
|
||||||
|
|
||||||
|
/* Shared RAM */
|
||||||
|
|
||||||
|
.dram0.bss (NOLOAD) :
|
||||||
|
{
|
||||||
|
/* .bss initialized on power-up */
|
||||||
|
|
||||||
|
. = ALIGN (8);
|
||||||
|
_sbss = ABSOLUTE(.);
|
||||||
|
*(.dynsbss)
|
||||||
|
*(.sbss)
|
||||||
|
*(.sbss.*)
|
||||||
|
*(.gnu.linkonce.sb.*)
|
||||||
|
*(.scommon)
|
||||||
|
*(.sbss2)
|
||||||
|
*(.sbss2.*)
|
||||||
|
*(.gnu.linkonce.sb2.*)
|
||||||
|
*(.dynbss)
|
||||||
|
KEEP (*(.bss))
|
||||||
|
*(.bss.*)
|
||||||
|
*(.share.mem)
|
||||||
|
*(.gnu.linkonce.b.*)
|
||||||
|
*(COMMON)
|
||||||
|
. = ALIGN(8);
|
||||||
|
_ebss = ABSOLUTE(.);
|
||||||
|
} >dram0_0_seg
|
||||||
|
|
||||||
/* Marks the end of IRAM code segment */
|
/* Marks the end of IRAM code segment */
|
||||||
|
|
||||||
.iram0.text_end (NOLOAD) :
|
.iram0.text_end (NOLOAD) :
|
||||||
|
@ -147,31 +147,6 @@ SECTIONS
|
|||||||
. = ORIGIN(UDRAM) + _iram_end - _iram_start;
|
. = ORIGIN(UDRAM) + _iram_end - _iram_start;
|
||||||
} >UDRAM
|
} >UDRAM
|
||||||
|
|
||||||
/* Shared RAM */
|
|
||||||
|
|
||||||
.bss (NOLOAD) :
|
|
||||||
{
|
|
||||||
. = ALIGN (8);
|
|
||||||
_sbss = ABSOLUTE(.);
|
|
||||||
*(.dynsbss)
|
|
||||||
*(.sbss)
|
|
||||||
*(.sbss.*)
|
|
||||||
*(.gnu.linkonce.sb.*)
|
|
||||||
*(.scommon)
|
|
||||||
*(.sbss2)
|
|
||||||
*(.sbss2.*)
|
|
||||||
*(.gnu.linkonce.sb2.*)
|
|
||||||
*(.dynbss)
|
|
||||||
*(.bss)
|
|
||||||
*(.bss.*)
|
|
||||||
*(.share.mem)
|
|
||||||
*(.gnu.linkonce.b.*)
|
|
||||||
*(COMMON)
|
|
||||||
|
|
||||||
. = ALIGN (8);
|
|
||||||
_ebss = ABSOLUTE(.);
|
|
||||||
} >UDRAM
|
|
||||||
|
|
||||||
.noinit (NOLOAD):
|
.noinit (NOLOAD):
|
||||||
{
|
{
|
||||||
/* This section contains data that is not initialized during load,
|
/* This section contains data that is not initialized during load,
|
||||||
@ -202,6 +177,31 @@ SECTIONS
|
|||||||
_edata = ABSOLUTE(.);
|
_edata = ABSOLUTE(.);
|
||||||
} >UDRAM AT>ROM
|
} >UDRAM AT>ROM
|
||||||
|
|
||||||
|
/* Shared RAM */
|
||||||
|
|
||||||
|
.bss (NOLOAD) :
|
||||||
|
{
|
||||||
|
. = ALIGN (8);
|
||||||
|
_sbss = ABSOLUTE(.);
|
||||||
|
*(.dynsbss)
|
||||||
|
*(.sbss)
|
||||||
|
*(.sbss.*)
|
||||||
|
*(.gnu.linkonce.sb.*)
|
||||||
|
*(.scommon)
|
||||||
|
*(.sbss2)
|
||||||
|
*(.sbss2.*)
|
||||||
|
*(.gnu.linkonce.sb2.*)
|
||||||
|
*(.dynbss)
|
||||||
|
*(.bss)
|
||||||
|
*(.bss.*)
|
||||||
|
*(.share.mem)
|
||||||
|
*(.gnu.linkonce.b.*)
|
||||||
|
*(COMMON)
|
||||||
|
|
||||||
|
. = ALIGN (32);
|
||||||
|
_ebss = ABSOLUTE(.);
|
||||||
|
} >UDRAM
|
||||||
|
|
||||||
.flash_text_dummy (NOLOAD) : ALIGN(0x00010000)
|
.flash_text_dummy (NOLOAD) : ALIGN(0x00010000)
|
||||||
{
|
{
|
||||||
. = SIZEOF(.userspace) + SIZEOF(.rodata);
|
. = SIZEOF(.userspace) + SIZEOF(.rodata);
|
||||||
|
@ -59,31 +59,6 @@ SECTIONS
|
|||||||
. = ORIGIN(dram0_0_seg) + _iram_end - _iram_start;
|
. = ORIGIN(dram0_0_seg) + _iram_end - _iram_start;
|
||||||
} >dram0_0_seg
|
} >dram0_0_seg
|
||||||
|
|
||||||
/* Shared RAM */
|
|
||||||
|
|
||||||
.dram0.bss (NOLOAD) :
|
|
||||||
{
|
|
||||||
. = ALIGN (8);
|
|
||||||
_sbss = ABSOLUTE(.);
|
|
||||||
*(.dynsbss)
|
|
||||||
*(.sbss)
|
|
||||||
*(.sbss.*)
|
|
||||||
*(.gnu.linkonce.sb.*)
|
|
||||||
*(.scommon)
|
|
||||||
*(.sbss2)
|
|
||||||
*(.sbss2.*)
|
|
||||||
*(.gnu.linkonce.sb2.*)
|
|
||||||
*(.dynbss)
|
|
||||||
*(.bss)
|
|
||||||
*(.bss.*)
|
|
||||||
*(.share.mem)
|
|
||||||
*(.gnu.linkonce.b.*)
|
|
||||||
*(COMMON)
|
|
||||||
|
|
||||||
. = ALIGN (8);
|
|
||||||
_ebss = ABSOLUTE(.);
|
|
||||||
} >dram0_0_seg
|
|
||||||
|
|
||||||
.noinit (NOLOAD):
|
.noinit (NOLOAD):
|
||||||
{
|
{
|
||||||
/* This section contains data that is not initialized during load,
|
/* This section contains data that is not initialized during load,
|
||||||
@ -126,10 +101,31 @@ SECTIONS
|
|||||||
*libsched.a:irq_dispatch.*(.rodata .rodata.*)
|
*libsched.a:irq_dispatch.*(.rodata .rodata.*)
|
||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
_edata = ABSOLUTE(.);
|
_edata = ABSOLUTE(.);
|
||||||
|
} >dram0_0_seg
|
||||||
|
|
||||||
/* Heap starts at the end of .data */
|
/* Shared RAM */
|
||||||
|
|
||||||
_sheap = ABSOLUTE(.);
|
.dram0.bss (NOLOAD) :
|
||||||
|
{
|
||||||
|
. = ALIGN (8);
|
||||||
|
_sbss = ABSOLUTE(.);
|
||||||
|
*(.dynsbss)
|
||||||
|
*(.sbss)
|
||||||
|
*(.sbss.*)
|
||||||
|
*(.gnu.linkonce.sb.*)
|
||||||
|
*(.scommon)
|
||||||
|
*(.sbss2)
|
||||||
|
*(.sbss2.*)
|
||||||
|
*(.gnu.linkonce.sb2.*)
|
||||||
|
*(.dynbss)
|
||||||
|
*(.bss)
|
||||||
|
*(.bss.*)
|
||||||
|
*(.share.mem)
|
||||||
|
*(.gnu.linkonce.b.*)
|
||||||
|
*(COMMON)
|
||||||
|
|
||||||
|
. = ALIGN (8);
|
||||||
|
_ebss = ABSOLUTE(.);
|
||||||
} >dram0_0_seg
|
} >dram0_0_seg
|
||||||
|
|
||||||
.flash.text :
|
.flash.text :
|
||||||
|
@ -147,32 +147,6 @@ SECTIONS
|
|||||||
. = ORIGIN(dram0_0_seg) + _iram_end - _iram_start;
|
. = ORIGIN(dram0_0_seg) + _iram_end - _iram_start;
|
||||||
} >dram0_0_seg
|
} >dram0_0_seg
|
||||||
|
|
||||||
/* Shared RAM */
|
|
||||||
|
|
||||||
.dram0.bss (NOLOAD) :
|
|
||||||
{
|
|
||||||
/* .bss initialized on power-up */
|
|
||||||
|
|
||||||
. = ALIGN (8);
|
|
||||||
_sbss = ABSOLUTE(.);
|
|
||||||
*(.dynsbss)
|
|
||||||
*(.sbss)
|
|
||||||
*(.sbss.*)
|
|
||||||
*(.gnu.linkonce.sb.*)
|
|
||||||
*(.scommon)
|
|
||||||
*(.sbss2)
|
|
||||||
*(.sbss2.*)
|
|
||||||
*(.gnu.linkonce.sb2.*)
|
|
||||||
*(.dynbss)
|
|
||||||
KEEP (*(.bss))
|
|
||||||
*(.bss.*)
|
|
||||||
*(.share.mem)
|
|
||||||
*(.gnu.linkonce.b.*)
|
|
||||||
*(COMMON)
|
|
||||||
. = ALIGN(8);
|
|
||||||
_ebss = ABSOLUTE(.);
|
|
||||||
} >dram0_0_seg
|
|
||||||
|
|
||||||
.noinit (NOLOAD):
|
.noinit (NOLOAD):
|
||||||
{
|
{
|
||||||
/* This section contains data that is not initialized during load,
|
/* This section contains data that is not initialized during load,
|
||||||
@ -210,13 +184,34 @@ SECTIONS
|
|||||||
esp_head.*(.rodata .rodata.*)
|
esp_head.*(.rodata .rodata.*)
|
||||||
esp_start.*(.rodata .rodata.*)
|
esp_start.*(.rodata .rodata.*)
|
||||||
_edata = ABSOLUTE(.);
|
_edata = ABSOLUTE(.);
|
||||||
. = ALIGN(4);
|
|
||||||
|
|
||||||
/* Heap starts at the end of .data */
|
|
||||||
|
|
||||||
_sheap = ABSOLUTE(.);
|
|
||||||
} >dram0_0_seg AT>ROM
|
} >dram0_0_seg AT>ROM
|
||||||
|
|
||||||
|
/* Shared RAM */
|
||||||
|
|
||||||
|
.dram0.bss (NOLOAD) :
|
||||||
|
{
|
||||||
|
/* .bss initialized on power-up */
|
||||||
|
|
||||||
|
. = ALIGN (8);
|
||||||
|
_sbss = ABSOLUTE(.);
|
||||||
|
*(.dynsbss)
|
||||||
|
*(.sbss)
|
||||||
|
*(.sbss.*)
|
||||||
|
*(.gnu.linkonce.sb.*)
|
||||||
|
*(.scommon)
|
||||||
|
*(.sbss2)
|
||||||
|
*(.sbss2.*)
|
||||||
|
*(.gnu.linkonce.sb2.*)
|
||||||
|
*(.dynbss)
|
||||||
|
KEEP (*(.bss))
|
||||||
|
*(.bss.*)
|
||||||
|
*(.share.mem)
|
||||||
|
*(.gnu.linkonce.b.*)
|
||||||
|
*(COMMON)
|
||||||
|
. = ALIGN(32);
|
||||||
|
_ebss = ABSOLUTE(.);
|
||||||
|
} >dram0_0_seg
|
||||||
|
|
||||||
/* Marks the end of IRAM code segment */
|
/* Marks the end of IRAM code segment */
|
||||||
|
|
||||||
.iram0.text_end (NOLOAD) :
|
.iram0.text_end (NOLOAD) :
|
||||||
|
@ -103,33 +103,6 @@ SECTIONS
|
|||||||
. = ORIGIN(dram0_0_seg) + _iram_end - _iram_start;
|
. = ORIGIN(dram0_0_seg) + _iram_end - _iram_start;
|
||||||
} >dram0_0_seg
|
} >dram0_0_seg
|
||||||
|
|
||||||
/* Shared RAM */
|
|
||||||
|
|
||||||
.dram0.bss (NOLOAD) :
|
|
||||||
{
|
|
||||||
. = ALIGN (8);
|
|
||||||
_bss_start = ABSOLUTE(.);
|
|
||||||
_sbss = ABSOLUTE(.);
|
|
||||||
*(.dynsbss)
|
|
||||||
*(.sbss)
|
|
||||||
*(.sbss.*)
|
|
||||||
*(.gnu.linkonce.sb.*)
|
|
||||||
*(.scommon)
|
|
||||||
*(.sbss2)
|
|
||||||
*(.sbss2.*)
|
|
||||||
*(.gnu.linkonce.sb2.*)
|
|
||||||
*(.dynbss)
|
|
||||||
*(.bss)
|
|
||||||
*(.bss.*)
|
|
||||||
*(.share.mem)
|
|
||||||
*(.gnu.linkonce.b.*)
|
|
||||||
*(COMMON)
|
|
||||||
|
|
||||||
. = ALIGN (8);
|
|
||||||
_ebss = ABSOLUTE(.);
|
|
||||||
_bss_end = ABSOLUTE(.);
|
|
||||||
} >dram0_0_seg
|
|
||||||
|
|
||||||
.noinit (NOLOAD):
|
.noinit (NOLOAD):
|
||||||
{
|
{
|
||||||
/* This section contains data that is not initialized during load,
|
/* This section contains data that is not initialized during load,
|
||||||
@ -219,12 +192,35 @@ SECTIONS
|
|||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
_edata = ABSOLUTE(.);
|
_edata = ABSOLUTE(.);
|
||||||
_data_end = ABSOLUTE(.);
|
_data_end = ABSOLUTE(.);
|
||||||
|
|
||||||
/* Heap starts at the end of .data */
|
|
||||||
|
|
||||||
_sheap = ABSOLUTE(.);
|
|
||||||
} >dram0_0_seg AT > ROM
|
} >dram0_0_seg AT > ROM
|
||||||
|
|
||||||
|
/* Shared RAM */
|
||||||
|
|
||||||
|
.dram0.bss (NOLOAD) :
|
||||||
|
{
|
||||||
|
. = ALIGN (8);
|
||||||
|
_bss_start = ABSOLUTE(.);
|
||||||
|
_sbss = ABSOLUTE(.);
|
||||||
|
*(.dynsbss)
|
||||||
|
*(.sbss)
|
||||||
|
*(.sbss.*)
|
||||||
|
*(.gnu.linkonce.sb.*)
|
||||||
|
*(.scommon)
|
||||||
|
*(.sbss2)
|
||||||
|
*(.sbss2.*)
|
||||||
|
*(.gnu.linkonce.sb2.*)
|
||||||
|
*(.dynbss)
|
||||||
|
*(.bss)
|
||||||
|
*(.bss.*)
|
||||||
|
*(.share.mem)
|
||||||
|
*(.gnu.linkonce.b.*)
|
||||||
|
*(COMMON)
|
||||||
|
|
||||||
|
. = ALIGN (8);
|
||||||
|
_ebss = ABSOLUTE(.);
|
||||||
|
_bss_end = ABSOLUTE(.);
|
||||||
|
} >dram0_0_seg
|
||||||
|
|
||||||
_image_irom_vma = ADDR(.flash.text);
|
_image_irom_vma = ADDR(.flash.text);
|
||||||
_image_irom_lma = LOADADDR(.flash.text);
|
_image_irom_lma = LOADADDR(.flash.text);
|
||||||
_image_irom_size = LOADADDR(.flash.text) + SIZEOF(.flash.text) - _image_irom_lma;
|
_image_irom_size = LOADADDR(.flash.text) + SIZEOF(.flash.text) - _image_irom_lma;
|
||||||
|
@ -83,31 +83,6 @@ SECTIONS
|
|||||||
. = ORIGIN(dram0_0_seg) + _iram_end - _iram_start;
|
. = ORIGIN(dram0_0_seg) + _iram_end - _iram_start;
|
||||||
} >dram0_0_seg
|
} >dram0_0_seg
|
||||||
|
|
||||||
/* Shared RAM */
|
|
||||||
|
|
||||||
.dram0.bss (NOLOAD) :
|
|
||||||
{
|
|
||||||
. = ALIGN(8);
|
|
||||||
_sbss = ABSOLUTE(.);
|
|
||||||
*(.dynsbss)
|
|
||||||
*(.sbss)
|
|
||||||
*(.sbss.*)
|
|
||||||
*(.gnu.linkonce.sb.*)
|
|
||||||
*(.scommon)
|
|
||||||
*(.sbss2)
|
|
||||||
*(.sbss2.*)
|
|
||||||
*(.gnu.linkonce.sb2.*)
|
|
||||||
*(.dynbss)
|
|
||||||
*(.bss)
|
|
||||||
*(.bss.*)
|
|
||||||
*(.share.mem)
|
|
||||||
*(.gnu.linkonce.b.*)
|
|
||||||
*(COMMON)
|
|
||||||
|
|
||||||
. = ALIGN(8);
|
|
||||||
_ebss = ABSOLUTE(.);
|
|
||||||
} >dram0_0_seg
|
|
||||||
|
|
||||||
.noinit (NOLOAD):
|
.noinit (NOLOAD):
|
||||||
{
|
{
|
||||||
/* This section contains data that is not initialized during load,
|
/* This section contains data that is not initialized during load,
|
||||||
@ -153,10 +128,31 @@ SECTIONS
|
|||||||
*libsched.a:irq_dispatch.*(.rodata .rodata.*)
|
*libsched.a:irq_dispatch.*(.rodata .rodata.*)
|
||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
_edata = ABSOLUTE(.);
|
_edata = ABSOLUTE(.);
|
||||||
|
} >dram0_0_seg
|
||||||
|
|
||||||
/* Heap starts at the end of .data */
|
/* Shared RAM */
|
||||||
|
|
||||||
_sheap = ABSOLUTE(.);
|
.dram0.bss (NOLOAD) :
|
||||||
|
{
|
||||||
|
. = ALIGN(8);
|
||||||
|
_sbss = ABSOLUTE(.);
|
||||||
|
*(.dynsbss)
|
||||||
|
*(.sbss)
|
||||||
|
*(.sbss.*)
|
||||||
|
*(.gnu.linkonce.sb.*)
|
||||||
|
*(.scommon)
|
||||||
|
*(.sbss2)
|
||||||
|
*(.sbss2.*)
|
||||||
|
*(.gnu.linkonce.sb2.*)
|
||||||
|
*(.dynbss)
|
||||||
|
*(.bss)
|
||||||
|
*(.bss.*)
|
||||||
|
*(.share.mem)
|
||||||
|
*(.gnu.linkonce.b.*)
|
||||||
|
*(COMMON)
|
||||||
|
|
||||||
|
. = ALIGN(32);
|
||||||
|
_ebss = ABSOLUTE(.);
|
||||||
} >dram0_0_seg
|
} >dram0_0_seg
|
||||||
|
|
||||||
.flash.text :
|
.flash.text :
|
||||||
|
@ -137,33 +137,6 @@ SECTIONS
|
|||||||
. = ORIGIN(dram0_0_seg) + _iram_end - _iram_start;
|
. = ORIGIN(dram0_0_seg) + _iram_end - _iram_start;
|
||||||
} >dram0_0_seg
|
} >dram0_0_seg
|
||||||
|
|
||||||
/* Shared RAM */
|
|
||||||
|
|
||||||
.dram0.bss (NOLOAD) :
|
|
||||||
{
|
|
||||||
. = ALIGN (8);
|
|
||||||
_bss_start = ABSOLUTE(.);
|
|
||||||
_sbss = ABSOLUTE(.);
|
|
||||||
*(.dynsbss)
|
|
||||||
*(.sbss)
|
|
||||||
*(.sbss.*)
|
|
||||||
*(.gnu.linkonce.sb.*)
|
|
||||||
*(.scommon)
|
|
||||||
*(.sbss2)
|
|
||||||
*(.sbss2.*)
|
|
||||||
*(.gnu.linkonce.sb2.*)
|
|
||||||
*(.dynbss)
|
|
||||||
*(.bss)
|
|
||||||
*(.bss.*)
|
|
||||||
*(.share.mem)
|
|
||||||
*(.gnu.linkonce.b.*)
|
|
||||||
*(COMMON)
|
|
||||||
|
|
||||||
. = ALIGN (8);
|
|
||||||
_ebss = ABSOLUTE(.);
|
|
||||||
_bss_end = ABSOLUTE(.);
|
|
||||||
} >dram0_0_seg
|
|
||||||
|
|
||||||
.noinit (NOLOAD):
|
.noinit (NOLOAD):
|
||||||
{
|
{
|
||||||
/* This section contains data that is not initialized during load,
|
/* This section contains data that is not initialized during load,
|
||||||
@ -263,12 +236,35 @@ SECTIONS
|
|||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
_edata = ABSOLUTE(.);
|
_edata = ABSOLUTE(.);
|
||||||
_data_end = ABSOLUTE(.);
|
_data_end = ABSOLUTE(.);
|
||||||
|
|
||||||
/* Heap starts at the end of .data */
|
|
||||||
|
|
||||||
_sheap = ABSOLUTE(.);
|
|
||||||
} >dram0_0_seg AT > ROM
|
} >dram0_0_seg AT > ROM
|
||||||
|
|
||||||
|
/* Shared RAM */
|
||||||
|
|
||||||
|
.dram0.bss (NOLOAD) :
|
||||||
|
{
|
||||||
|
. = ALIGN (8);
|
||||||
|
_bss_start = ABSOLUTE(.);
|
||||||
|
_sbss = ABSOLUTE(.);
|
||||||
|
*(.dynsbss)
|
||||||
|
*(.sbss)
|
||||||
|
*(.sbss.*)
|
||||||
|
*(.gnu.linkonce.sb.*)
|
||||||
|
*(.scommon)
|
||||||
|
*(.sbss2)
|
||||||
|
*(.sbss2.*)
|
||||||
|
*(.gnu.linkonce.sb2.*)
|
||||||
|
*(.dynbss)
|
||||||
|
*(.bss)
|
||||||
|
*(.bss.*)
|
||||||
|
*(.share.mem)
|
||||||
|
*(.gnu.linkonce.b.*)
|
||||||
|
*(COMMON)
|
||||||
|
|
||||||
|
. = ALIGN (32);
|
||||||
|
_ebss = ABSOLUTE(.);
|
||||||
|
_bss_end = ABSOLUTE(.);
|
||||||
|
} >dram0_0_seg
|
||||||
|
|
||||||
_image_irom_vma = ADDR(.flash.text);
|
_image_irom_vma = ADDR(.flash.text);
|
||||||
_image_irom_lma = LOADADDR(.flash.text);
|
_image_irom_lma = LOADADDR(.flash.text);
|
||||||
_image_irom_size = SIZEOF(.flash.text);
|
_image_irom_size = SIZEOF(.flash.text);
|
||||||
|
@ -83,31 +83,6 @@ SECTIONS
|
|||||||
. = ORIGIN(dram0_0_seg) + _iram_end - _iram_start;
|
. = ORIGIN(dram0_0_seg) + _iram_end - _iram_start;
|
||||||
} >dram0_0_seg
|
} >dram0_0_seg
|
||||||
|
|
||||||
/* Shared RAM */
|
|
||||||
|
|
||||||
.dram0.bss (NOLOAD) :
|
|
||||||
{
|
|
||||||
. = ALIGN(8);
|
|
||||||
_sbss = ABSOLUTE(.);
|
|
||||||
*(.dynsbss)
|
|
||||||
*(.sbss)
|
|
||||||
*(.sbss.*)
|
|
||||||
*(.gnu.linkonce.sb.*)
|
|
||||||
*(.scommon)
|
|
||||||
*(.sbss2)
|
|
||||||
*(.sbss2.*)
|
|
||||||
*(.gnu.linkonce.sb2.*)
|
|
||||||
*(.dynbss)
|
|
||||||
*(.bss)
|
|
||||||
*(.bss.*)
|
|
||||||
*(.share.mem)
|
|
||||||
*(.gnu.linkonce.b.*)
|
|
||||||
*(COMMON)
|
|
||||||
|
|
||||||
. = ALIGN(8);
|
|
||||||
_ebss = ABSOLUTE(.);
|
|
||||||
} >dram0_0_seg
|
|
||||||
|
|
||||||
.noinit (NOLOAD):
|
.noinit (NOLOAD):
|
||||||
{
|
{
|
||||||
/* This section contains data that is not initialized during load,
|
/* This section contains data that is not initialized during load,
|
||||||
@ -153,10 +128,31 @@ SECTIONS
|
|||||||
*libsched.a:irq_dispatch.*(.rodata .rodata.*)
|
*libsched.a:irq_dispatch.*(.rodata .rodata.*)
|
||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
_edata = ABSOLUTE(.);
|
_edata = ABSOLUTE(.);
|
||||||
|
} >dram0_0_seg
|
||||||
|
|
||||||
/* Heap starts at the end of .data */
|
/* Shared RAM */
|
||||||
|
|
||||||
_sheap = ABSOLUTE(.);
|
.dram0.bss (NOLOAD) :
|
||||||
|
{
|
||||||
|
. = ALIGN(8);
|
||||||
|
_sbss = ABSOLUTE(.);
|
||||||
|
*(.dynsbss)
|
||||||
|
*(.sbss)
|
||||||
|
*(.sbss.*)
|
||||||
|
*(.gnu.linkonce.sb.*)
|
||||||
|
*(.scommon)
|
||||||
|
*(.sbss2)
|
||||||
|
*(.sbss2.*)
|
||||||
|
*(.gnu.linkonce.sb2.*)
|
||||||
|
*(.dynbss)
|
||||||
|
*(.bss)
|
||||||
|
*(.bss.*)
|
||||||
|
*(.share.mem)
|
||||||
|
*(.gnu.linkonce.b.*)
|
||||||
|
*(COMMON)
|
||||||
|
|
||||||
|
. = ALIGN(32);
|
||||||
|
_ebss = ABSOLUTE(.);
|
||||||
} >dram0_0_seg
|
} >dram0_0_seg
|
||||||
|
|
||||||
.flash.text :
|
.flash.text :
|
||||||
|
@ -137,33 +137,6 @@ SECTIONS
|
|||||||
. = ORIGIN(dram0_0_seg) + _iram_end - _iram_start;
|
. = ORIGIN(dram0_0_seg) + _iram_end - _iram_start;
|
||||||
} >dram0_0_seg
|
} >dram0_0_seg
|
||||||
|
|
||||||
/* Shared RAM */
|
|
||||||
|
|
||||||
.dram0.bss (NOLOAD) :
|
|
||||||
{
|
|
||||||
. = ALIGN (8);
|
|
||||||
_bss_start = ABSOLUTE(.);
|
|
||||||
_sbss = ABSOLUTE(.);
|
|
||||||
*(.dynsbss)
|
|
||||||
*(.sbss)
|
|
||||||
*(.sbss.*)
|
|
||||||
*(.gnu.linkonce.sb.*)
|
|
||||||
*(.scommon)
|
|
||||||
*(.sbss2)
|
|
||||||
*(.sbss2.*)
|
|
||||||
*(.gnu.linkonce.sb2.*)
|
|
||||||
*(.dynbss)
|
|
||||||
*(.bss)
|
|
||||||
*(.bss.*)
|
|
||||||
*(.share.mem)
|
|
||||||
*(.gnu.linkonce.b.*)
|
|
||||||
*(COMMON)
|
|
||||||
|
|
||||||
. = ALIGN (8);
|
|
||||||
_ebss = ABSOLUTE(.);
|
|
||||||
_bss_end = ABSOLUTE(.);
|
|
||||||
} >dram0_0_seg
|
|
||||||
|
|
||||||
.noinit (NOLOAD):
|
.noinit (NOLOAD):
|
||||||
{
|
{
|
||||||
/* This section contains data that is not initialized during load,
|
/* This section contains data that is not initialized during load,
|
||||||
@ -263,12 +236,35 @@ SECTIONS
|
|||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
_edata = ABSOLUTE(.);
|
_edata = ABSOLUTE(.);
|
||||||
_data_end = ABSOLUTE(.);
|
_data_end = ABSOLUTE(.);
|
||||||
|
|
||||||
/* Heap starts at the end of .data */
|
|
||||||
|
|
||||||
_sheap = ABSOLUTE(.);
|
|
||||||
} >dram0_0_seg AT > ROM
|
} >dram0_0_seg AT > ROM
|
||||||
|
|
||||||
|
/* Shared RAM */
|
||||||
|
|
||||||
|
.dram0.bss (NOLOAD) :
|
||||||
|
{
|
||||||
|
. = ALIGN (8);
|
||||||
|
_bss_start = ABSOLUTE(.);
|
||||||
|
_sbss = ABSOLUTE(.);
|
||||||
|
*(.dynsbss)
|
||||||
|
*(.sbss)
|
||||||
|
*(.sbss.*)
|
||||||
|
*(.gnu.linkonce.sb.*)
|
||||||
|
*(.scommon)
|
||||||
|
*(.sbss2)
|
||||||
|
*(.sbss2.*)
|
||||||
|
*(.gnu.linkonce.sb2.*)
|
||||||
|
*(.dynbss)
|
||||||
|
*(.bss)
|
||||||
|
*(.bss.*)
|
||||||
|
*(.share.mem)
|
||||||
|
*(.gnu.linkonce.b.*)
|
||||||
|
*(COMMON)
|
||||||
|
|
||||||
|
. = ALIGN (32);
|
||||||
|
_ebss = ABSOLUTE(.);
|
||||||
|
_bss_end = ABSOLUTE(.);
|
||||||
|
} >dram0_0_seg
|
||||||
|
|
||||||
_image_irom_vma = ADDR(.flash.text);
|
_image_irom_vma = ADDR(.flash.text);
|
||||||
_image_irom_lma = LOADADDR(.flash.text);
|
_image_irom_lma = LOADADDR(.flash.text);
|
||||||
_image_irom_size = SIZEOF(.flash.text);
|
_image_irom_size = SIZEOF(.flash.text);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user