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