Linux -Arm STM32F

Miroslav Mraz mrazik na volny.cz
Úterý Duben 4 20:56:39 CEST 2023


V Linuxu se jaksi předpokládá, že víte jak to funguje pod kapotou. A 
příkazový řádek je mocný nástroj. Já třeba používám už léta kdevelop, je 
dost univerzální, umí si do jisté míry rozparsovat Makefile a dá se tam 
nastavit celkem kvalitní "našeptávač", který používá pro C/C++ nástroje 
z clang. To zefektivní psaní samotného kódu několikanásobně.
Ale to je tak všechno co od IDE opravdu potřebuji. To, že můžu přeložit 
změněný soubor tlačítkem "Build" je celkem nepodstatné. Sice se dá 
nastavit debugování přímo v IDE, ale nikdy jsem to vlastně nepoužil. 
Takže gdb pouštím z příkazové řádky a těch pár příkazů jsem se prostě 
naučil. Nakonec gdb je opravdu krajní možnost jak se dopátrat chyby, 
když už selže vše ostatní - například když zapíšete do registru blbost a 
skončíte v hardfault. Debugovací řetězec pro arm je poměrně složitý a 
když takhle tvrdě narazíte nikdy si nemůžete být jist, že není chyba 
někde v IDE, chcíplý gdb server nebo máte jen utržený drát.
Výhodou Linuxu je, že složitější algoritmus si můžete odladit jako 
nativní aplikaci pomocí debug výpisů nebo nějakého sofistikovanějšího 
logování - překládáte to pomocí nativního gcc (příp. clang) a pokud víte 
co děláte, kód přeložený pro arm (či cokoli jiného) bude fungovat 
stejně, protože překladač bude mít stejné jádro. Ze zkušenosti mohu 
říct, že tento způsob ladění je sice pracnější, ale o hodně efektivnější 
než honit chyby přímo na mcu. Tedy pokud neřešíte zcela triviální věci.

Mrazík

On 04. 04. 23 19:44, Nesvacil Jiri wrote:
> Určitě je dobrý to umět zkompilovat z řádky, ty nástroje se mění.
> 
> Ten CB nemá takové plné intelisence a taky nakofigurovat pro debug se 
> dá, ale musíte o tom něco vědět. To VScode je sice moloch, ale půjde to 
> lépe. Nebo ještě lépe VS. Možná taky budete v jednom editoru editovat, v 
> druhém kompilovat a v třetím debugovat, a do produkčního prostředí 
> překládat přes příkazovou řádku.
> 
> Jirka
> 


Další informace o konferenci Hw-list