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