Wpis z mikrobloga

#embedded #stm32 #programowanie

Mirki pytanie do praktyków operujących na co dzień na prockach stm32. Zacząłem rozpoznawać temat jak to okiełznać. W necie praktycznie wszystkie tutoriale operują na bibliotekach typu StdPeriph lub HAL. Jednak na wszelakich forach branżowych opinie są dość jednoznaczne i można je podsumować tak:

Wszystkie te biblioteki to jest zło i nie używaj tego. Wolne, zawodne i nikt tego komercyjnie na poważnie nie używa. Napisz co ci potrzeba sam w czystym C.


Na pytanie o jakieś tutoriale w tym temacie (ogarnięcie procka w czystym c bez tych bibliotek) zwykle pada:

A poszukaj se w Google


A Google niestety zwraca linki z przykładami z użyciem, powyższych bibliotek. A jak już udało się znaleźć jakiś stary kurs to w podsumowaniu np. oprogramowania PWM pada stwierdzenie w typie:

No i tak to się mniej więcej robi. Ale polecam użycie jakiejś gotowej biblioteki bo bez sensu to tak z palca wszystko pisać.


Inny agent zarzekał się, że on to sam z palca wszystko ale indagowany przyznał, że no wszystko z palca ale UART to z HAL bo łatwiej, a i SPI też. No w sumie to i2c też. Ale tak to w nienawiści HAL tak został wychowany.

Pytanie zatem czy ktoś używa tego procka komercyjnie i jeśli tak to w jaki sposób go oprogramuje?
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@bevisi: programuję komercyjnie STM-y, używam HAL-a i Cube'a. Nie słuchaj przegrywów z elektrody, bo skończysz dziurkując karty perforowane. Zresztą nawet jakbyś chciał się nauczyć korzystać z ultraniskopoziomowych rozwiązań, to i tak łatwiej się nauczyć zaczynając od HAL-a i stopniowo dowiadywać się, co się dzieje pod spodem.
  • Odpowiedz
@bevisi: Programowalem kilka projektow w c na stm32i skonczylo sie na wlasnych makefilach, udalo mi sie tez ogarnac ten dziwny skrypt do linkowania, - w sumie osiagnalem taki bare metal. Po czasie zgadzam sie calkowicie z tym co napisal @zwiei - lykniecie tego wszystkiego na raz moze byc bardzo frustrujace i niepotrzebnie czasochlonne.
  • Odpowiedz
Pytanie zatem czy ktoś używa tego procka komercyjnie i jeśli tak to w jaki sposób go oprogramuje?


@bevisi: używam tego komercyjnie i to co mogę to robię bezpośrednio na rejestrach. Problem z HALem jest taki, że nie znalazłem do niego dobrego opisu. Jak chcesz wiedzieć jakie możliwości ma dane peryferium to i tak musisz przeczytać jego opis a potem zgadnąć jak to się konfiguruje przez HALa! Dla mnie to podwójna
  • Odpowiedz
@RicoElectrico: uzupełniają HAL. Załóżmy, że chcesz zmienić jeden parametr jakiegoś peryferium, np. prędkość UARTu. Jak to zrobisz na HALu? Napiszesz 20 linijek ustawiając znów wszystko na raz? Tutaj z pomocą przychodzi LL. Alternatywa to zapis do rejestru.
  • Odpowiedz