Wpis z mikrobloga

Programuje ktoś z Was ARM'y tudzież inne mikrokontrolery zawodowo? Jak to wygląda obecnie, używacie HAL'a (czyli z tego co kojarzę to wyższa abstrakcja, gotowa biblioteka i funkcje) czy może standardowo lecicie z ustawianiem bitów w rejestrach i odczytem danych z nich? C czy C++? Jak C++ to staracie się wprowadzać podejście obiektowe?
#stm32 #programowanie #cpp #embedded #mikrokontrolery #arm #programista15k
  • 21
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Homofobiczny_Czarodziej: Znajdziesz oba podejścia, zależnie od tego, z kim pracujesz. Natomiast większość programistów embedded to ludzie, którzy znają jedynie C i piszą w nim kod, który ledwo da się czytać (bo nigdy nie musieli się uczyć nowoczesnych dobrych praktyk, bo się kisili całe życie we własnym sosie).
  • Odpowiedz
@Homofobiczny_Czarodziej: programuję komercyjnie choć nie pełnoetatowo. Ogólnie korzystam z HAL-a ale w razie potrzeby też z HAL-a LL oraz operuję bezpośrednio na rejestrach. W szczególności korzystam z bitbandingu. Najważniejsze to rozumieć co się dzieje i czytać Reference Manual. Do większych projektów używam C++. Nie wprowadzam na siłę podejścia obiektowego. Kilka klas, bez dziedziczenia i innych wynalazków. Z mechanizmów C++ używam głównie przestrzeni nazw oraz referencji. Co do kontroli wersji to
  • Odpowiedz
@Boska_Klaudia: no było pytanie o biblioteki a nie o RTOS'a to jest inna sprawa, ale tak, RTOS uzywałem praktycznie w każdym projekcie, czasem zdażały się pierdki, które nie miały tyle pamięci zeby go obsłużyc. Ewentualnie jak procki miały bootloadera to w tych krytycznych strefach też nie było RTOS
  • Odpowiedz
@Boska_Klaudia: zależy o co dokładniej pytasz, używałem tego, ale chyba jeżeli była potrzeba pisania na drutach, albo jakieś bootloadery. Dokładnie nie pamiętam, wiem że jak przygotowywałem środowisko to musiałem za każdym razem szukać paczki na danego procka i przerabiać *.s, linker skrypty i wektory przerwań bo mieliśmy swój standard
  • Odpowiedz
@inspektor_gadzet: mówię o tym API co umożliwia pisanie przenośnego kodu na różne Cortexy, a raczej ma umożliwić jak wszyscy to zaimplementują. Np. STM Cube robi taki example, używa wrappera osKernelStart() a pod spodem robi vTaskStartScheduler() z FreeRTOS
  • Odpowiedz
@Boska_Klaudia: mam projekt bazujący właśnie na takim samplu. W kolejnych już z tego API zrezygnowałem i wołałem funkcji FreeRTOS bezpośrednio. Oczywiście przenośność jest fajna, ale jak się jest jedynym deweloperem i wie się że architektura się nie zmieni, to IMO nic to nie wnosi.
  • Odpowiedz