Skocz do zawartości

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


Jaki powinien być nowy kurs?  

71 użytkowników zagłosowało

  1. 1. Której rodziny STM powinien dotyczyć nowy kurs?

    • F0
      14
    • F1
      22
    • F7
      41
    • Innej (podaj w komentarzu)
      8
    • Nie wiem
      3
  2. 2. Jaką metodą programowania jesteś zainteresowany?

    • Programowanie na rejestrach
      22
    • Biblioteka HAL
      18
    • Biblioteka HAL + system czasu rzeczywistego
      52
    • Nie wiem
      1
  3. 3. Jakie przykłady chciałbyś realizować w kursie?

    • Bardzo proste, "byle tylko" uruchomić dane peryferium
      4
    • Projekty praktyczne, ale niezbyt skomplikowane (na prostych peryferiach)
      37
    • Rozbudowane, praktyczne projekty (zaawansowane peryferia)
      54
    • Nie wiem
      0


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

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.

 

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 🙂

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

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. 

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

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

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.