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