Skocz do zawartości

Kurs STM32 F1 HAL – #13 – podsumowanie, nowa seria?


Komentator

Jaki powinien być nowy kurs?  

76 użytkowników zagłosowało

Wyniki głosowania są ukryte!


Pomocna odpowiedź

Kurs STM32 F1 HAL – #13 – podsumowanie, nowa seria?

Za nami kolejny (już trzeci) kurs, w którym była mowa o programowaniu układów STM32. Pora na krótkie podsumowanie oraz zapowiedź nowej serii dotyczącej tych mikrokontrolerów. Właśnie teraz możecie zadecydować w ankiecie o dokładnej tematyce nowego kursu.

UWAGA, to tylko wstęp! Dalsza część artykułu dostępna jest na blogu.

Przeczytaj całość »

Poniżej znajdują się komentarze powiązane z tym wpisem.

Link do komentarza
Share on other sites

Moja propozycja - pokazać ile można zrealizować na bardzo tanim MCU.

STM32F030F4P6 - najtańszy STM32, do którego płytki ewaluacyjne na pewnej znanej chińskiej platformie sprzedażowej za około 5 zł (klon programatora ST-Link V2 to jakieś 7 zł)

do tego HAL + (znienawidzone) TrueSTUDIO, niestety Keil o ile dla CortexM-0 jest "bezpłatny" (przynajmniej na razie) to jeśli ktoś będzie miał potrzebę przenieść się na rodzinę z innym rdzeniem to nie skompiluje nic powyżej 32 KB i czeka go nauka/zmiana przyzwyczajeń w innym środowisku. 

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

Ja tam za TrueStudio nie przepadam - więc proponuję inną opcję. Jeśli już wersja minimum to np. Stm32f030, ale programowanie na rejestrach, gcc z linii poleceń i program vim-ie (lub notepad++). Wtedy faktycznie można z układu dużo wycisnąć, zrozumieć jak wszystkie narzędzia działają, a nie tylko jak korzystać z graficznych nakładek.

 

Link do komentarza
Share on other sites

Też jestem za rejestrami. Tego typu poradników jest jak na lekarstwo.

Ja tam do True Studio nic nie mam, a jego odkrywanie też bywa ciekawe. To, że większość opcji można "wyklikać" nie znaczy, że nie należy rozumieć co się robi. Co innego jeśli chodzi o przygotowanie Makefile. Proponowałbym aby nowy kurs zawierał, element pośredni tzn jak przejść z automatycznego makefile do ręcznego. Uważam, że wtedy można dowiedzieć się ciekawych rzeczy.

Co do pisania w vimie, albo notepadzie to już bez masochizmów 🙂 

Kontynuowanie programowania z takimi ubogimi IDE i tak kiedyś trzeba będzie przerwać, jeśli myśli się o bardziej zaawansowanym programowaniu. No chyba, że ktoś jest master kilerem i potrafi wszystko w pamięci, za pomocą wyobraźni. Ja nie potrafię i bez tych wszystkich eclipsowych sztuczek ciężko mi myśleć o wydajności. A żeby nie było programowanie zaczynałem w linuksowej konsoli, w mc editorze - straszna mordęga 🙂

Link do komentarza
Share on other sites

Nie zgodzę się, że kolejność jest taka - prosty projekt vim/notepad, skomplikowany eclipse. Powiedziałbym nawet że jest dokładnie odwrotnie. Większość prostych aplikacji jest tworzona w bardzo rozbudowanych środowiskach IDE, natomiast te bardziej zaawansowane właśnie w prostych. Jako skrajne przypadki proponuję porównać wszystkie kursy dla początkujących - czyli eclipse/Visual Stduio/Sketch z programowaniem jądra na linux-a. Tutaj vim działa wręcz idealnie, a wczytanie całego kodu do podpowiadacza w eclipse zajmuje z pół godziny. No i narzędzie nie rozumie połowy optymalizacji niskopoziomowych.

Natomiast pisząc o zrozumieniu działania miałem na myśli raczej znaczenie i treść skryptów linkera, kodu startup oraz podstawowych opcji kompilatora. Oczywiście to wszystko jest gdzieś dostępne w eclipse, ale moim zdaniem 99% użytkowników nawet nie zwraca uwagi na takie detale (ja tak robiłem dość długo) - wystarcza domyślna konfiguracja, ew. niewielkie zmiany na podstawie porady ze stackoverflow i gotowe. Jak chodzi o makefile to o ile pamiętam z make są zawsze problemy pod windą - więc chyba łatwiej i szybciej byłoby używać np. cmake. Wtedy narzędzie samo zajmie się szczegółami zależnymi od systemu, a jeszcze wygeneruje skrypty dla ninja, co działa całkiem sprawnie (chociaż pod linuksem nadal wolę starego dobrego make-a).

Wydaje mi się jednak że taki kurs byłby ciekawy tylko dla wąskiego grona użytkowników - a już obsłużenie bardziej rozbudowanych peryferiów (np. na F7) zupełnie od zera to prawdziwy masochizm (nie wybór edytora). Proste nawet łatwiej jest używać z poziomu rejestrów. Ale już np. LCD w połączeniu z DMA oraz pamięciami cache w F7 byłoby pewnym wyzwaniem - a mając HAL wystarczy użyć funkcji którą ktoś napisał (co najwyżej warto sprawdzić jak dużo jest w niej błędów...)

Link do komentarza
Share on other sites

A może jakiś STM z serii L? w końcu układy bateryjne stają się coraz bardziej popularne. 

Jak dla mnie STM z serii L z bibliotekami HAL i systemem czasu rzeczywistego + nowy atollic.

Jednak zgodzę się, że warto powiedzieć, kiedy opłaca się stosować system, a kiedy nie. Jakie opcje ma atollic, kod startup, linker, makefile, memory map, optymalizacja, podział projektu na pliki i warstwy (drivery, service layer, aplikacja), itp. 

Link do komentarza
Share on other sites

No to fajnie, czekam z niecierpliwością.

STM'y od kilku dni pochłonęły mnie w 100%!

Mam kilka Arduino, ale jakoś nie byłem w stanie do nich przysiąść, tzn robiłem coś w matlabie, ale to nawet na pół gwizdka nie szło.

  • Lubię! 1
Link do komentarza
Share on other sites

No i jest jeszcze kwestia treści kursu (bez względu na wybraną platformę sprzętową).
Nie wyobrażam sobie, że na Discovery M7 z RTOS ponownie będziemy "mrygać" diodami ...

Akurat dzisiaj odgrzebałem stare książki ze studiów i trafiłem na "Sterowniki mikroprocesorowe" - skrypt uczelniany.
Trafiłem w nim na zagadnienia (to wszystko realizowane na 80C51 ...):
- układy przełączające
- watchdog
- układy regulacji automatycznej
- sterowniki P, PI, PD, PID ...
- protokół CAN

Otwieram Matlaba, uruchamiam pakiet wsparcia sprzętowego dla płytek Discovery i przykłady z helpa dotyczą:
- projektowania filtrów
- analiza fouriera
- projektowanie trójpasmowego korektora audio
- detektor głosu (cokolwiek to znaczy)
- komunikacja między dwoma płytkami po UDP/TCP

Do realizacji powyższych potrzebne licencje na DSP System Toolbox, Signal Processing Toolbox, Embeded Coder ...

Przykłady dla płytek Nucleo mniej więcej pokrywają się z pokazanymi w ostatnim kursie ("CUBE+HAL").

Zaczynam sobie zdawać sprawę, że chyba porywamy się z "motyką na słońce"?
Pisanie "z palca" sterownika PID, filtra dolno/górno - przepustowego czy analizy fouriera to zadania raczej dla profesjonalnych programistów, a nie dla amatorów.
Prostsze aplikacje można realizować z powodzeniem na Arduino, czy tanich nucleo (które i tak będą bezrobotne).

simulink.jpg

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • 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.