Re: Dotazy k STM32F103C8T6 a multiplexované řw616ZW7DrSBMRUQgZGlzcGxlamUu

Miroslav Mraz mrazik na volny.cz
Sobota Březen 13 12:44:53 CET 2021


C++ je jen nástroj a je třeba ho používat s rozumem. S těmi výjimkami 
jste měl prostě jen smůlu. Je to jedna z mála vlastností C++, která se 
používá na bare-metal jen velmi obtížně a je lépe ji zcela vynechat. 
Bohužel je na to vázán např. i operátor new, takže to omezuje i 
používání haldy. Ne, že by to vůbec nešlo, ale je nutné počítat s tím, 
že to nebude zcela korektní. A když si to promyslíte, tak hodně věcí se 
bez haldy obejde. Asi by šlo udělat si vlastní obsluhu výjimek šitou na 
míru danému projektu, ale asi je jednodušší obsluhovat chyby přímo na 
místě, kde vznikají.
Na druhou stranu přináší C++ spoustu užitečných vlastností, které 
neprodukují mnoho kódu navíc - můžete používat třídy, kompozici, 
dědičnost i vícenásobnou, přetěžování funkcí i operátorů, implicitní 
parametry, šablony, konstantní a lambda výrazy...

Mrazík

Dne 13. 03. 21 v 5:45 Jaroslav Buchta napsal(a):
> Tak ono to v principu asi nicemu nevadi, treba Arfuino na C++ jede, ale 
> je asi potreba se krotit ve vyuzivani moznosti C++ coz mi uplne nesedi.
> Jednou jsem zkusil, co to udela, kdyz nasadim system vyjimek (na ARM) a 
> z kodu 20kB hned bylo pres 100kB. Tim pro me C++ na MCU ztratilo kouzlo. 
> S virtualizaci to bude asi taky nic moc, zvlast na slabsich procesorech, 
> ktere nemaji pokrocilejsi instrukce pro adresaci pameti.
> A dalsi vec bude podle mne horsi prenositelnost kodu na ruzne platformy, 
> v jadrech OS je to spousta struktur s ukazateli na data a funkce, v C 
> jsou celkem jasna pravidla a da se to osetrit preprocesorem, objekty v 
> C++ jsou asi fyzicky implementovany rozmaniteji.Netvrdim, ze by to 
> neslo, nakonec zas to Arduino ukazuje, ze slo, ale...
> 


Další informace o konferenci Hw-list