riscv: fix heap corruption
The .sdata and .sbss sections are created by the compiler, but were not present in the linker script. That means that the linker put them after all other data/bss section, which happens to be where the heap also resides. This commit adds the .sdata and .sbss sections to the linker script, which gets the blinky examples to work again on RISC-V.
Этот коммит содержится в:
родитель
93a06d1157
коммит
2f932a9eee
1 изменённых файлов: 4 добавлений и 4 удалений
|
@ -30,8 +30,8 @@ SECTIONS
|
|||
/* see https://gnu-mcu-eclipse.github.io/arch/riscv/programmer/#the-gp-global-pointer-register */
|
||||
PROVIDE( __global_pointer$ = . + (4K / 2) );
|
||||
_sdata = .; /* used by startup code */
|
||||
*(.data)
|
||||
*(.data*)
|
||||
*(.sdata)
|
||||
*(.data .data.*)
|
||||
. = ALIGN(4);
|
||||
_edata = .; /* used by startup code */
|
||||
} >RAM AT>FLASH_TEXT
|
||||
|
@ -41,8 +41,8 @@ SECTIONS
|
|||
{
|
||||
. = ALIGN(4);
|
||||
_sbss = .; /* used by startup code */
|
||||
*(.bss)
|
||||
*(.bss*)
|
||||
*(.sbss)
|
||||
*(.bss .bss.*)
|
||||
*(COMMON)
|
||||
. = ALIGN(4);
|
||||
_ebss = .; /* used by startup code */
|
||||
|
|
Загрузка…
Создание таблицы
Сослаться в новой задаче