Skocz do zawartości
Komentator

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

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.

Udostępnij ten post


Link to post
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.

Udostępnij ten post


Link to post
Share on other sites

Spotkał się może komuś z taki błędem po kliknięciu "Debug" gdy Launching HelloSTM32 Debug (91%) pojawia się następujący komunikat :

Co należy zrobić aby pozbyć się tego błędu ?

Udostępnij ten post


Link to post
Share on other sites

Ten błąd nic nie mówi, pokaż details.

Udostępnij ten post


Link to post
Share on other sites
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.

Udostępnij ten post


Link to post
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

Udostępnij ten post


Link to post
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.

Udostępnij ten post


Link to post
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ć.

Udostępnij ten post


Link to post
Share on other sites

Ma ktoś jakiś pomysł co może być powodem nie działającego debugera ?

Czy może coś jest zepsute ?

Udostępnij ten post


Link to post
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 😉

Udostępnij ten post


Link to post
Share on other sites
Marcinas, a ST-link Utility widzi procesor?

Mógłbyś mi powiedzieć jak to sprawdzić 🙂

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ść
Napisz odpowiedź...

×   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...