Skocz do zawartości

Kurs STM32 - #3 - Płytka Nucleo, konfiguracja środowiska


Komentator

Pomocna odpowiedź

Czy można używać tą płytkę z innymi systemami niż Windows? Konkretnie chodzi mi o Debiana. Skąd wziąć sterowniki?

Można, ale wymagałoby to opisania jak się tak naprawdę programuje ARM-y, a nie tylko pokazania gdzie ściągnąć program, który wszystko robi za nas. Ja miałem już kilka podejść do tego z OpenOCD, gdb, gcc i programatorem jtag, ale niestety jest na tyle ruchomych elementów, że bardzo ciężko trafić w działającą konfigurację, a wyczytać jej z datasheetów nie umiem.

Link do komentarza
Share on other sites

Testowałem na Ubuntu 14.04 oraz NUCLEO-F103RB i działa bardzo ładnie. Tylko trzeba odinstalować wszystko co było z dystrybucją - jest stare i tylko przeszkadza.

OpenOCD: http://sourceforge.net/projects/openocd/files/openocd/0.9.0/

Kompilator: https://launchpad.net/gcc-arm-embedded/+download

Java: najlepiej oryginalna http://java.com/en/

Eclipse: najnowsza wersja, z CDT http://www.eclipse.org/downloads/

STM32 plugin: http://gnuarmeclipse.sourceforge.net/updates

Plugin sam pobiera bibliotekę StdPeriph.

Nie trzeba nic więcej niż pod Windę wiedzieć o programowaniu ARM-ów, datasheet-y też nie będą niezbędne.

Link do komentarza
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

Nie trzeba nic więcej niż pod Windę wiedzieć o programowaniu ARM-ów, datasheet-y też nie będą niezbędne.

Tak, zastępujesz jeden program który wszystko za ciebie robi innym. A bym jednak wolał wiedzieć jak to zrobić bez magicznych pluginów tak, żebym wiedział co tak naprawdę się tam dzieje i móc na przykład zaprogramować nowy mikrokontoler, do którego nikt jeszcze pluginu nie zrobił. Bo programować to sobie równie dobrze mogę przez stm32duino 🙂

Oczywiście zdaję sobie sprawę, że to jest zupełnie poza zakresem tego tutoriala i wcale nie oczekuję, że ktoś będzie to tu opisywał. Po prostu muszę sam kiedyś przysiąść i poszukać jak to się robi.

Link do komentarza
Share on other sites

Nie wiem jak dużo chcesz "ręcznie" zrobić. Ale ogólnie to wcale nie jest takie skomplikowane.

Po pierwsze plugin pobiera odpowiednie biblioteki i dołącza do projektu - to chyba łatwo zrobić ręcznie, chociaż czasem bywa męczące.

Kolejny etap to kompilacja. Jeśli znasz make-a to nie ma problemu - po prostu tworzysz Makefile, zupełnie jak przy gcc, tylko używasz arm-none-eabi-gcc. Trzeba podać jeszcze kilka flag, np. typ procesora - to najłatwiej podpatrzeć śledząc konsolę Eclipse i działanie plugina.

Kompilator przygotuje gotowy plik wykonywalny, można sprawdzić co w nim jest za pomocą arm-none-eabi-readelf.

Ostatni etap to zaprogramowanie mikrokontrolera. Możesz oczywiście pisać własne narzędzia, ale radziłbym wykorzystać coś gotowego. Najłatwiej OpenOCD - uruchamiasz go jako oddzielny proces, który oczekuje na połączenie od debuggera (gdb).

Teraz wystarczy połączyć się, tylko trzeba używać odpowiedniej wersji - zamiast gdb, arm-none-eabi-gdb. Po połączeniu wszystko działa jak w normalnym gdb... Oczywiście o ile znasz i lubisz pracę z tym narzędziem.

Ogólnie polecałbym najpierw poznać działanie plugina, a dopiero później "ręcznie" wykonywać kolejne etapy. Chociażby gdb można uruchomić ręcznie dla programu przygotowanego w eclipse. Nauka komend tego debuggera to niezła zabawa, ale później można sprzedać myszkę i jak prawdziwy geek pracować tylko w trybie tekstowym 😉

  • Lubię! 1
Link do komentarza
Share on other sites

Nie wiem jak dużo chcesz "ręcznie" zrobić. Ale ogólnie to wcale nie jest takie skomplikowane.

Tak, przeszedłem przez to dokładnie tak jak napisałeś. Są jeszcze drobne dodatkowe kroki, jak skonfigurowanie linkera i samego OpenOCD pod konkretny mikrokontroler i programator -- do tego właśnie wymagane są datasheety. No i chyba niepotrzebnie się upierałem na używanie narzędzi systemowych, zamiast pokompilować wszystko samemu -- miałem potem straszne problemy z niezgodnością wersji. Muszę zrobić kiedyś po prostu kolejne podejście.

Tak jak piszesz, myszki do programowania raczej nie używam i za Eclipse nie przepadam. W zupełności wystarcza mi mój ukochany Vim.

Link do komentarza
Share on other sites

Oczywiście, że jest jeszcze dużo "drobnych" kroków, dlatego łatwiej jest wykorzystać gotowe narzędzie niż ręcznie wszystko konfigurować. Ale to dobrze że chcesz wnikać w szczegóły - zawsze można się czegoś wtedy dowiedzieć.

Radziłbym tylko zacząć jakby "od końca" - wygenerować i skompilować program w Eclipse, a później przenieść go do swojego projektu. Wtedy będziesz mógł sprawdzić co dokładnie musiał zrobić plugin, które pliki były potrzebne itd. Dzięki temu będziesz miał gotowca, który działa, a później będzie dużo łatwiej wszystko samemu przygotować.

Link do komentarza
Share on other sites

Czy można używać tą płytkę z innymi systemami niż Windows? Konkretnie chodzi mi o Debiana. Skąd wziąć sterowniki?

Na stronie z programem w dziale download mozna poprosic o zapisanie do beta testow wersji dla linuksa ewentualnie sciagnac stad wersje 1.3 - dziala bez problemu - jestem po pierwszej lekcji, nawet instaluje skrypty do udev, wiec zero konsoli jak ktos nie lubi 😉

Link do komentarza
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!

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.