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
Newb
Newb
Posty: 65
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.
done is better than perfect

Awatar użytkownika
gaweł
Expert
Expert
Posty: 616
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
Newb
Newb
Posty: 65
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.
done is better than perfect

Awatar użytkownika
squeez
User
User
Posty: 208
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: 253
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: 208
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 :)

Awatar użytkownika
wojtek
Geek
Geek
Posty: 1910
Rejestracja: piątek 04 wrz 2015, 09:03
Lokalizacja: JO90JK

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

Postautor: wojtek » piątek 18 maja 2018, 12:28

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

Awatar użytkownika
inż.wielki
User
User
Posty: 253
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
Newb
Newb
Posty: 65
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
done is better than perfect

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 0 gości