Skocz do zawartości

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


dejmieno

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.

Link do komentarza
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?

Link do komentarza
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 😋

Link do komentarza
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?

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

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.

Link do komentarza
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!

Anonim
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...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.