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