Ööö, ez alatt mit értesz pontosan?
Amit ottan fentebb is irtam a nyitoban, az objcopy-nak megfelelo dolgot (a .text meg .rodata kinyereset). Plusz persze azt az infot hogy az hol is helyezkedik el :)
Nem, a "memory block" csak az ISA szimulatornak egy sajat belso objektuma, de igen, nagyban megegyezik a linker script MEMORY blokkjaival. Azert csak nagyban es nem teljesen mert maganak a hardvernek vannak MMIO tartomanyai meg egyeb, helllyel-kozzel memoriakent viselkedo tartomanyai, amirol igy a szimulatornak is tudnia kell. A feladat itt csak annyi hogy a szimulator inditasakor legalabb ezeknek egy reszet magatol kitalalja, es ne az "elf -> objcopy -> binaris -> cimek kezzel visszairva -> szimulator" hanem az "elf -> szimulator" vonal legyen a preferalt. De ez inkabb csak finomsag, a szimbolum-alapu debug az fontosabb. A memory block-ok azert lehetnek erdekesek hogy igy akkor a szimulalt hardver pontosan annyi memoriat kap mint amennyire szuksege van. Igy hiaba van akar a fizikai hardverben is tobb, egyes alacsonyszinten bekovetkezo szoftverhibakat mar igy is ki lehet szurni.
Koszi a tobbit, nagyon hasznos! Igen, en is a .text.* format "hasznalom". Azaz -ffunction-sections, -fdata-sections kapcsoloval forditok mindent, linkelesnel pedig ugy ezek ossze vannak vonva:
.text { *(.text .text.*) } > ROM
Es gondolom az *.elf-ben a legelso .text jelenik meg mint a PROGBITS neve. A "ROM"-ot meg mar nem latom viszont az *.elf-ben, ahogy mondod.
Kicsit meg tanulnom kell ezeket, igen. Dehat jobb keson mint megkesobb.