Skocz do zawartości
Komentator

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

Jaki powinien być nowy kurs?  

64 użytkowników zagłosowało

Nie masz uprawnień do głosowania w tej ankiecie ani nie widzisz wyników ankiety. Zaloguj się lub zarejestruj w ~20 sekund, aby zagłosować w ankiecie.

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.

Udostępnij ten post


Link to post
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. 

Udostępnij ten post


Link to post
Share on other sites
3 godziny temu, SweetDreams napisał:

HAL + (znienawidzone) TrueSTUDIO

Dlaczego znienawidzone? 🙂

Udostępnij ten post


Link to post
Share on other sites

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.

 

Udostępnij ten post


Link to post
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 🙂

Udostępnij ten post


Link to post
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...)

Udostępnij ten post


Link to post
Share on other sites

A może tym razem ESP32 zamiast STM32?

Udostępnij ten post


Link to post
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. 

Udostępnij ten post


Link to post
Share on other sites

@SACZI, temat trochę zszedł na dalszy plan, bo było dużo różnych tematów, ale na pewno będziemy działać w kierunku STMów i o nich nie zapomnimy 😉

Udostępnij ten post


Link to post
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

Udostępnij ten post


Link to post
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

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ść
Napisz odpowiedź...

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