Jak najlepiej zacząć przygodę z rodziną ARM?

Nasze polecane książki, kursy, strony internetowe, fora itp. pomocne przy przyswajaniu wiedzy związanej z ARM firmy STMicroelectronics i pisaniem programów dla nich.
Awatar użytkownika
0110101101101101
Posty: 18
Rejestracja: sobota 12 maja 2018, 14:55

Jak najlepiej zacząć przygodę z rodziną ARM?

Postautor: 0110101101101101 » piątek 18 maja 2018, 07:24

Hej. Pytanko do tych, co już w mikrokontrolerach ARM siedzą głęboko po uszy. :)

Jestem na etapie, gdzie już widzę, o ile lepiej wyposażone, czy to w pamięć, czy w peryferia i o ile bardziej nowoczesne są ARM'y w porównaniu do AVR'ów i poważnie planuję zmianę platformy i chyba to już czas najwyższy. 8-)

Rodzinkę AVR i język C poznaję dopiero od około 4 miesięcy i poznałem w tym czasie zagadnienia takie jak:
przerwania, timery, protokoły komunikacji i2c, spi, 1wire, usart, przetwornik ADC, więc praktycznie same podstawy.

Teraz chciałbym się przesiąść na ARM'y, ale chciałbym zasięgnąć Waszej opinii i wskazówek od czego zacząć?

Myślałem nad zakupem płytki NUCLEO-F411RE z rdzeniem Cortex M4 - czy jest to dobry wybór, czy celować w coś innego?
Używać bibliotek, czy pisać na rejestrach?


Napiszcie troszkę - jak Wy zaczynaliście? Jak byście zaczęli teraz? Podpowiedzcie adeptowi. :D

Awatar użytkownika
StaryAnoda_NEW
User
User
Posty: 103
Rejestracja: środa 04 kwie 2018, 16:48

Re: Jak najlepiej zacząć przygodę z rodziną ARM?

Postautor: StaryAnoda_NEW » piątek 18 maja 2018, 08:43

Hej

Ja co prawda nie siedzę w ARM-ach głęboko po uszy, ale się wypowiem :)

Język C jest taki sam na AVR-ach jak i na ARM-ach (występują delikatne różnice). Ale z doświadczenia wiem, że jeżeli masz jakieś ubytki w C to one bardziej wyjdą w ARM-ach niż w AVR-ach.

AVR-y to standard każdy od nich zaczynał, i dobrze łatwiej jest się połapać w dokumentacji, a obudowy przewlekane sprzyjają nauce.

Jeżeli chodzi o ARM-y to celowałbym na początek na rodzinę F1
http://www.st.com/en/evaluation-tools/nucleo-f103rb.html

Masz do tego kursy:
HAL:
https://forbot.pl/blog/kurs-stm32-f1-migracja-na-hal-wstep-spis-tresci-id23580

SPL(już nie wspierany przez ST):
https://forbot.pl/blog/stm32-praktyce-1-platforma-srodowisko-id2733

Rejestry:
https://www.elektroda.pl/rtvforum/topic3111562.html

Jeżeli chodzi o moją osobę to zaczynałem od mikrokontrolera AVR a dokładnie ATMEGA8 i języka BASCOM, następnie zrobiłem przesiadkę na język C i na mikrokontroler ATMEGA32. Po jakiś dwóch - trzech latach kupiłem pierwszego ARM-a, właśnie wcześniej wspomniany mikrokontroler STM32F103RB, na początku był SPL, potem HAL, a w obecnym czasie staram się używać tylko rejestrów.

AVR-ów używam do dnia dzisiejszego do prototypowania.

Awatar użytkownika
gaweł
Geek
Geek
Posty: 1259
Rejestracja: wtorek 24 sty 2017, 22:05
Lokalizacja: Białystok

Re: Jak najlepiej zacząć przygodę z rodziną ARM?

Postautor: gaweł » piątek 18 maja 2018, 10:44

StaryAnoda_NEW pisze:Jeżeli chodzi o ARM-y to celowałbym na początek na rodzinę F1

To dobry pomysł, celować w mniej złożone procki. Są takie procki STM32F050 (kilka modeli). Wiesz co mają fajnego? Kompilator KEILuVISION jest bezpłatny i bez limitu kodu dla tego procka.

Prawdziwe słowa nie są przyjemne. Przyjemne słowa nie są prawdziwe.
Lao Tse

Awatar użytkownika
StaryAnoda_NEW
User
User
Posty: 103
Rejestracja: środa 04 kwie 2018, 16:48

Re: Jak najlepiej zacząć przygodę z rodziną ARM?

Postautor: StaryAnoda_NEW » piątek 18 maja 2018, 10:50

Fakt to prawda, dla F0 jest darmowa wersja uVision Keil. Dla innych modeli natomiast dobrą alternatywą na dzień dzisiejszy jest Atollic TrueSTUDIO.

Awatar użytkownika
squeez
User
User
Posty: 211
Rejestracja: czwartek 04 lut 2016, 10:13

Re: Jak najlepiej zacząć przygodę z rodziną ARM?

Postautor: squeez » piątek 18 maja 2018, 11:25

Poza tym lepiej poznac jedno środowiako ale dobrze niż skakać z kwiatka na kwiatek. Atollic TrueStudio ma tą przewagę że należy do STM ma pełne wsparcie, porządny debuger jest za free bez żadnych ograniczeń (dla STM32).

A jak zechcesz inne ARM z Cortex to Atollic też da radę może nie będzie wszystkich funkcji w debugerze (wersja lite) ale da się pisać bez ograniczeń.

A na STM32 poza HAL, rejestrami, porzuconym SPL jest jeszcze LL dla mnie to takie połączenie HAL i rejestrów :) lub jak by to inaczej ująć mniej rozbudowany (abstrakcyjny) HAL z domieszką rejestrów ... i mi pasuje najbardziej takie rozwiązanie.

Awatar użytkownika
inż.wielki
User
User
Posty: 307
Rejestracja: niedziela 20 gru 2015, 23:11

Re: Jak najlepiej zacząć przygodę z rodziną ARM?

Postautor: inż.wielki » piątek 18 maja 2018, 12:16

squeez pisze:Poza tym lepiej poznac jedno środowiako ale dobrze niż skakać z kwiatka na kwiatek.


Zaczynając kompilację od skryptów w konsoli, poznawając co z czym, parę mejkfajli i tak na prawdę można korzystać z dowolnego środowiska, bo to tylko nakładki. Dół jest taki sam :)

A według mnie, nie ma znaczenia od jakiego procka zaczniesz. Możesz zacząć od proca f7... bo i tak na początek tylko pomigasz diodą. Chociaż darmowe środowisko ma tutaj duże znaczenie i faktycznie, jest to dobry argument żeby zacząć od tej rodziny procesorów. Pierwszy mój projekt był pisany na L15* z tego co pamiętam. Parę dni mi zajęło wgl ogarnięcie, co robi dane narzędzie w konsoli.

Ewentualnie, jeżeli pracujesz na linuxie, mogę pomóc Ci ze skonfigurowaniem środowiska wprost z konsoli.

Ps: jak w pracy zobaczyli że wszystko robię w konsoli, a szczególnie że korzystam z edytora VI zostałem nazwany "jednym z tych" :lol:

Awatar użytkownika
squeez
User
User
Posty: 211
Rejestracja: czwartek 04 lut 2016, 10:13

Re: Jak najlepiej zacząć przygodę z rodziną ARM?

Postautor: squeez » piątek 18 maja 2018, 12:25

ja też pracuję na linuxie i zaczynałem od tego żeby ożenić ECLIPSE z kompilatorem ARM (STM32) i też sporo rzeźbiłem w konsoli, nawet to działało ale musiałem się namęczyć na początku, łącznie z makefile a najwięcej zabawy miałem ze skryptem linkera, potem jeszcze openocd żeby debugować.
...
Później Atollic wypuściło TrueStudio dla Linux-a (nawet udało mi się zdobyć wersję beta, co dawali zapaleńcom do testów), spróbowałem i już się nie męczę we własnoręczne rzeźbienie :) taki morał mojej przygody.

Ale jak to mawiają, najlepiej uczy się na własnych błędach niż na cudzych :)

SuperGość
Uber Geek
Uber Geek
Posty: 2346
Rejestracja: piątek 04 wrz 2015, 09:03

Re: Jak najlepiej zacząć przygodę z rodziną ARM?

Postautor: SuperGość » piątek 18 maja 2018, 12:28

Zerknij "po sąsiedzku" w temat viewtopic.php?f=53&t=1699

Awatar użytkownika
inż.wielki
User
User
Posty: 307
Rejestracja: niedziela 20 gru 2015, 23:11

Re: Jak najlepiej zacząć przygodę z rodziną ARM?

Postautor: inż.wielki » piątek 18 maja 2018, 17:04

Ale przyznaj ile razy przydała Ci się wiedza "co siedzi pod maską". W wypadku gotowego środowiska tak na prawdę nie wiesz co się dzieje pod spodem. A ja do dziś korzystam tylko i wyłączonie z konsoli, nawet kod na ESP piszę w VIM i wrzucam poprzez własne skrypty. Dzięki temu można potem na prawdę dużo procków obsługiwać i to dosyć szybko, wystarczy kompilator, a samo środowisko przecież pisze się raz, tzn skrypty. Potem to już jest tylko kopiuj wklej :)

Awatar użytkownika
0110101101101101
Posty: 18
Rejestracja: sobota 12 maja 2018, 14:55

Re: Jak najlepiej zacząć przygodę z rodziną ARM?

Postautor: 0110101101101101 » poniedziałek 21 maja 2018, 12:14

StaryAnoda_NEW pisze:Jeżeli chodzi o ARM-y to celowałbym na początek na rodzinę F1
http://www.st.com/en/evaluation-tools/nucleo-f103rb.html


Dziękuję za odpowiedź! Zdecyduję się właśnie na rodzinę F1, dziękuję również za podesłane kursy! :)

squeez pisze:Poza tym lepiej poznac jedno środowiako ale dobrze niż skakać z kwiatka na kwiatek. Atollic TrueStudio ma tą przewagę że należy do STM ma pełne wsparcie, porządny debuger jest za free bez żadnych ograniczeń (dla STM32).

A jak zechcesz inne ARM z Cortex to Atollic też da radę może nie będzie wszystkich funkcji w debugerze (wersja lite) ale da się pisać bez ograniczeń.

A na STM32 poza HAL, rejestrami, porzuconym SPL jest jeszcze LL dla mnie to takie połączenie HAL i rejestrów :) lub jak by to inaczej ująć mniej rozbudowany (abstrakcyjny) HAL z domieszką rejestrów ... i mi pasuje najbardziej takie rozwiązanie.


Ściągnąłem właśnie Atollic i z tym środowiskiem rozpocznę naukę. Dziękuję. :)


inż.wielki pisze:Ewentualnie, jeżeli pracujesz na linuxie, mogę pomóc Ci ze skonfigurowaniem środowiska wprost z konsoli.


Ja akurat pracuję na Windowsie, ale dziękuję serdecznie za odpowiedź! :)

wojtek pisze:Zerknij "po sąsiedzku" w temat viewtopic.php?f=53&t=1699" target="_blank


Myślę, że najpierw zacznę od czegoś w języku polskim - angielski mam wystarczający do czytania i rozumienia dokumentacji, ale z całą książką mógłbym mieć problemy - znalazłem u nas na forum podlinkowany kurs z elektrody: https://www.elektroda.pl/rtvforum/topic3111562.html jest on przeznaczony dla początkujących i uczy programowania na rejestrach, a nie wykorzystuje bibliotek - na nie można przeskoczyć przecież w każdym momencie. :)

Awatar użytkownika
StaryAnoda_NEW
User
User
Posty: 103
Rejestracja: środa 04 kwie 2018, 16:48

Re: Jak najlepiej zacząć przygodę z rodziną ARM?

Postautor: StaryAnoda_NEW » wtorek 22 maja 2018, 12:12

Tutaj jeszcze darmowa książka o STM32 i HAL:
https://smtebooks.us/book/11156/programming-stm32-pdf

kingahar
Posty: 1
Rejestracja: poniedziałek 28 maja 2018, 17:45

Re: Jak najlepiej zacząć przygodę z rodziną ARM?

Postautor: kingahar » poniedziałek 28 maja 2018, 18:04

O, dzięki wielkie za wszelkie porady :) Przyda mi się to :)


Wróć do „Źródła wiedzy na temat ARM z STMicroelectronics”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 3 gości