Innholdsfortegnelse:

Begynn å utvikle STM32 på Linux: 4 trinn
Begynn å utvikle STM32 på Linux: 4 trinn

Video: Begynn å utvikle STM32 på Linux: 4 trinn

Video: Begynn å utvikle STM32 på Linux: 4 trinn
Video: BTT GTR v1.0/M5 v1.0 - Basics 2024, November
Anonim
Image
Image
Last ned alt du trenger
Last ned alt du trenger

I denne instruksen skal jeg vise deg hvor enkelt det er å begynne å utvikle STM32 -programmer på Linux. Jeg begynte å bruke Linux som hovedmaskin for 2 år siden, og har ikke blitt sviktet. Alt fungerer raskere og bedre enn vinduer. Selvfølgelig er det mindre praktisk fra tid til annen, men det tvinger deg til å lære ting dypere slik at du kan bruke det.

Uansett, i denne instruerbare delen av en serie jeg starter her OG på youtube handler om hvordan du starter den. Sørg for å se på YouTube -videoen min også, der jeg forklarer alt som ett segment, og du kan kode langs meg.

I denne serien vil jeg vise deg hvordan du kan utvikle deg ved å bruke bare et tekstredigeringsprogram som notisblokk, SublimeText eller Atom, slik at du ikke trenger proprietær programvare eller IDE. Dette er så bare bein som det blir, og det er overraskende enkelt.

Trinn 1: Last ned alt du trenger

Du må laste ned tre deler for at alt skal fungere:

  • GCC -kompilator for ARM
  • Firmware -filer for STM32
  • St-link verktøy
  • Eksempelprosjekt

Compiler er hovedprogramvaren som kompilerer vår C -kode med alle andre biblioteksfiler til maskinspråk som stm32 -kontrolleren vår kan forstå. Last ned den siste forhåndskompilerte versjonen av denne kompilatoren.

Mappen som inneholder STM32 -fastvaren, er den som inneholder alle oppstarts- og kjernefiler som trengs for driften av hovedprosessoren. Vi bruker Standard Peripheral Library som har blitt overgått av HAL. Jeg liker StPeriphLibrary mer ettersom selskaper som jobber med disse prosessorene bruker dem fordi det er robust og eldre og støttet. Den er også mer robust. Det kutter ikke arbeidet du må gjøre for å initialisere en perifer enhet eller slå på en LED, men det tvinger deg til å lære hvordan disse prosessorene fungerer. Med det har du mer kunnskap om indre arbeid og gir dermed mening om å programmere enhver oppgave.

Det siste programmet du skal laste ned er st-link-verktøyet. Den opprettholdes på github og brukes til å overføre kompilerte binære filer til prosessoren ved hjelp av stlink IC på brettet som fungerer som en SWD / JTAG programmerer / debugger.

Jeg har også gitt en prøveprosjektmappe som jeg snakker om senere, og du kan laste den ned. Den er inne i den første VIDEO1 -mappen.

Trinn 2: Installere programvare

Installere programvare
Installere programvare
Installere programvare
Installere programvare

Etter at du har lastet ned alle filene, foreslår jeg at du legger dem i en felles mappe, da de alle brukes sammen til samme formål. Jeg la alle mappene i en mappe kalt "Embedded" i min HOME -katalog.

Vi starter med de enkleste, STM32 -bibliotekene. Mappen du har lastet ned kan bare stå der. Bare sørg for å grave rundt for å se hvor de riktige filene er lagret. Derfor kan du endre og redigere hovedmakeFilen slik at den fungerer med plattformen din.

Den nest enkleste er kompilatoren. Du trenger heller ikke gjøre noe med det, men vi vil gjøre kompilatoren til en globalt tilgjengelig funksjon, slik at du kan ringe kompilatoren fra en hvilken som helst mappe uavhengig av banen. Alle trinnene kan utføres i terminal eller i gui, men jeg liker å bruke terminal som når du blir erfaren blir det raskere og enklere, og jeg oppfordrer deg til å bruke terminal mer, hvis du er redd for det. Her er trinnene:

  1. Gå inn i hjemmemappen "/home/YOURUSERNAME/" eller "~/" eller skriv inn cd i terminalen
  2. åpne filen ".bashrc" ved å skrive: nano.bashrc
  3. rull ned til slutten av filen og legg til denne linjen: eksporter PATH = $ PATH: ~/Embedded/gcc-arm-none-eabi-8-2018-q4/bin
  4. avslutt ved å lagre: CTRL+X, klikk Y, ENTER
  5. run command: source.bashrc for å oppdatere terminalkilder
  6. sjekk om alt fungerer ved å skrive: arm-none-eabi-gcc --versjon, den skal vise den nyeste versjonen av kompilatoren

For å installere st-link, trekk ut arkivet du har lastet ned i Embedded-mappen. Følg deretter disse trinnene:

  1. Løp: lag
  2. Gå til mappen "build/Release": cd build/Release
  3. Skriv inn ls, og du vil se to kjørbare filer kalt "st-flash" og "st-util"
  4. Flytt disse to til overordnet katalog stlink: mv st-flash st-util../../
  5. Du kan, hvis du ønsker å bruke disse to funksjonene globalt redigere ".bashrc" -fil igjen ved å legge til:

    eksport PATH = $ PATH: ~/Embedded/stlink/

Det er alt! Du har alt du trenger. Nå, ta deg selv din favoritt tekstredigerer. Bruk bare en standard, en smartere som SublimeText eller Atom, det er det jeg bruker.

Trinn 3: Sette opp et prøveprosjekt

Sette opp et prøveprosjekt
Sette opp et prøveprosjekt

Vi vil nå lage et eksempelprosjekt som du kan bruke til å starte hvert prosjekt. Det er som en mal med alle hovedinnstillingene som allerede er håndtert.

Du kan laste den ned på min MEGA, lenken er på første trinn i denne instruerbare og under hver youtube -video av meg. Inne er den tomme main.c -filen sammen med noen oppstartsfiler for denne prosessoren og Makefile. Makefile er den som forteller C -kompilatoren hvor du finner armkompilatoren, hvordan du kompilerer og hvor alle bibliotekene er. For å få disse egnede filene for prosjektet ditt, kan du gå til biblioteksmappen STM32 og se etter mappene "prosjekt" eller "eksempler". Inne vil du se og kopiere disse filene: main.c, Makefile og XXX_conf.h, system_XXX.c. Du trenger også stm32_flash.ld linkerfil som du finner i mappen:

"/FLASH_Program/TrueSTUDIO/FLASH_Program/" som er i eksempelmappen eller bare søk etter filen.

Makefile kan bli funnet på nettet eller kopieres fra mappen min, men du må endre noen få ting. La oss se på min lagerfil og hva du kan endre.

# Sti til stlink -mappen for opplasting av kode til bord

STLINK = ~/Embedded/stlink # Sett kildefilene dine her (*.c) SRCS = main.c system_stm32f4xx.c # Bibliotekets kildefiler #SRCS += stm32f4xx_rcc.c #SRCS += stm32f4xx_gpio.c # Binærene vil bli generert med dette navnet (.elf,.bin,.hex) PROJ_NAME = test # Sett STM32F4-bibliotekskodekatalogen din her, endre DITT BRUKERNAVN til ditt STM_COMMON =/home/matej/Embedded/STM32F4-Discovery_FW_V1.1.0 # kompilatorinnstillinger. Rediger bare CFLAGS for å inkludere andre topptekster. CC = arm -none -eabi -gcc OBJCOPY = arm -none -eabi -objcopy # Compiler flagg CFLAGS = -g -O2 -Wall -Tstm32_flash.ld CFLAGS += -DUSE_STDPERIPH_DRIVER CFLAGS += -mlittle -endian -mumbumb -m = cortex-m4 -mumbumb-interwork CFLAGS += -mfloat-abi = hard -mfpu = fpv4-sp-d16 CFLAGS += -I. # Inkluder filer fra STM -biblioteker CFLAGS += -I $ (STM_COMMON)/Libraries/CMSIS/Inkluder CFLAGS += -I $ (STM_COMMON)/Libraries/CMSIS/ST/STM32F4xx/Inkluder CFLAGS += -I $ (STM_COMMON)/ Libraries/STM32F4xx_StdPeriph_Driver/inc CFLAGS += -I $ (STM_COMMON)/Utilities/STM32F4 -Discovery # legg til oppstartsfil for å bygge SRCS += $ (STM_COMMON)/Libraries/CMSIS/ST/STM32F4xx/Source/Templ/ s OBJS = $ (SRCS:.c =.o) vpath %.c $ (STM_COMMON)/Libraries/STM32F4xx_StdPeriph_Driver/src \. PHONY: proj all: proj proj: $ (PROJ_NAME).elf $ (PROJ_NAME). selv:: $ (SRCS) $ (CC) $ (CFLAGS) $^ -o $@ $ (OBJCOPY) -O ihex $ (PROJ_NAME).elf $ (PROJ_NAME).hex $ (OBJCOPY) -O binær $ (PROJ_NAME).elf $ (PROJ_NAME). Bin ren: rm -f *.o $ (PROJ_NAME).elf $ (PROJ_NAME).hex $ (PROJ_NAME).bin # Flash STM32F4 burn: proj $ (STLINK)/st -flash skriv $ (PROJ_NAME). Bin 0x80000000

  • Du kan redigere første linje for å endre banen til mappen til stlink -verktøyet
  • Du kan bytte linje til destinasjonen til mappen din med biblioteker og DITT BRUKERNAVN

    STM_COMMON =/home/YOURUSERNAME/Embedded/STM32F4-Discovery_FW_V1.1.0

  • Sjekk også delen der alle bibliotekene er koblet sammen. Dette kan endres avhengig av plattformen du bruker, så sjekk for endringer i filtreet. Everithing annet som inkluderer stier til bestemte filer, som med neste linje med oppstartsfil, kan endres.

Etter at du har redigert alle disse tingene inne i Makefile kan du sjekke om det fungerer ved å åpne en terminal inne i katalogen din og skrive: make. Hvis det kompilerer alt uten problemer, er du klar. Hvis ikke, se på kompilatorfeilene og rediger Makefile.

Når jeg bruker Atom, legger jeg også to kodebiter side om side. Vanligvis main.c og Makefile til venstre, da du bare trenger å redigere Makefile én gang og biblioteker til høyre. Du kan se på bildet at jeg har åpnet mappen som inneholder.c og.h filene for hvert bibliotek. Du kan se alt dette i videoene.

Trinn 4: Ferdig

Ferdig!
Ferdig!

Nå som du har konfigurert Makefile og kompilatoren fungerer, kan du bruke denne mappen til alle prosjekter som en mal, så sørg for å lagre en kopi av denne mappen.

Du kan også teste st-flash og st-info-programmene ved å koble til utviklingskortet og skrive inn terminalen:

st-info --probe

Du kan se plattformen som stlink -programvaren gjenkjenner og IC -familien sammen med cache og andre ting. Du kan skrive inn:

st-info

for å se alle tilgjengelige parametere.

Nå kan du begynne å programmere. I den neste instruksjonen og videoen vil jeg vise deg det grunnleggende om GPIO og klokker. Disse to er grunnleggende for alt annet, ettersom nesten alt som styret samhandler med er over GPIO, og alt fungerer på klokken, og du vil se mønsteret for programmering av disse prosessorene.

Frem til da, takk for at du sjekket ut min instruksjonsrike og YouTube -video, hvis du ikke har gjort det ennå.

Anbefalt: