- Toto je Startovací strom zdrojových kódů pro výuku mikroprocesorové techniky s kitem STM8S Dero-board s STM8S103.
- Strom je určen pro překladač SDCC nebo SDCC-gas.
- Standardní knihovnu pro práci s periferiemi SPL je třeba (z licenčních důvodů) stáhnou zvlášť ze stránek výrobce a použít patch.
- Konkurence a inspirace: https://gitlab.com/wykys/stm8-tools
K dispozici jsou celkem dva Makefile v adresáři .make
.
Můžete mezi nimi přepínat:
make switch-sdccrm
make switch-sdcc-gas
Přepnutí jen znamená, že se udělá symlink do root-adresáře projektu. Na divných systémech, které symlinky neumí (například Windows) se natvrdo kopíruje, takže tato operace může být ztrátová. Na normálních systémech (asi všechny, kromě Windows) je tato operace bezztrátová.
Detailní popis najdete na https://chytrosti.marrek.cz/stm8oss.html.
Z hlediska STM8 má SDCC jednu zásadní nevýhodu: nedokáže odstranit mrtvý nepoužívaný kód. To může zapříčinit velké binární soubory plné nepoužívaného kódu. Pokud nepoužíváte knihovny 2. a 3. stran asi vám to nevadí.
sdccrm je nástroj pro optimalizaci mrtvého kódu vytvořeného SDCC, který odstraňuje nepoužívané funkce. Kód se nejprve zkompiluje do assembleru klasickým SDCC, poté se pomocí sdccrm vymaže kód, který se nepoužívá a celý proces se dokončí a kód se převede z assembleru do strojového kódu. Z logiky věci toto řešení vylučuje použití debugeru.
Dále je nutné ručně zadat funkce, které nechcete optimalizovat – tedy
vyhodit. Proto je třeba sledovat chybová hlášení a název chybějící funkce zadat
do souboru .make/exclude_reference
uvnitř projektového adresáře.
SDCC-gas vzniklo, aby vyřešilo problém optimalizace mrtvého kódu přidáním podpory GNU Assembleru tedy gas do SDCC 3.9.0. gas je výhodou i nevýhodou tohoto řešení. Na jednu stranu to znamená, že můžeme používat klasické nástroje z GNU binutils, na druhou stranu to znamená, že nelze použít ty části sdcc-libraries, které jsou napsané v STM8 assembleru a je nutné použít méně optimální kód napsaný v C nebo STM8 assembler přepsat do GNU assembleru.
make spl
-- stáhne a nachystá knihovnymake
-- provede kompilacimake flash
-- nahraje program do chipumake clean
-- smaže všechno, co nakompilovalmake rebuild
-- smaže vše a znovu zkompilujemake openocd
-- pustíopenocd
pro debugmake debug
-- spustí STM8-gdb
- GNU Make, GNU Bash,
- SDCC
- SDCC-gas
- OpenOCD
- STM8 binutils (
stm8-gdb
,stm8-ln
)