2013-07-21 20 views
8

Kupiłem zestaw do oceny LaunchPada TM4C123G firmy Tiva z Texas Instruments. Zestaw ten zawiera małą płytkę z mikrokontrolerem ARM Cortex M4F. Teraz chcę zacząć pisać oprogramowanie dla tego mikrokontrolera. Jestem przyzwyczajony do programowania 8-bitowych mikrokontrolerów AVR przy użyciu AVR Studio w systemie Windows. Słyszałem, że programowanie mikrokontrolerów opartych na ARM w systemie Linux jest łatwe, a ponieważ Linux jest moją główną platformą, chciałbym mieć proste IDE, które będzie działać mniej więcej tak, jak jestem przyzwyczajony do AVR.Rozwój ARM na systemie Linux

Od kilku dni szukam dobrego IDE i narzędzi, które wykonają zadanie. Ku mojemu zaskoczeniu, tylko kilka uruchomi się na Linuksie, a żadna nie jest open source ani freeware. Czy to naprawdę może być prawda? Nie chcę wydawać kilkuset dolarów tylko po to, żeby wypróbować programowanie dla Cortexa M4F. Nie chcę też uczyć się jednego IDE od czasu do czasu później, gdy dowiedziałem się, że nie jest wystarczająco dobry lub zbyt drogi. Jestem przyzwyczajony do Linuksa i metody open source i jestem zszokowany tym, że nikt nie wydaje się robić poważnego wbudowanego programowania ARM z narzędziami open source na Linuksie. Proszę, popraw mnie jeśli się mylę.

Nie mam żadnych planów na Linuksie na Cortex M4F - po prostu chcę go zaprogramować jak normalny mikrokontroler.

Texas Instruments zaleca jeden z następujących łańcuchów narzędzie na tylnej okładce zestawu ewaluacyjnego:

  • Code Composer Studio IDE: pełne wyżywienie funkcjonalny zablokowana
  • Keil: adres 32KB ograniczone
  • IAR: adres 32KB ograniczone
  • Mentor Wbudowany Sourcery CodeBench: 30 dni pełną funkcjonalną

Polecono mi też Red Studio z code_red.

Żadne z nich nie jest open source ani bezpłatne, a wszystkie mają ograniczenia. Wydaje mi się, że tylko Code Composer Studio i Red Studio są zgodne z Linuksem.

Natknąłem się na kolejny produkt, Rowley CrossWorks, który jest kompatybilny z Linuksem, ale nadal jest bardzo komercyjny i drogi.

Czy to prawda, że ​​nie ma alternatywy open source? Większość produktów wydaje się korzystać z Eclipse i GCC, które powinno się obejść bez tych komercyjnych pakietów, prawda? Po prostu nie mogę znaleźć samouczka ani przewodnika wyjaśniającego, jak to ustawić dla wbudowanego programowania ARM. Muszę również wiedzieć, jak zaprogramować urządzenie po kompilacji.

Naprawdę chcę zacząć wkrótce. Wszelkie porady i pomysły są bardzo cenne :-)

+0

https://github.com/dwelch67/stellaris_launchpad Zastanawiam się, czy pozbyli się nazwy stellaris, a teraz jest tiva. Nie używam IDE, jeśli jesteś ograniczony do korzystania z IDE, dobrze jesteś sam. Ale narzędzia gnu działają doskonale, nie musisz korzystać z tych narzędzi do płacenia za markę ... chyba że naprawdę chcesz ... –

+0

Tak, zmienili markę na tiva c ... –

+0

@ pvh1987 - your pytanie wydaje się przyciągać zarówno spamerskie odpowiedzi, jak i nadmierną uwagę moderatora. Prostym faktem jest to, że to, co chcesz zrobić, jest możliwe, używając tylko darmowych narzędzi (zazwyczaj jakiejś wersji GCC), ale może to zająć trochę pracy i doświadczenia, aby skonfigurować, a przykładowy kod producenta często będzie wymagał skryptu portowania i kompilacji pisząc, zanim to zadziała. –

Odpowiedz

8

To zawsze to samo, bez względu na to, jaką masz tablicę eval: STM32 discovery, LPCXpresso, TI Launchpads. Są bardzo tanie, ale zalecane IDE są ograniczone: ich rozmiar jest ograniczony, tylko Windows lub są związane z konkretną dystrybucją Linuksa.

Z mojego doświadczenia wybór zależy od Twoich celów długoterminowych:

  • Chcesz udostępnić kod z AVR 8-bit (lub PIC32, Renesas RX 32, ...)?
  • Czy to średnioterminowy/długoterminowy cel polegający na zbudowaniu systemu opartego na make?
  • Czy potrzebujesz uzupełnienia tabulatora i/lub zintegrowanego debuggera?
  • Czy chcesz wypróbować inne karty eval w przyszłości (bez konieczności instalowania kolejnego IDE)?

A może chcesz go szybko uruchomić? W takim przypadku użyłbym jednego z zalecanych IDE, aby uzyskać wrażenie.

Z drugiej strony, wszystkie 32-bitowe mikrokontrolery, których użyłem (Cortex-M0/3/4, PIC32, Renesas RX) można zaprogramować za pomocą gcc. O ile mi wiadomo, Code Red, Mentor i MPLABX używają gcc (lub zmodyfikowanego gcc).

Zawsze istnieje możliwość użycia Eclipse z projektem Makefile i gcc. Próbowałem już dwa razy, ale to nie działało dobrze dla mnie, ponieważ dzielę biblioteki między różnymi celami i trudno mi było omijać definicje w Eclipse.

Więc moja IDE jest Makefile, Emacs i gcc, i przestawił się całkowicie przy użyciu C++: To może być kolejna zaleta korzystania gcc.

Obie możliwości (Eclipse z projektem Makefile lub po prostu redaktor z make) nie są „z półki”: Wymagają czasu, cierpliwości, a Twoja ulubiona wyszukiwarka internetowa.

Aktualizacja

nie jestem świadomy kompletnego tutorial jak skonfigurować GCC + uczynić środowisko oparte, tak po prostu opisać podstawowe kroki zrobiłem to kilka lat temu (z pewnymi zmianami) .

się następujące etapy STM32 specyficzny:

  • Pobierz jedną z płyt wykrywania, na przykład linii wartość STM32 Discovery.

  • Pobierz narzędzie flash: używam stlink (git clone https://github.com/texane/stlink.git). Obejmuje to również backend GDB.

  • Istnieją różne przykłady dostępne, wyszukaj „stm32vl mgnieniu odkrycie” (nie mogę polecić je tutaj, jeden użyłem zniknął)

Jako alternatywę (lub follow-up): Pobierz z peryferyjne przykłady oprogramowania

  • znajdziecie GNU ld zgodną skrypt linkera w Project/Examples/GPIOToggle/TrueSTUDIO/stm32_flash.ld

  • Znajdziecie GNU jako kompatybilnego starcie w Libraries/CMSIS/CM3/DeviceSupport/ST/STM32F10x/startup/TrueSTUDIO/startup_stm32f10x_ld_vl.s

  • Znajdziesz tu wszystkie inne wymagane pliki i biblioteki obejmują źródła w archiwum .zip oraz

  • Spójrz na projektu GPIOToggle (Project/Examples/GPIOToggle)

  • Napisz Makefile skompilować, łącze, a błysk

+0

czy możesz zaproponować jakieś samouczki dla kogoś, kto rozważa gryzienie kuli i wykonanie jej z linii poleceń? [tworzenie łańcucha narzędzi, przepływ pracy, ...] Wyznaję, że mam nawyk zależności IDE (biorąc pod uwagę grupę wsparcia dla niego). Ale jak wskazujesz, opcje pod Linuksem są cienkie do nieistniejących. Mam kilka płyt STM32, z którymi chcę się bawić, ale chciałbym również poradzić sobie z innymi dostawcami. – norlesh

+0

@norlesh Zaktualizowałem odpowiedź. Te kroki mają również zastosowanie do innych dostawców: NXP (lpc), TI (Stellaris), ... – Beryllium

+0

Nie używaj narzędzi open source. Potrzebujesz dobrego debuggera, fajnego interfejsu do odczytu stanów rejestrów i innych plików cookie do używania PRO. Te nigdy nie łączą się z narzędziami open source.Próbowałem wszystkiego, by stworzyć darmowy interfejs programowania dla ARM wraz z debuggerem i ogólnie nie można tego zrobić na Linuksie za darmo. Moim najlepszym pomysłem było używanie IDE KDevelop/Eclipse/CodeBlocks razem z plikami Makefile, ale żadne z tych narzędzi nie zawierało wbudowanych plików cookie. Zrekompensowałem to, kupując sondę Segger J-LINK JTAG i użyłem JLink Commander do monitorowania rejestrów w terminalu zewnętrznym, ale zasysane ... Kup narzędzia własności ... – 71GA

1

Aby zbudować własne środowisko programistyczne można użyć następującej kombinacji:

  • Eclipse CDT
  • Pobierz toolchain być stosowany (oficjalną wersję GCC lub jakiś innych firm dostosowane dla danej platformy)
  • zintegrować toolchain do środowiska Eclipse poprzez wewnętrzny system budowania Eclipse (builder CDT) lub przez zewnętrzny builder (np. make)
  • W celu uzyskania wsparcia JTAG debugowania, jest GDB Hardware Debugging plug-in Eclipse trzeba będzie skonfigurować

udało mi się zakończyć moją własną konfigurację w taki sposób dla LPC1769 (Cortex-M3 CPU) i zadziałało :)

+0

Czy możesz udostępnić dowolne linki, które pomogą w skonfigurowaniu Eclipse do opracowania wbudowanego linuxa . Chciałbym skonfigurować Eclipse CDT do opracowania oprogramowania dla procesora TIVA Cortex M4. –

+0

Cortex M4 nie jest w stanie uruchomić w pełni rozwiniętego wbudowanego systemu Linux, tylko uClinux. – Adi

+0

Dzięki za twoje dane, udało mi się skonfigurować Eclipse CDT do zaprogramowania Cortex-M4. Załącz to link, który pomoże mi zacząć. http://chrisrm.com/howto-develop-on-the-ti-tiva-launchpad-using-linux/. Twój wpis był bardzo pomocny. –