STM32F100 asm a soubor .ld

Zdrojový kód asembleru pro STM32F100 má minimálně dva soubory. Soubor *.s je vlastní asemblerovský zápis. Druhým souborem je *.ld, který popisuje rozložení paměti arm. Bohužel na netu jsem nic bližšího k tomuto souboru nenašel a tak jsem použil ten nejjednodušší vzorový.

MEMORY { FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 128K
         RAM (xrw)  : ORIGIN = 0x20000000, LENGTH = 8K }
_estack = ORIGIN(RAM)+LENGTH(RAM);
SECTIONS { .text : { * (.text);
                     etext = .; } > FLASH
           .data : { sdata = .;
                     * (.data);
                     edata = .; } > RAM AT> FLASH
}

Soubor nám definuje adresy a velikosti pamětí arm. Ve vlasrtním asemblerovém zápisu pak musíme použít:

.text                         @ následující bude ve flash
...                           @ program

.data                         @ následující bude ve sram
...                           @ datové struktury

_estack                       @ konec paměti sram (vrchol zásobníku)

Pokud budete používat arm s jinou velikostí paměti stačí v souboru *.ld zaeditovat první dva řádky a je hotovo.

Napsat komentář

Vaše emailová adresa nebude zveřejněna.

+ 4 = eight