Spisu treści:

Rozpocznij tworzenie STM32 w systemie Linux: 4 kroki
Rozpocznij tworzenie STM32 w systemie Linux: 4 kroki

Wideo: Rozpocznij tworzenie STM32 w systemie Linux: 4 kroki

Wideo: Rozpocznij tworzenie STM32 w systemie Linux: 4 kroki
Wideo: [Live] STM32 - bit-banding, programowy UART (x12) 2024, Lipiec
Anonim
Image
Image
Pobierz wszystko, czego potrzebujesz
Pobierz wszystko, czego potrzebujesz

W tej instrukcji pokażę, jak łatwo jest rozpocząć tworzenie programów STM32 w systemie Linux. Zacząłem używać Linuksa jako mojej głównej maszyny 2 lata temu i nie zawiodłem się. Wszystko działa szybciej i lepiej niż okna. Oczywiście od czasu do czasu jest to mniej wygodne, ale zmusza cię do głębszego uczenia się rzeczy, abyś mógł z niego korzystać.

W każdym razie, w tej instruktażowej części serii, którą tutaj zaczynam, ORAZ na youtube jest o tym, jak ją uruchomić. Koniecznie obejrzyj również mój film na youtube, w którym wyjaśniam wszystko jako jeden segment i możesz kodować obok mnie.

W tej serii pokażę Ci, jak możesz programować przy użyciu tylko edytora tekstu, takiego jak notatnik, SublimeText lub Atom, więc nie potrzebujesz żadnego zastrzeżonego oprogramowania ani IDE. To jest tak gołe, jak to tylko możliwe i jest zaskakująco łatwe.

Krok 1: Pobierz wszystko, czego potrzebujesz

Aby wszystko działało, musisz pobrać trzy części:

  • Kompilator GCC dla ARM
  • Pliki oprogramowania układowego STM32
  • Narzędzie St-link
  • Przykładowy projekt

Kompilator to główne oprogramowanie, które kompiluje nasz kod C ze wszystkimi innymi plikami bibliotek w języku maszynowym, który może zrozumieć nasz kontroler stm32. Pobierz najnowszą wstępnie skompilowaną wersję tego kompilatora.

Folder zawierający firmware STM32 to ten, który zawiera wszystkie pliki startowe i podstawowe potrzebne do działania procesora głównego. Będziemy używać standardowej biblioteki urządzeń peryferyjnych, która została przekroczona przez HAL. Bardziej podoba mi się StPeriphLibrary, ponieważ firmy pracujące na tych procesorach używają ich, ponieważ są one solidne, starsze i obsługiwane. Jest również bardziej wytrzymały. Nie ogranicza to pracy, którą musisz wykonać, aby zainicjować urządzenie peryferyjne lub włączyć diodę LED, ale zmusza cię do nauczenia się, jak działają te procesory. Dzięki temu masz większą wiedzę na temat wewnętrznych działań, dzięki czemu programowanie każdego zadania ma sens.

Ostatnim programem do pobrania jest narzędzie st-link. Utrzymywany jest na githubie i służy do przesyłania skompilowanych plików binarnych do procesora za pomocą układu stlink na płytce służącej jako programator/debugger SWD/JTAG.

Dostarczyłem również przykładowy folder projektu, o którym opowiem później i możesz go pobrać. Znajduje się w pierwszym folderze VIDEO1.

Krok 2: Instalowanie oprogramowania

Instalowanie oprogramowania
Instalowanie oprogramowania
Instalowanie oprogramowania
Instalowanie oprogramowania

Po pobraniu wszystkich plików sugeruję umieszczenie ich we wspólnym folderze, ponieważ wszystkie są używane razem w tym samym celu. Umieściłem wszystkie foldery w folderze o nazwie „Embedded” w moim katalogu HOME.

Zaczniemy od najprostszych, bibliotek STM32. Pobrany folder można tam pozostawić. Wystarczy poszukać, aby zobaczyć, gdzie przechowywane są odpowiednie pliki. Dlatego możesz zmienić i edytować główny MakeFile, aby działał z twoją platformą.

Drugim najłatwiejszym jest kompilator. Nie musisz też nic z tym robić, ale uczynimy kompilator globalnie dostępną funkcją, dzięki czemu będziesz mógł wywołać kompilator z dowolnego folderu, niezależnie od ścieżki. Wszystkie kroki można wykonać w terminalu lub w gui, ale lubię korzystać z terminala, ponieważ gdy masz doświadczenie, robi się to szybciej i łatwiej, a jeśli się boisz, zachęcam do częstszego korzystania z terminala. Oto kroki:

  1. Przejdź do katalogu domowego "/home/NAZWAUŻYTKOWNIKA/" lub "~/" lub wpisz cd w terminalu
  2. otwórz plik ".bashrc" wpisując: nano.bashrc
  3. przewiń w dół do końca pliku i dodaj tę linię: export PATH=$PATH:~/Embedded/gcc-arm-none-eabi-8-2018-q4/bin
  4. wyjdź zapisując: CTRL+X, kliknij Y, ENTER
  5. uruchom polecenie: source.bashrc, aby odświeżyć źródła terminala
  6. sprawdź czy wszystko działa wpisując: arm-none-eabi-gcc --version, powinna wyświetlić najnowszą wersję kompilatora

Aby zainstalować st-link, rozpakuj pobrane archiwum do folderu Embedded. Następnie wykonaj następujące kroki:

  1. Uruchom: zrób
  2. Przejdź do folderu „build/release”: cd build/release
  3. Wpisz ls, a zobaczysz dwa pliki wykonywalne o nazwie „st-flash” i „st-util”
  4. Przenieś te dwa do katalogu nadrzędnego stlink: mv st-flash st-util../../
  5. Jeśli chcesz skorzystać z tych dwóch funkcji, możesz ponownie globalnie edytować plik ".bashrc" dodając:

    eksportuj PATH=$PATH:~/Osadzone/stlink/

To wszystko! Masz wszystko, czego potrzebujesz. Teraz weź swój ulubiony edytor tekstu. Użyj tylko standardowego, inteligentniejszego, takiego jak SublimeText lub Atom, tego właśnie używam.

Krok 3: Przygotowanie przykładowego projektu

Przygotowanie przykładowego projektu
Przygotowanie przykładowego projektu

Stworzymy teraz przykładowy projekt, którego możesz użyć do rozpoczęcia każdego projektu. To jest jak szablon z wszystkimi głównymi ustawieniami już obsłużonymi.

Możesz go pobrać na moje MEGA, link znajduje się na pierwszym etapie tej instrukcji i pod każdym moim filmem na youtube. Wewnątrz znajduje się pusty plik main.c wraz z kilkoma plikami startowymi dla tego procesora i Makefile. Makefile to ten, który mówi kompilatorowi C, gdzie znaleźć kompilator ramienia, jak kompilować i gdzie są wszystkie biblioteki. Aby uzyskać te odpowiednie pliki dla swojego projektu, możesz przejść do folderu biblioteki STM32 i sprawdzić foldery „projekt” lub „przykłady”. Wewnątrz zobaczysz i skopiujesz te pliki: main.c, Makefile i XXX_conf.h, system_XXX.c. Potrzebny będzie również plik linkera stm32_flash.ld, który znajdziesz w folderze:

„/FLASH_Program/TrueSTUDIO/FLASH_Program/” znajdujący się w przykładowym folderze lub po prostu wyszukaj plik.

Makefile można znaleźć online lub skopiować z mojego folderu, ale będziesz musiał zmienić kilka rzeczy. Spójrzmy na mój plik make i co możesz zmienić.

# Ścieżka do folderu stlink w celu przesłania kodu na tablicę

STLINK=~/Embedded/stlink # Umieść tutaj swoje pliki źródłowe (*.c) SRCS=main.c system_stm32f4xx.c # Pliki źródłowe bibliotek #SRCS += stm32f4xx_rcc.c #SRCS += stm32f4xx_gpio.c # Pliki binarne będą generowane za pomocą this name (.elf,.bin,.hex) PROJ_NAME=test # Umieść tutaj katalog z kodami swojej biblioteki STM32F4, zmień TWOJA NAZWA UŻYTKOWNIKA na twoją STM_COMMON=/home/matej/Embedded/STM32F4-Discovery_FW_V1.1.0 # Ustawienia kompilatora. Edytuj tylko CFLAGS, aby uwzględnić inne pliki nagłówkowe. CC=arm-none-eabi-gcc OBJCOPY=arm-none-eabi-objcopy # Flagi kompilatora CFLAGS = -g -O2 -Wall -Tstm32_flash.ld CFLAGS += -DUSE_STDPERIPH_DRIVER CFLAGS += -mlittle-endian -mpumb -mc cortex-m4 -mthumb-interwork CFLAGS += -mfloat-abi=hard -mfpu=fpv4-sp-d16 CFLAGS += -I. # Uwzględnij pliki z bibliotek STM CFLAGS += -I$(STM_COMMON)/Libraries/CMSIS/Include CFLAGS += -I$(STM_COMMON)/Libraries/CMSIS/ST/STM32F4xx/Include CFLAGS += -I$(STM_COMMON)/ Biblioteki/STM32F4xx_StdPeriph_Driver/inc CFLAGS += -I$(STM_COMMON)/Utilities/STM32F4-Discovery # dodaj plik startowy, aby zbudować SRCS += $(STM_COMMON)/Libraries/CMSIS/ST/STM32F4xx/Source/STUD32/fstartupe s OBJS = $(SRCS:.c=.o) vpath %.c $(STM_COMMON)/Libraries/STM32F4xx_StdPeriph_Driver/src \. PHONY: proj all: proj proj: $(PROJ_NAME).elf $(PROJ_NAME).elf: $(SRCS) $(CC) $(CFLAGS) $^ -o $@ $(OBJCOPY) -O ihex $(PROJ_NAME).elf $(PROJ_NAME).hex $(OBJCOPY) -O binarny $(PROJ_NAME).elf $(PROJ_NAME).bin clean: rm -f *.o $(PROJ_NAME).elf $(PROJ_NAME).hex $(PROJ_NAME).bin # Flash wypalanie STM32F4: proj $(STLINK)/st-flash write $(PROJ_NAME).bin 0x80000000

  • Możesz edytować pierwszą linię, aby zmienić ścieżkę do folderu narzędzia stlink
  • Możesz zmienić linię na miejsce docelowe swojego folderu z bibliotekami i NAZWA UŻYTKOWNIKA

    STM_COMMON=/home/NAZWA UŻYTKOWNIKA/Embedded/STM32F4-Discovery_FW_V1.1.0

  • Sprawdź także sekcję, w której wszystkie biblioteki są połączone. Może się to zmienić w zależności od używanej platformy, więc sprawdź zmiany w drzewie plików. Wszystko inne, które zawiera jakiekolwiek ścieżki do określonych plików, na przykład w następnym wierszu z plikiem startowym, może zostać zmienione.

Po zmodyfikowaniu wszystkich tych rzeczy w Makefile możesz sprawdzić, czy działa, otwierając terminal w swoim katalogu i wpisując: make. Jeśli skompiluje wszystko bez problemu, to masz ustawione. Jeśli nie, spójrz na błędy kompilatora i edytuj Makefile.

Ponadto, gdy używam Atom, umieszczam obok siebie dwa fragmenty kodu. Zwykle main.c i Makefile po lewej stronie, ponieważ wystarczy tylko raz edytować Makefile, a biblioteki po prawej stronie. Na obrazku widać, że otworzyłem folder zawierający pliki.ci.h dla każdej biblioteki. Wszystko to możecie zobaczyć na filmach.

Krok 4: Zakończony

Skończone!
Skończone!

Teraz, gdy masz skonfigurowany Makefile i działa kompilator, możesz użyć tego folderu dla wszystkich projektów jako szablonu, więc upewnij się, że zapisałeś kopię tego folderu.

Możesz także przetestować programy st-flash i st-info, podłączając swoją płytę rozwojową i wpisując do terminala:

st-info -- sonda

Możesz zobaczyć platformę rozpoznawaną przez oprogramowanie stlink i rodzinę IC wraz z pamięcią podręczną i innymi rzeczami. Możesz wpisać:

st-info

aby zobaczyć wszystkie dostępne parametry.

Teraz możesz zacząć programować. W następnej instrukcji i wideo pokażę podstawy GPIO i zegarów. Te dwa są podstawą do wszystkiego innego, ponieważ prawie wszystko z czym współpracuje płyta jest przez GPIO i wszystko działa na zegarze i zobaczysz schemat programowania tych procesorów.

Do tego czasu dziękuję za sprawdzenie mojego instruktażu i mojego filmu na youtube, jeśli jeszcze tego nie zrobiłeś.

Zalecana: