Re: Lepší C++ pro AVR i do Microchip studia

Miroslav Mraz mrazik na volny.cz
Neděle Leden 5 11:01:08 CET 2025


Že se k tomu vracím. V C++ bare-metal se mi osvědčily konstantní výrazy. 
Jenže g++ si se složitějšími konstrukcemi v době kompilace neporadí, 
provede je až za běhu. Clang, zřejmě kvůli LLVM struktuře tento problém 
nemá, opravdu vše udělá za překladu a výsledek je schopen uložit do 
sekce .rodata.
A tady je podstata problému - starší verze avr-gcc při použití C++ 
neznaly u konstanty modifikátor __flash, i když čisté C to pobralo v 
pohodě. Jak je to u toho novějšího ? Mě se to nechce instalovat, avr 
jsem už opustil, ale docela by mě to zajímalo.
Ono to jde i na tom AVR nějak obejít, ale je takové drbání se pravou 
rukou za levým uchem. Jak si zvyknete v 32-bitech na jednotný adresní 
prostor, tak ty 8-bity vám přijdou až moc divoké.

Mrazík

On 04. 01. 25 13:04, Pavel Hudeček wrote:
> Tohle tam nastavit nejde. Jediné místo vhodné k předání této informace 
> aspoň překladači je toolchain/C++/Miscellanous a tam -std... do kolonky 
> other flags.
> 
> Čekal bych že seznam errorů po překladu vznikne parsováním výstupu 
> překladače, kde je error zařadit do erros, kde warning do wanings. Jiná 
> věc je to červenání věcí při psaní, tam je jasný že s tím IDE musí nějak 
> kouzlit.
> 
> Je jasný, že plnohodnotný exceptiony nejsou na implementaci úplně 
> jednoduchý. Ale kdyby byla nějaká mini-verze, kde probublá třeba jen 
> int, tak to dál bude řádově lepší než jiná řešení.
> 
> S templatama, lambdou a dalšíma, jsme u nás v práci došli k závěru, že 
> je to generační záležitost. Kdo se to učil už ve škole, má to za 
> přirozenou věc a používá to běžně, kdo ne, tak se tomu buď vyhýbá, nebo 
> to dá jen tam kde tím ušetří opravdu hodně i při ojedinělém použití.
> 
> PH
> 
> 


Další informace o konferenci Hw-list