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