Skocz do zawartości
dejmieno

Czy warto się uczyć 8 bitowców po STM32 i Rassbery Pi?

Pomocna odpowiedź

Postanowiłem, że będę się uczył StdPeriph ponieważ jest bliżej sprzętu i powoli będę migrować na rejestry. Na początek sterowanie GPIO i małymi kroczkami powoli do przodu 🙂.

Proponowałbym jednak naukę HAL lub LL. ST się przyznało, że SPL to jedna wielka wtopa 🙂

A ciekawi mnie jeszcze jak sprawa wygląda w kontekście programowania zawodowego mikrokontrolerów. Czy stawia się bardziej na wydajność i pisanie na rejestrach? Czy podobnie jak w branży języków wysokopoziomowych stawia się na szybkość developmentu, czystość kodu i co za tym idzie korzysta się z bibliotek jak HAL, generatorów kodu CubeMX?

(Z własnego doświadczenia) Żeby szybko wystartować projekt używa się generatorów, ale z czasem okazuje się, że nie wszystko da się w nich zrobić i wtedy następuje przejście na ręczną konfigurację, przy czym nadal część modułów się powiela. Po pewnym czasie developmentu powstaje pewna warstwa abstrakcji, która pozwala całkowicie się odciąć od sprzętu i skupić na samej aplikacji. Wtedy nie ma już potrzeby zabawy z rejestrami.

We wszystkich przypadkach czystość kodu jest priorytetowa, aby nie tracić czasu na jego "dekodowanie" przy ewentualnym debugu lub rozwijaniu.

Udostępnij ten post


Link to post
Share on other sites
(Z własnego doświadczenia) Żeby szybko wystartować projekt używa się generatorów

Zapoznałem się z CubeMX, ale generowany kod jest paskudny (zresztą jeszcze nie widziałem narzędzia które generowałoby ładny kod). Zresztą, przecież sam HAL bardzo skraca kod i jakoś nie widzę potrzeby korzystania z CubeMX.

Proponowałbym jednak naukę HAL lub LL. ST się przyznało, że SPL to jedna wielka wtopa 🙂

Nie wiem o co wszystkim chodzi z SPL... co jest z tą biblioteką nie tak?

O co chodzi z tym LL? Rozumiem, że jest to biblioteka trochę bardziej niskopoziomowa niż HAL? Ściągnąłem sobie example, ale na pierwszy rzut oka nie wygląda to jak biblioteka niskopoziomowa. Warto się tego uczyć, korzysta się z tego w ogóle?

Udostępnij ten post


Link to post
Share on other sites

Zapoznałem się z CubeMX, ale generowany kod jest paskudny (zresztą jeszcze nie widziałem narzędzia które generowałoby ładny kod). Zresztą, przecież sam HAL bardzo skraca kod i jakoś nie widzę potrzeby korzystania z CubeMX.

No właśnie dlatego moją preferowaną praktyką jest wygenerować sobie kod tylko po to, żeby podejrzeć jak są konfigurowane i uruchamiane poszczególne peryferia.

O co chodzi z tym LL? Rozumiem, że jest to biblioteka trochę bardziej niskopoziomowa niż HAL? Ściągnąłem sobie example, ale na pierwszy rzut oka nie wygląda to jak biblioteka niskopoziomowa. Warto się tego uczyć, korzysta się z tego w ogóle?

Ja sobie mówię, że to jest bardziej czytelna zabawa na rejestrach 😋

Udostępnij ten post


Link to post
Share on other sites
Ja sobie mówię, że to jest bardziej czytelna zabawa na rejestrach 😋

No tak faktycznie jak podejrzałem kod przykładowej procedury z LL to w środku znajduje się tylko operacja na jednym rejestrze.

W sumie dobrze to wygląda. Rozumiem, że można miksować HAL i LL?

Udostępnij ten post


Link to post
Share on other sites

W STM32CubeMX można wybrać używaną bibliotekę dla każdego peryferium indywidualnie, więc zgaduję, że tak 🙂

Udostępnij ten post


Link to post
Share on other sites

Jeżeli chodzi o programowanie mikrokontrolerów komercyjnie to faktycznie do prototypów można użyć generatora, a docelowe rozwiązanie często jest napisane na rejestrach. Pisząc komercyjnie musimy brać pod uwagę poza szybkością wykonania jeszcze takie aspekty jak licencja i możliwość certyfikacji np. zgodność z MISRA C. To ostatnie szczególnie ważne jeżeli piszemy coś wojskowego, medycznego, automotive itp.

Udostępnij ten post


Link to post
Share on other sites

Aha, czyli wnioskuję, że najlepiej będzie uczyć się HAL i CMSIS. LL można sobie chyba darować.

Udostępnij ten post


Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Gość
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.


×
×
  • Utwórz nowe...