Skocz do zawartości
Komentator

Kurs STM32 - #1 - Zaczynamy! Spis Treści

Pomocna odpowiedź

html_mig_img
W pewnym momencie AVRy to za mało, pojawia się ochota na poznanie mocniejszych układów. Tutaj najczęściej wybór pada na tanie STM32.Stąd pomysł na nowy kurs. Łącznie składa się on z 11 artykułów omawiających najważniejsze peryferia STM32 w praktyce.

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

"wygodnej bibliotece udostępnianej przez producenta, która ułatwia i przyspiesza pisanie programów.)". Być może tak jest jak piszecie, ale ogarnąć te biblioteki to jak by nie było trochę czasu zajmuje, do tego należało by dobrze przestudiować dokumentację procesora. No i tu się rodzi problem, kto coś już tam pogrzebie w tych bibliotekach, to prawdopodobnie zajrzy do dokumentacji pobieżnie (bo przecież coś tam działa) i nie będzie w stanie wyciągnąć z procka maksimum. No może za dużo powiedziane, będzie tylko umiał to co ktoś w bibliotekach pokazał, śmiem twierdzić że dużo konfiguracji i możliwości zostanie pominięta. Trochę siedzę w STM32, gdzieś od 2 lat i nie korzystam z tych przepasionych bibliotek. Teraz na topie są biblioteki "HAL" od czasów STM32CubeMX (tak mi się wydaje bo nie używam), prosta operacja jest wywoływana przez funkcję, a tamta jeszcze gdzieś tam wywołuje coś innego (poprzednie Standard Peripheral Libraries też tak działały). Niekiedy wystarczą 2 linijki, zamiast 2 wypasionych funkcji. Kurs operujący na rejestrach był by na prawdę dużo bardziej wartościowy, oczywiście z drugiej strony był by zniechęcający, bo jak to można wklepywać bity "do tylu rejestrów" żeby ustawić "głupi port". Choć pracuje na STM32 to staram się nie przekraczać 8 MHz, wystarczy przecież dobra znajomość procka, a nie megaherce.

Pozdrawiam

Udostępnij ten post


Link to post
Share on other sites

szyss, to są dwa obozy, tak jak Linux vs. Windows 🙂

Kurs został oparty na bibliotekach, ponieważ ciężko wskazać mi zastosowania hobbystyczne, gdzie okaże się to niewydajnym podejściem. Biblioteki pozwalają na szybkie uzyskiwanie efektów, a to jest najważniejsze w nauce - widoczne efekty. Przyjdzie czas na zagłębianie się w rejestry, ale nie na początku 🙂

Udostępnij ten post


Link to post
Share on other sites

Napisanie kursu programowania to niełatwe zadanie. Zawsze znajdzie się ktoś, kto powie - można to zrobić lepiej, albo chociaż można to zrobić inaczej. Jak chodzi o bibliotekę, to dyskusja o wyborze StdPeriph miała miejsce jakiś czas temu. Na pewno ktoś powie - dlaczego nie Cube? Ktoś inny powie - dlaczego nie zapisy do rejestrów? Kilka lat temu prowadziłem podobną dyskusję, jeszcze na nieco słabszych mikrokontrolerach. Usłyszałem, że programowanie w C nie ma sensu, przecież kompilator generuje beznadziejny kod. W asemblerze można uzyskać lepszy efekt....

Problem jest taki, że musimy dokonywać pewnych wyborów, czasem za cenę wydajności uzyskać np. większą czytelność programu. Pisanie w asemblerze z bezpośrednim dostępem do rejestrów jest jednym ze skrajności - daje absolutnie maksimum wydajności (i niech mi nikt nie mówi że kod w C jest wydajny 😉 ). Drugi biegun to programowanie np. w Pythonie, Basic-u, czy Javascripcie - wbrew pozorom, można tak programować na mikrokontrolery. Niestety skrajności mają wady, ale i zalety. Z jednej strony możemy dostać kod, ktory wyciska maksimum ze sprzętu, ale poza autorem kodu nikt nie rozumie jak to działa (Write-only code). Drugi biegun - kod obiektowy, piękny i napisany zgodnie z najnowszymi trendami, ale jednocześnie potwornie niewydajny.

StdPeriph to pewnego rodzaju kompromis - mniejsza wydajność niż gołe rejestry, z drugiej strony większa łatwość uczenia się nowego środowiska. Jako ciekawostkę wspomnę tylko, że większość osób, które programuje na poziomie rejestrów, pierwsze co robi, to tworzy własną bibliotekę - po prostu bezpośredni zapis jest za skomplikowany.

StdPeriph jest w tej chwili pewnego rodzaju standardem dla STM32. Jest to sprawdzona i przetestowana biblioteka. Można na jej temat znaleźć wiele książek, kursów oraz dokumentacji. W przyszłości Cube HAL prawdopodobnie zastąpi StdPeriph, jednak obie bibilioteki są podobne, więc czas poświęcony na naukę StdPeriph na pewno zaprocentuje w przyszłości.

Udostępnij ten post


Link to post
Share on other sites

Drobna literówka, ostatni zestaw powien się nazywać:

Zestawy elementów bez płytki Nucleo – wersja rozszerzona
Teraz pisze że jest z płytką 🙂

Udostępnij ten post


Link to post
Share on other sites

Zawsze mam dylemat czy pisać program wykorzystujący biblioteki czy pracować tylko na rejestrach. Przeważnie piszę pod avr i używam bibliotek arduino, ale i tak tworze kolejne funkcje które obsługują sprzęt, więc mam w pewnym sensie dwie biblioteki i już zdarzało mi się, że kod mi się nie mieścił w pamięci. W takich sytuacjach zmieniałem te moje funkcje tak aby pracowały na rejestrach kompilowałem już zwykłym avr-gcc. Wtedy kod się mieścił i jeszcze zostawało miejsca, a samej logiki działania programu nie musiałem zmieniać.

Więc czasem na prawdę lepiej pracować na rejestrach.

Co do stm32 to wolę biblioteki, ale to przez to że nie chciało mi się bardzo zagłębiać w te mikrokontrolery, może w przyszłości nastąpi zmiana.

Udostępnij ten post


Link to post
Share on other sites

Harnas, dzięki - już poprawione 🙂

Udostępnij ten post


Link to post
Share on other sites

Ja jestem bardzo ciekaw tego kursu, na pewno warto go przejść. Wszystkiego nigdy nie da się opisać, ale bardzo się cieszę, że będzie wstęp dający nam jakiś punkt zaczepienia. Mam tylko cichą nadzieję, że kurs nie będzie wymagał Windowsa i będę mógł go przejść także praktycznie, a nie tylko sobie poczytać teorię.

Udostępnij ten post


Link to post
Share on other sites

deshipu, rozumiem Twój ból odnośnie Windows-a, ale takie były wymagania Szefa 😉 Mogę Cię tylko pocieszyć, że kody pisałem na Mac OS X i później przenosiłem na windę. Więc jeśli używasz np. Linux-a, pozostaje zainstalować Eclipse, plugin do STM32 i można spokojnie korzystać z kursu.

Udostępnij ten post


Link to post
Share on other sites

Elvis, szczerze mówiąc to trochę mnie rozczarowałeś tymi standardowymi bibliotekami. Mam wrażenie, że wszystko, co można było o nich powiedzieć, można znaleźć w książkach (np. Galewskiego), tutaj na forum lub ogólnie w internecie. HAL to co prawda dość nowy wynalazek, ale zdążyły już przejąć pałeczkę, zdominować wszelkie ciekawe repozytoria na githubach i dzisiaj trudno np. o współpracę nowych wersji LwIP oraz wielu różnych RTOS z STD. Wydaje mi się też, że narzędzie CubeMX jest strzałem w dziesiątkę dla początkującego, bo znacznie upraszcza sprawę. Nadal wymaga pewnej wiedzy, ale po prostu jest przyjemniej, przejrzyściej i bardziej edukująco, bo wszystko widać jak na talerzu 🙂 Generalnie STD nie ma zbyt dużych perspektyw na przyszłość, a HAL stał się rozwijanym i wspieranym standardem. Może i jest podobny, ale przesiadka bywa bardzo bolesna - doświadczyłem na własnej skórze i wolałem babrać się w rejestrach niż tracić dni na zastanawianie się, czemu nie działa 😉 Może jednak dasz się namówić na zmianę planów? 🙂

Udostępnij ten post


Link to post
Share on other sites

Nawyk, to była moja decyzja, więc ewentualne uwagi należy kierować do mnie. Jednak na wszystko mam jakiś tam plan do tej pory w kursach elektroniki i Arduino się sprawdził, więc tutaj też wierzę, że tak będzie. Na inne metodyki również przyjdzie czas.

Kurs jest już napisany, dopinane są tylko ostatnie drobiazgi końcowych części, więc zmiany nie wchodzą w grę 🙂 Przygotowania do całości od pierwszych moich szkiców trwały naprawdę długo - spokojnie ponad rok... Wierzę, że kurs oparty o STD zainteresuje początkujących właśnie dlatego, że będą mogli znaleźć dodatkowe materiały, źródła, a dodatkowo chyba 99% wystąpień STM32 na Forbocie dotyczy właśnie problemów z programowaniem z użyciem STD 🙂

Udostępnij ten post


Link to post
Share on other sites

Witam,
Ja takze jestem zawiedziony tym ze kurs bedzie prowadzony na podstawie bibliotek std. W praktyce chodzi o to aby znalezione przyklady jak najmniejszym kosztem zastosowac w swoim projekcie. W tym wypadku bedzie trzeba je jeszcze tlumaczyc na HAL'a. Zdaje sobie sprawe z tego ze std jest bardzo stabilne i uzywane od dlugiego czasu, ale warto sie przystosowywac do zmian. Bibliotek std na F7 juz np nie bedzie, co jest zrozumiale.

Szkoda, mialem nadzieje ze dzieki temu kursowi poznam lepiej biblioteki HAL.

Udostępnij ten post


Link to post
Share on other sites

bremenpl, tak jak było wspomniane. Pisanie kursów, to kwestia wyborów, zawsze ktoś będzie niezadowolony. W przypadku HAL byłyby to głosy osób liczących na bibliotekę lub rejestry. W tej chwili wśród osób, które zadawały pytania o STMy na forum najwięcej pytań było o programy pisane na bibliotekach, stąd taki wybór.

Przypominam wszystkim, że kurs jest dostępny za darmo i nikt nie ma obowiązku go czytać. Pod Internetowymi kursami Javy nikt nie pisze komentarzy, że jest zawiedziony brakiem kursu Java Scriptu. Więc jeśli kurs oparty jest o biblioteki, to zrozumiem wszelkie uwagi dotyczące programów opartych o biblioteki. Natomiast nie rozumiem narzekania na całe podejście założone w kursie. Już we wstępie jest informacja o bibliotece, jeśli ktoś nie chce jej używać to nie musi - wolny wybór.

Więc proszę osoby chcące ponarzekać na rzeczy nie związane z kursem programowania STM32 w oparciu o bibliotekę STD o zakładanie nowych tematów, bo to nie jest miejsce do dyskusji o HAL 😉

Udostępnij ten post


Link to post
Share on other sites

Nie ma po co sie denerwowac- podrzucam tylko feedback. Dzieki temu bedzie wiadomo ze sa tez osoby zainteresowane HAL'em. Nie napisalem ze nie powinienes robic w ogole tutoriali. Popieram tego typu aktywnosci, niezaleznie od tematyki.

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