@@ -21,11 +21,17 @@ STACK_SIZE = 8k;
21
21
/* Specify main memory areas */
22
22
MEMORY
23
23
{
24
- vectors_seg ( RX ) : ORIGIN = 0x40022000, len = 1k /* SRAM0 */
24
+ vectors_seg ( RX ) : ORIGIN = 0x40022000, len = 1k /* SRAM0 */
25
25
iram_seg ( RX ) : ORIGIN = 0x40022400, len = 128k-0x400 /* SRAM0 */
26
26
27
- dram_seg ( RW ) : ORIGIN = 0x3FFB0000 + RESERVE_DRAM, len = 176k - RESERVE_DRAM
28
- reserved_for_boot_seg : ORIGIN = 0x3FFDC200, len = 144k /* SRAM1; reserved for static ROM usage; can be used for heap */
27
+ dram_seg ( RW ) : ORIGIN = 0x3FFB0000 + RESERVE_DRAM, len = 192k - RESERVE_DRAM
28
+
29
+ /* SRAM1; reserved for static ROM usage; can be used for heap.
30
+ Length based on the "_dram0_rtos_reserved_start" symbol from IDF used to delimit the
31
+ ROM data reserved region :
32
+ https ://github.com/espressif/esp-idf/blob/bcb34ca7aef4e8d3b97d75ad069b960fb1c17c16/components/heap/port/esp32s2/memory_layout.c#L121-L122
33
+ */
34
+ reserved_for_boot_seg : ORIGIN = 0x3FFE0000, len = 0x1FA10
29
35
30
36
/* external flash
31
37
The 0x20 offset is a convenience for the app binary image generation.
@@ -156,13 +162,11 @@ SECTIONS {
156
162
_external_ram_start = ABSOLUTE (ORIGIN (psram_seg));
157
163
_external_ram_end = ABSOLUTE (ORIGIN (psram_seg)+LENGTH (psram_seg));
158
164
159
- _heap_end = ABSOLUTE (ORIGIN (dram_seg))+LENGTH (dram_seg)+LENGTH (reserved_for_boot_seg) - 2* STACK_SIZE;
165
+ _heap_end = ABSOLUTE (ORIGIN (dram_seg))+LENGTH (dram_seg)+LENGTH (reserved_for_boot_seg) - STACK_SIZE;
160
166
_text_heap_end = ABSOLUTE (ORIGIN (iram_seg)+LENGTH (iram_seg));
161
167
_external_heap_end = ABSOLUTE (ORIGIN (psram_seg)+LENGTH (psram_seg));
162
168
163
- _stack_start_cpu1 = _heap_end;
164
- _stack_end_cpu1 = _stack_start_cpu1 + STACK_SIZE;
165
- _stack_start_cpu0 = _stack_end_cpu1;
169
+ _stack_start_cpu0 = _heap_end;
166
170
_stack_end_cpu0 = _stack_start_cpu0 + STACK_SIZE;
167
171
168
172
EXTERN (DefaultHandler );
0 commit comments