Skip to content

spseol/VideoUkazka

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

STM8 startovací toolchain

  • Toto je Startovací strom zdrojových kódů pro výuku mikroprocesorové techniky s kitem NUCLEO-8S208RB.
  • 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

Tři Makefile

K dispozici jsou celkem tři Makefile v adresáři .make. Na začátku si musíte jeden z nich vybrat:

make sdcc       # nebo
make sdccrm     # nebo
make sdcc-gas   # nebo

Potom můžete mezi nimi přepínat:

make switch-sdcc
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á.

Který Makefile vybrat?

Detailní popis najdete na https://chytrosti.marrek.cz/stm8oss.html.

SDCC

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

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

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.

Použití

  • make spl -- stáhne a nachystá knihovny
  • make -- provede kompilaci
  • make flash -- nahraje program do chipu
  • make clean -- smaže všechno, co nakompiloval
  • make rebuild -- smaže vše a znovu zkompiluje
  • make openocd -- pustí openocd pro debug
  • make debug -- spustí STM8-gdb

Závislosti

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published