RISC-V/V203F6P6/thermometer/extflash/script.ld
2025-01-31 16:38:37 +01:00

40 lines
1.5 KiB
Text

/*OUTPUT_FORMAT (binary) možnosti zjistíme příkazem "objdump -i" (lze i ihex) */
ENTRY (sayed_texts) /* odtud se začne (start po resetu) */
/* popis pamětí */
MEMORY {
ram (RWX) : ORIGIN = 0x00, LENGTH = 0x40000
}
/* popis sekcí */
SECTIONS {
.fixed : { /* výstupní sekce v rom - nazveme např. .fixed */
. = ALIGN (8); /* zarovnání příští sekce na 4 byty (celkem zbytečné) */
*(.data.rel.ro*)
*(.rodata*) /* .rodata* - stejně jako .text*, ale pro const proměnné (data) (-fdata-sections) */
. = ALIGN (8);
*(.text*) /* gcc pojmenovává sekce s kódem jako .text, pokud je použito -ffunction-sections,
pak bude každá funkce v jiné sekci s názvy .text.jmeno_funkce, proto ta * na konci */
. = ALIGN (8);
*(.data*) /* .data* - stejně jako .text*, ale pro proměnné (data inicializovaná) */
. = ALIGN (8);
*(.bss*) /* .bss* - stejně jako .text*, ale pro proměnné (data inicializovaná na 0) */
*(COMMON*)
*(.note.*)
. = ALIGN (4096);
relocate_end = .; /* konec dat v sekci .relocate - podle toho se např. nějak určí hodnota SP */
end = .;
} > ram /* tady je řečeno, že to má být v ram */
/DISCARD/ : {
*(.rela*)
*(.dynamic)
*(.eh*)
*(.debug*)
*(.comment*)
*(.interp)
*(.dynsym)
*(.dynstr)
*(.hash)
*(.gnu.hash)
*(.header)
} : phdr
}