Re: Dotazy k STM32F103C8T6 a multiplexované řw616ZW7DrSBMRUQgZGlzcGxlamUu
Jaroslav Buchta
jaroslav.buchta na hascomp.cz
Čtvrtek Březen 11 08:36:03 CET 2021
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
>
Další informace o konferenci Hw-list