Kazalo:

Začnite razvijati STM32 v Linuxu: 4 koraki
Začnite razvijati STM32 v Linuxu: 4 koraki

Video: Začnite razvijati STM32 v Linuxu: 4 koraki

Video: Začnite razvijati STM32 v Linuxu: 4 koraki
Video: BTT GTR v1.0/M5 v1.0 - Basics 2024, Julij
Anonim
Image
Image
Prenesite vse, kar potrebujete
Prenesite vse, kar potrebujete

V tem navodilu vam bom pokazal, kako enostavno je začeti razvijati programe STM32 v Linuxu. Linux sem začel uporabljati kot svoj glavni stroj pred dvema letoma in nisem bil razočaran. Vse deluje hitreje in bolje kot okna. Seveda je občasno manj priročno, vendar vas prisili, da se stvari globlje naučite, da jih lahko uporabite.

Kakorkoli, v tem navodilu je del serije, ki jo začenjam tukaj, in na youtubu, kako začeti. Oglejte si tudi moj videoposnetek na youtubu, kjer vse razlagam kot en segment, poleg mene pa lahko kodirate.

V tej seriji vam bom pokazal, kako se lahko razvijate samo z urejevalnikom besedil, kot so beležnica, SublimeText ali Atom, tako da ne potrebujete lastniške programske opreme ali IDE. To je tako gole kosti, kot se dobi, in je presenetljivo enostavno.

1. korak: Prenesite vse, kar potrebujete

Če želite vse delovati, morate prenesti tri dele:

  • GCC prevajalnik za ARM
  • Datoteke vdelane programske opreme STM32
  • Pripomoček st-link
  • Vzorec projekta

Prevajalnik je glavni del programske opreme, ki prevede našo kodo C z vsemi drugimi datotekami knjižnice v strojni jezik, ki ga razume naš krmilnik stm32. Prenesite najnovejšo vnaprej sestavljeno različico tega prevajalnika.

Mapa, ki vsebuje vdelano programsko opremo STM32, je tista, ki vsebuje vse zagonske in osnovne datoteke, potrebne za delovanje glavnega procesorja. Uporabljali bomo standardno periferno knjižnico, ki jo je presegel HAL. StPeriphLibrary mi je bolj všeč, saj jih uporabljajo podjetja, ki delajo na teh procesorjih, ker je robusten in starejši ter podprt. Je tudi bolj robusten. To ne zmanjša dela, ki ga morate opraviti, da inicializirate zunanje naprave ali vklopite LED, ampak vas prisili, da se naučite, kako ti procesorji delujejo. S tem imate več znanja o notranjem delovanju, zato je smiselno programirati katero koli nalogo.

Zadnji del programske opreme za prenos je pripomoček st-link. Vzdržuje se na githubu in se uporablja za prenos sestavljenih binarnih datotek v procesor z uporabo stlink IC na plošči, ki služi kot programer / razhroščevalnik SWD / JTAG.

Predložil sem tudi vzorčno mapo projekta, o kateri bom govoril kasneje, in jo lahko prenesete. Nahaja se v prvi mapi VIDEO1.

2. korak: Namestitev programske opreme

Namestitev programske opreme
Namestitev programske opreme
Namestitev programske opreme
Namestitev programske opreme

Ko naložite vse datoteke, predlagam, da jih vstavite v skupno mapo, saj se vse skupaj uporabljajo za isti namen. Vse mape sem dal v mapo z imenom "Vdelano" v imenik HOME.

Začeli bomo z najlažjimi knjižnicami STM32. Mapo, ki ste jo prenesli, lahko pustite tam. Preverite, kje so shranjene ustrezne datoteke. Zato lahko spremenite in uredite glavni MakeFile, tako da bo deloval z vašo platformo.

Drugi najlažji način je prevajalnik. Prav tako vam ni treba storiti ničesar, vendar bomo prevajalnik naredili globalno dostopno funkcijo, tako da lahko pokličete prevajalnika iz katere koli mape, ne glede na pot. Vse korake je mogoče izvesti v terminalu ali v gui -ju, vendar rad uporabljam terminal, saj ko postaneš izkušen, postane hitrejši in lažji, zato te spodbujam, da ga uporabljaš več, če se tega bojiš. Tu so koraki:

  1. Pojdite v domačo mapo "/home/YOURUSERNAME/" ali "~/" ali vnesite cd v terminal
  2. odprite datoteko ".bashrc" tako, da vnesete: nano.bashrc
  3. pomaknite se navzdol do konca datoteke in dodajte to vrstico: export PATH = $ PATH: ~/Embedded/gcc-arm-none-eabi-8-2018-q4/bin
  4. izhod shranite: CTRL+X, kliknite Y, ENTER
  5. ukaz run: source.bashrc za osvežitev terminalskih virov
  6. preverite, ali vse deluje tako, da vnesete: arm-none-eabi-gcc --version, prikazati mora najnovejšo različico prevajalnika

Če želite namestiti st-link, izvlecite arhiv, ki ste ga prenesli v vgrajeno mapo. Nato sledite tem korakom:

  1. Zaženi: naredi
  2. Pojdite v mapo "build/Release": cd build/Release
  3. Vnesite ls in videli boste dve izvedljivi datoteki, imenovani "st-flash" in "st-util"
  4. Ta dva premakni v nadrejeni imenik stlink: mv st-flash st-util../../
  5. Če želite uporabiti te dve funkciji, lahko datoteko ».bashrc« znova uredite tako, da dodate:

    izvoz PATH = $ PATH: ~/Vdelano/stlink/

To je vse! Imate vse, kar potrebujete. Zdaj pa si vzemite svoj najljubši urejevalnik besedil. Uporabljam samo standardnega, pametnejšega, kot sta SublimeText ali Atom, to uporabljam jaz.

3. korak: Nastavitev vzorčnega projekta

Priprava vzorčnega projekta
Priprava vzorčnega projekta

Zdaj bomo ustvarili vzorec projekta, s katerim lahko začnete vsak projekt. Je kot predloga z vsemi glavnimi nastavitvami, ki so že obdelane.

Lahko ga prenesete na mojo MEGA, povezava je na prvem koraku tega navodila in pod vsakim mojim videom na youtube. V notranjosti je prazna datoteka main.c skupaj z nekaj zagonskimi datotekami za ta procesor in datoteko Makefile. Makefile je tisti, ki prevajalniku C pove, kje najti ročni prevajalnik, kako prevesti in kje so vse knjižnice. Če želite dobiti te ustrezne datoteke za svoj projekt, pojdite v mapo knjižnice STM32 in poiščite mape »projekt« ali »primeri«. V notranjosti boste videli in kopirali te datoteke: main.c, Makefile in XXX_conf.h, system_XXX.c. Prav tako boste potrebovali datoteko povezovalnika stm32_flash.ld, ki jo najdete v mapi:

"/FLASH_Program/TrueSTUDIO/FLASH_Program/", ki je v vzorčni mapi ali pa samo poiščite datoteko.

Makefile lahko najdete na spletu ali ga kopirate iz moje mape, vendar boste morali spremeniti nekaj stvari. Oglejmo si mojo datoteko make in kaj bi lahko spremenili.

# Pot do mape stlink za nalaganje kode na ploščo

STLINK = ~/Embedded/stlink # Vnesite svoje izvorne datoteke sem (*.c) SRCS = main.c system_stm32f4xx.c # Izvorne datoteke knjižnic #SRCS += stm32f4xx_rcc.c #SRCS += stm32f4xx_gpio.c # Dvojne datoteke bodo ustvarjene z to ime (.elf,.bin,.hex) PROJ_NAME = test # Tukaj vnesite imenik knjižnične kode STM32F4, spremenite YOURUSERNAME v svojega STM_COMMON =/home/matej/Embedded/STM32F4-Discovery_FW_V1.1.0 # Nastavitve prevajalnika. Urejajte samo CFLAGS, da vključite druge datoteke z glavo. CC = arm -none -eabi -gcc OBJCOPY = arm -none -eabi -objcopy # Zastavice prevajalnika CFLAGS = -g -O2 -Wall -Tstm32_flash.ld CFLAGS += -DUSE_STDPERIPH_DRIVER CFLAGS += -mlittle -endian -mthumb -mc cortex-m4 -mthumb-interwork CFLAGS += -mfloat-abi = hard -mfpu = fpv4-sp-d16 CFLAGS += -I # Vključi datoteke iz knjižnic STM CFLAGS += -I $ (STM_COMMON)/Knjižnice/CMSIS/Vključi CFLAGS += -I $ (STM_COMMON)/Knjižnice/CMSIS/ST/STM32F4xx/Vključi CFLAGS += -I $ (STM_COMMON)/ Knjižnice/STM32F4xx_StdPeriph_Driver/inc CFLAGS += -I $ (STM_COMMON)/Utilities/STM32F4 -Discovery # dodaj zagonsko datoteko za izdelavo SRCS += $ (STM_COMMON)/Knjižnice/CMSIS/ST/STM32F4xxx s OBJS = $ (SRCS:.c =.o) vpath %.c $ (STM_COMMON)/Knjižnice/STM32F4xx_StdPeriph_Driver/src \. PHONY: proj vse: proj proj: $ (PROJ_NAME).elf $ (PROJ_NAME).elf: $ (SRCS) $ (CC) $ (CFLAGS) $^ -o $@ $ (OBJCOPY) -O ihex $ (PROJ_NAME).elf $ (PROJ_NAME).hex $ (OBJCOPY) -O binarni $ (PROJ_NAME).elf $ (PROJ_NAME).bin clean: rm -f *.o $ (PROJ_NAME).elf $ (PROJ_NAME).hex $ (PROJ_NAME).bin # Flash zapisovanje STM32F4: proj $ (STLINK)/st -flash zapis $ (PROJ_NAME).bin 0x80000000

  • Prvo vrstico lahko uredite, da spremenite pot do mape pripomočka stlink
  • Vrstico lahko spremenite v cilj mape s knjižnicami in YOURUSERNAME

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

  • Oglejte si tudi razdelek, kjer so povezane vse knjižnice. To se lahko spremeni glede na platformo, ki jo uporabljate, zato preverite, ali so v drevesnem datotečnem sistemu spremembe. Vse drugo, ki vključuje vse poti do določenih datotek, na primer naslednjo vrstico z zagonsko datoteko, je mogoče spremeniti.

Ko uredite vse te stvari v datoteki Makefile, lahko preverite, ali deluje, tako da odprete terminal v svojem imeniku in vnesete: make. Če vse stvari sestavi brez težav, ste pripravljeni. Če ne, poglejte napake prevajalnika in uredite datoteko Makefile.

Ko uporabljam Atom, postavim dva koda drug ob drugega. Običajno sta main.c in Makefile na levi, saj morate Makefile urediti le enkrat, knjižnice pa na desni. Na sliki lahko vidite, da sem odprl mapo, ki vsebuje datoteke.c in.h za vsako knjižnico. Vse to si lahko ogledate v video posnetkih.

4. korak: Končano

Dokončano!
Dokončano!

Zdaj, ko ste nastavili Makefile in prevajalnik deluje, lahko to mapo uporabite za vse projekte kot predlogo, zato shranite kopijo te mape.

Prav tako lahko preizkusite programa st-flash in st-info tako, da priključite razvojno ploščo in vtipkate v terminal:

st-info-sonda

Ogledate si lahko platformo, ki jo programska oprema stlink prepozna, in družino IC skupaj s predpomnilnikom in drugimi stvarmi. Vnesete lahko:

st-info

za ogled vseh razpoložljivih parametrov.

Zdaj lahko začnete s programiranjem. V naslednjem navodilu in videoposnetku vam bom pokazal osnove GPIO in ure. Ta dva sta osnova za vse ostalo, saj je skoraj vse, s čimer plošča komunicira, prek GPIO in vse deluje na uro, videli pa boste vzorec programiranja teh procesorjev.

Do takrat pa se vam zahvaljujem, da ste preverili moj videoposnetek in moj videoposnetek na YouTubu, če tega še niste storili.

Priporočena: