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

Pavel Hudeček edizon na seznam.cz
Neděle Leden 5 11:42:14 CET 2025


Používám EEMEM a PROGMEM
a v pgmspace.h je taky definováno PSTR pro vložení stringu do flash bez 
zakládání proměnné. Mám to dodefinovaný jako F.

Teď jsem třeba použil:
uartSendF(F("TempFailMax T:\1\n "), adTbat, 2);
Výsledkem pak bude něco jako
TempFailMax T:45,13
a ty texty jsou ve flash.

Jen je škoda, že na těch ARMech, když už teda ten společný adresní 
prostor mají, do něj nedali i EEPROM.

PH

Dne 05.01.2025 v 11:01 Miroslav Mraz napsal(a):
> Ž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í.


Další informace o konferenci Hw-list