Re: Dotazy k STM32F103C8T6 a multiplexované řw616ZW7DrSBMRUQgZGlzcGxlamUu
Jiří Nesvacil
nesvacil na posys.eu
Čtvrtek Březen 11 09:01:46 CET 2021
Kompilace nepomuze musite to psat jako C++ tj. v class definovat
properties. Pote vyvolat objekt.metoda(); a properties objektu jsou
natazeny daleko rychleji. Kdyz to mate v C, tak promenne jsou globalni,
tam se nepouzije instrukce se zkracenym indexovanim pro natazeni
promenne, ale s dlouhou 32bit adresou.
Jirka
Dne 11.03.2021 v 8:36 Jaroslav Buchta napsal(a):
> Vlakna bych u tehle tridy moc neresil, na to ma predevsim malo pameti
> RAM pro zasobniky. Ne, ze by to neslo ale da se to udelat efektivneji.
> Preruseni na to myslim je, v M0+ urcite a M0 asi taky, CubeMX nabizi
> FreeRTOS pro obe verze.
>
> S tim prekladem vyzkousim, ale rekl bych, ze dost zalezi, jak se to
> napise v obou pripadech? Nebo ma nekdo overeno, ze treba firmware STM
> a C knihovny, coz ve vychozim stavu zabere nejvic pameti, budou v C++
> aplikaci mensi?
>
> Dne 11.03.2021 v 8:30 Jiří Nesvacil napsal(a):
>> M0, nevim zda M0+ myslim taky nema nejake preruseni pro real.os,
>> myslim na prepnuti z vlakna do vlakna. Taky to ma vetsinou malo
>> pameti RAM. Jinak z testu u novejsich kompileru vyslo, ze je lepsi
>> kod v C++ nez C z hlediska kompilace, vyjde mensi a je rychlejsi.
>> Instrukce pro promenne objektu (properites neboli take instancni
>> promenne) se natahuji rychleji, pouzije se optimalizovanejsi
>> instrukce pro natazeni z pameti. Vetsinou se to pise tak, ze se
>> objekt alokuje po startu. Pokud se chce clovek vyhnout komplikacich s
>> zamky, stakem, tak se pouzije protothreads, existuje i varianta pro c++.
>>
>> To jen pro zacatek.
>>
>> Jirka
>>
>> Dne 10.03.2021 v 22:04 Miroslav Mraz napsal(a):
>>> Jádru Cortex-M0 bych se raději preventivně vyhnul, právě kvůli tomu
>>> přemapování vektorů. Ne že by to nešlo vůbec nijak vyřešit, ale je
>>> to zbytečný opruz. Takže jádra Cortex-M0+, M3, M4. Nevím jak ta
>>> starší řada F1, ale novější mají např. hardwarové časování signálu
>>> DE pro RS485, což může být také poměrně užitečné.
>>>
>>> Mrazík
>>>
>>> Dne 10. 03. 21 v 21:51 Jiří Nesvacil napsal(a):
>>>> Zdravim,
>>>>
>>>> rada F1 + knihovny + compiler byla ze zacatku hodne buggy. Nize
>>>> jeden z drivejsich pokusu, erase normalne probihal, jen to vyjelo
>>>> na timeout. Dnesni knihovny rady F1 + kompiler to maji lepe
>>>> osetreno, ale radeji bych volil F4 radu nebo nejaky M0. M0 ma
>>>> nejake omezeni v remap preruseni myslim. Bootloader udelate malinky
>>>> spise zalezi na protokolu. Je to doopravdy jen erase a zapis.
>>>> Priklad u nas UDP s IP stackem okolo 5k.
>>>>
>>>> /* Erase the FLASH pages */
>>>> for(EraseCounter=0; EraseCounter<NbrOfPage; EraseCounter++)
>>>> {
>>>> FLASH_Status FLASHStatus =
>>>> FLASH_ErasePage(APPLICATION_ADDRESS + (FLASH_PAGE_SIZE *
>>>> EraseCounter));
>>>> // asi mozna taky vraci timeout, protoze to po prvni strance
>>>> vyskoci a je to
>>>> // if (FLASHStatus != FLASH_COMPLETE) return -1;
>>>> }
>>>>
>>>> Jirka
>>>>
>>> _______________________________________________
>>> HW-list mailing list - sponsored by www.HW.cz
>>> Hw-list na list.hw.cz
>>> http://list.hw.cz/mailman/listinfo/hw-list
>>
>
> _______________________________________________
> HW-list mailing list - sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
--
Tento e-mail byl zkontrolován na viry programem AVG.
http://www.avg.cz
Další informace o konferenci Hw-list