logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

STM32F0 wolniejszy niż PIC32MX - jak poprawić wydajność?

djfarad02 13 Lut 2019 21:13 2253 51
Najlepsze odpowiedzi

Jak poprawić wydajność STM32F0 podczas portowania projektu z PIC32MX, zwłaszcza przy odczycie danych stałych z Flash?

W praktyce niewiele da się „dokręcić” w konfiguracji STM32F0; warto włączyć prefetch bufor FLASH (`FLASH->ACR |= FLASH_ACR_PRFTBE`), ale główna różnica wynika z samego rdzenia, który jest wolniejszy od PIC32MX [#17777123][#17777160][#17777947] Cortex-M0 ma niższą wydajność na MHz niż PIC32MX (podawano ok. 0,93 DMIPS/MHz dla M0 vs ok. 1,5 DMIPS/MHz dla PIC32), więc przy tym samym zegarze PIC32 może być wyraźnie szybszy [#17777947][#17777993] Jeśli projekt potrzebuje większej mocy, lepszym wyjściem jest optymalizacja algorytmu/kodu albo wybór szybszego rdzenia, np. M3/M4/M7, bo F0 jest układem nastawionym na niski koszt i mały pobór prądu [#17777731][#17777994]
Wygenerowane przez model językowy.
REKLAMA

Podsumowanie tematu

✨ Użytkownik portuje projekt z mikrokontrolera PIC32MX150 na STM32F030K6T6, napotykając problemy z wydajnością, mimo że zegary obu procesorów są ustawione na 24 MHz. Wskazuje na wolniejsze działanie STM32, szczególnie przy odczycie tablic stałych z pamięci flash. Uczestnicy dyskusji sugerują różne podejścia do optymalizacji, w tym włączenie bufora prefetch, zmianę poziomu optymalizacji kompilatora oraz przemyślenie algorytmu. Wskazano również na różnice architektoniczne między rdzeniami Cortex-M0 a MIPS, co wpływa na wydajność. Użytkownik zauważa, że STM32F0 jest tańszy, ale mniej wydajny w porównaniu do PIC32, co prowadzi do rozważań nad wyborem bardziej wydajnych modeli STM32, takich jak F4 lub H7, w kontekście ograniczeń budżetowych.
Wygenerowane przez model językowy.
REKLAMA