Mam płytę odkrywczą STM32 i chciałbym móc ją programować w systemie Linux.
Jak najłatwiej to zrobić?
linux
stm32
development
development-tools
Gordon Williams
źródło
źródło
Odpowiedzi:
Prostym sposobem na zaprogramowanie i debugowanie płyty STM32 Discovery (lub dowolnego STM32 używającego programatora ST-Link) jest skorzystanie z projektu „stlink” https://github.com/texane/stlink (jednak OpenOCD wydaje się również popularny)
Płyty ST Nucleo pojawiają się również jako urządzenia flash USB, więc nawet nie potrzebujesz
stlink
- po prostu skopiuj do nich plik.Istnieje kilka dobrych stron na temat programowania dla wykrywania STM32 w systemie Linux, takich jak http://gpio.kaltpost.de/?page_id=131 i http://torrentula.to.funpic.de/2012/03/22/ setup-up-the-stm32f4-arm-development-toolchain / i http://jethomson.wordpress.com/2011/11/17/getting-started-with-the-stm32f4discovery-in-linux/
Jednak najbardziej użyteczny był ostatni link. Pokazuje, jak budować projekty STM32 w obecnej postaci - Jedyną zmianą jest dodanie jego Makefile, co wydaje się idealnym rozwiązaniem.
W najnowszych wersjach Ubuntu istnieje pakiet, który można zainstalować, który zawiera kompilator ARM:
Zauważ, że wszystkie procesory są nieco inne. STM32F0..4 będzie potrzebował różnych flag kompilatora, a skrypt linkera będzie nieco inny dla każdego (choć tylko ze względu na zmienione rozmiary pamięci RAM i Flash).
Edycja: jeśli chcesz naprawdę szybko zacząć, możesz także zajrzeć na stronę http://www.espruino.com . Jest to interpreter JavaScript, który działa na samym STM32, więc po zainstalowaniu „stlink”, aby można było flashować na płycie, możesz po prostu pobrać obraz z tej strony, flashować go, a następnie połączyć się z aplikacją terminalową i rozpocząć programowanie.
źródło
Jeśli bardziej interesują Cię edytory tekstu i pliki Makefile zamiast korzystania z GUI, możesz:
Doprowadź swój projekt do tablicy. Albo użyj
Kod w edytorze tekstu i użyj narzędzi wiersza polecenia. Ten samouczek zawiera wiele wskazówek.
Cieszyć się
źródło
Eclipse , GCC i OpenOCD to jeden zestaw narzędzi. Zalecane przez EMCU-IT i nie ma dodatkowych informacji tutaj . Strony te również zalecają korzystanie z RTOS, takiego jak FreeRTOS.org , ale to zależy od ciebie.
Aby uzyskać pomoc w kompilowaniu przykładów STM32 w systemie Linux, przejdź tutaj . Ten link wskazuje plik makefile dla przykładów, które można wywołać
Udokumentowano również kilka drobnych poprawek kodu, ale większość projektu powinna działać
źródło
Odniosłem sukces w https://github.com/JorgeAparicio/bareCortexM (patrz także powiązane posty na blogu). Uwielbiam to, że mogę po prostu przejść krok po kroku przez kod lub przeglądać pamięć urządzenia zamiast wstawiać w kodzie instrukcje debugowania lub zgadywać, co dzieje się w układzie.
Projekt bareCortexM jest szablonem Eclipse do programowania z serią Cortex M, zwłaszcza STM32, w C ++ bez systemu operacyjnego. Jest skonfigurowany do korzystania z openocd, gcc i ma skrypty do flashowania i debugowania na kilku celach, w tym na niektórych płytach odkrywania. Postępując zgodnie z instrukcjami i instalując zalecane wtyczki Eclipse, mogłem używać mojego STM32VLDISCOVERY na Ubuntu.
Zgodnie z zaleceniami połączyłem szablon Eclipse z biblioteką szablonów libstm32pp C ++ tego samego autora dla sprzętu STM32. libstm32pp zapewnia zaskakująco kompletne zastąpienie CMSIS i często krytykowanych sterowników STM32 modelem programowania, który pozwala wypowiadać się jak
PB10::setMode(gpio::cr::GP_OPEN_DRAIN_2MHZ)
i /PINB::setLow()
lub wPINB::setHigh()
większości skompilowany inline ze względu na szablony C ++. Konfiguracja jest bardzo ładna.źródło
Może przydałby się komuś: mój krótki artykuł (po rosyjsku) i prosty projekt . Wszystko w systemie Linux i bez zbędnych rzeczy, takich jak zaćmienie.
Biblioteki zostały pobrane ze strony internetowej ST, makefile - z jednego z wielu przykładów GPL w Internecie.
źródło
Oto niewielki, ale innowacyjny projekt szablonu umożliwiający szybkie rozpoczęcie korzystania z płyty STM32F0 Discovery w systemie Linux lub dowolnym innym systemie operacyjnym:
https://github.com/dobromyslov/stm32f0-chibios-template
Pamiętaj, że projekt wykorzystuje ChibiOS - darmowy system operacyjny czasu rzeczywistego typu open source, więc nie jest to od samego początku implementacja gołej kości.
źródło
Używam vim i arm-none-eabi-gcc wraz ze wszystkimi zwykłymi narzędziami programistycznymi dla Linuksa. Linux jest moim zdaniem zdecydowanie lepszym środowiskiem programistycznym do pracy osadzonej. Do debugowania używam stlink i arm-none-eabi-gdb.
źródło
Rozważ platformio . Jeśli w ogóle nie podoba ci się wiersz poleceń, przekonasz się, że platformio znacznie ułatwia proces programowania.
pio init
można użyć do skonfigurowania projektu.pio run
wykorzystuje zestaw narzędzi do kompilacji.pio run --target upload
wysyła kod do urządzenia. Platformio dba o pobieranie komponentów łańcucha narzędzi, bibliotek itp. W razie potrzeby.źródło