Wpis z mikrobloga

@kk87ko0: warto moim zdaniem zacząć od AVR i programowania na rejestrach żeby zakumać jak to działa.
Kiedy ogarniesz AVR to przesiadasz się na STM32 albo PIC
uczysz się znowu na rejestrach podstaw operacji tych procków a potem korzystasz z HALa który operacje na rejestrach robi za Ciebie.
Później wracasz do pisania samodzielnie na rejestrach bo HAL bywa upośledzony :)
  • Odpowiedz
@kk87ko0: Nie ma jednej dobrej odpowiedzi. Zależy co już umiesz i po co chcesz się uczyć. Ogólnie 8-bit to już trochę archaizm, z drugiej strony do arduino są biblioteki praktycznie na wszystko.
  • Odpowiedz
@hitherto: No raczej powiedzmy, że zastanawiam się jak zacząć. Docelowo to STM32, czy jakiś PIC, ale czy wskoczenie od razu na STM32 nie okaże się zbyt trudne? Dlatego może AVR, czy wiedza nabyta na AVR przełoży się na szybkie wdrożenie do STM? Arduino w ogóle odpada.
  • Odpowiedz
@kk87ko0: a dobrze znasz C? Jeśli tak to myślę że spróbowałbym z stm32, ma bardzo wysoki próg wejścia ale jak przeskoczysz to będziesz miał z głowy. Wiedza się raczej nie przekłada, tzn ogólne zasady, protokoły tak, ale architektura jest zupełnie inna, pamięć jest inaczej zorganizowana, bootloadery działają inaczej, inne są narzędzia.

To tak jakbyś chciał uczyć się MacOS żeby przejść potem na Linuxa. Nie ma to dużego sensu.
  • Odpowiedz
Nie ma to dużego sensu.


@hitherto: Dlatego pytam, chociaż na dwie osoby które zabrały głos zdania są podzielone @Tymian:

a dobrze znasz C?


Liznąłem wszystkich tematów po trochu na PC, wskaźniki, struktury itp. ale żeby znał to bym nie nazwał.
  • Odpowiedz
  • 1
@kk87ko0 podałem swoją ścieżkę którą uważam za prawidłową, gdyż nie lubię pracować jeśli czegoś nie rozumiem.

Najlepiej zrozumieć najpierw proste timery i rejestry żeby zakumac jak to działa a potem siadać do dużych kobył.

AVR jest dosyć przystępny do zrozumienia, w miarę prosty, logiczny i bardzo dobrze opisany.
  • Odpowiedz
  • 0
@kk87ko0 a no i nie jestem embedded developerem tylko elektronikiem :p
Programować potrafię o tyle żeby przetestować swój projekt i znajomość podstaw i świadomość funkcjonalności i ograniczeń ułatwia mi pracę.
  • Odpowiedz
@kk87ko0: do nauki zacząłbym od najprostszych AVR, po prostu sobie wymyśl jakiś projekt / znajdź sensowny eval board / tutorial. Co wydaje mi się bardzo istotne - zaopatrz się w jakąś dobrą książkę na temat tego mikroprocka i po bibliografii znajdź jakąś dobrą książkę ogólną o mikroprockach.

Pobaw się i popisz sobie różne programy. Na samym początku najważniejsze dla Ciebie będzie nauczenie się danej architektury i tego jak ona działa. W AVRach pracujesz na rejestrach, stąd możesz się tego nauczyć. Ta wiedza Ci będzie potrzebna jako baza.

Co ważne unikaj
  • Odpowiedz
@kk87ko0: także MOIM zdaniem, jeżeli nie miałeś jeszcze styczności z mikrokontrolerami, to możesz spokojnie obrać alternatywną wobec proponowanych wyżej ścieżek:

arduino AVR -> (rejestry AVR -> HAL STM32)* -> rejestry STM32 z generowaniem kodu z Cube'a -> rejestry STM32 z własnym skryptem linkera i "bootsekcją" w asm bez używania żadnych generatorów

* można zamienić
  • Odpowiedz
Te rady odnośnie "zacznij od rejestrów na AVR, ale unikaj STM32, bo wysoki próg wejścia" się wykluczają xD

Co jest łatwiejszego w rejestrach AVR od rejestrów STM32? W obu przypadkach orasz dokumentację i patrzysz, który bit co włącza


@zwei: nie wykluczają się. Kto powiedział, że wchodzenie w mikroprocki powinno być łatwe i szukamy łatwiejszej drogi?

Łatwa droga to arduino, ale do nikąd nie prowadzi dla osoby typu OP (czyli jak na moje oko już dość
  • Odpowiedz
@quizonmyface: sam jak zaczynałem jako "osoba zaawansowana technicznie" tzn. potrafiąca programować dość nieźle, zabawę z MCU, to podążałem taką ścieżką jaką nakreśliłem i jakoś nie uważam, żeby to mnie zaprowadziło donikąd

Potem przez 2,5 roku pracowałem w branży i do dzisiaj hobbystycznie sobie dłubię w mikroklockach i lubię niski poziom jak na niskopoziomowe programowanie, tzn. tzw. programowanie na rejestrach. Lubię także asemblera, ale uważam, że gdybym zaczął od trudniejszej drogi,
  • Odpowiedz
@quizonmyface: no i też nie mówię, że nie należy uczyć się architektury i orać dokumentacji. Tylko najpierw trzeba złapać zajawkę. Zrobić projekt albo kilka projektów wysokopoziomowo, żeby zobaczyć jakie fajne rzeczy własnoręcznie można zrobić, a potem można już będąc podjaranym uczyć się trudniejszych rzeczy.
  • Odpowiedz
@zwei: co do arduino to myślę, że mnie przekonałeś. Właściwie to nie jest duża inwestycja, ani jeśli chodzi o kasę, ani czas, a jednak można się dużo nauczyć. Skorygowałbym to tylko, żeby się nie skupiać na arduino za bardzo i nie poświęcać mu zbyt dużo :D

No ale Twoja sciezka i tak przewiduje
AVR rejestry -> STM HAL,
Co sporo osób i tak by nazwało właśnie elitarystycznym podejściem. Więc też
  • Odpowiedz
@quizonmyface: ale dałem gwiazdkę, że można zamienić kolejność w sumie :P Nie trzeba się męczyć niskopoziomowo przed poznaniem STM32, bo jest HAL, ale warto znać pojęcia takie jak SPI, I2C, ADC, timery, PWM, stany GPIO takie jak wysoka impedancja, pull-up, pull-down. No ogółem znać najczęściej wykorzystywane peryferia i ich opcje.

Ale tak, na pewno znajomość niskiego poziomu pomaga przed wejściem w STM32. Uważam, że na pewnym etapie rejestry należy poznać
  • Odpowiedz