Sadržaj:

Počnite razvijati STM32 na Linuxu: 4 koraka
Počnite razvijati STM32 na Linuxu: 4 koraka

Video: Počnite razvijati STM32 na Linuxu: 4 koraka

Video: Počnite razvijati STM32 na Linuxu: 4 koraka
Video: Полное руководство по 16-канальному сервоконтроллеру PCA9685 для Arduino с кодом версии 5 (V1) 2024, Juli
Anonim
Image
Image
Preuzmite sve što vam treba
Preuzmite sve što vam treba

U ovom Instructable -u pokazat ću vam kako je lako započeti razvoj STM32 programa na Linuxu. Počeo sam koristiti Linux kao svoju glavnu mašinu prije 2 godine i nisu me iznevjerili. Sve radi brže i bolje od prozora. Naravno da je s vremena na vrijeme manje zgodan, ali vas tjera da dublje naučite stvari kako biste ih mogli koristiti.

U svakom slučaju, u ovom uputstvu, dio serije koju započinjem ovdje, a na youtube -u govori o tome kako je započeti. Molimo vas da svakako pogledate i moj video na YouTube -u gdje vam sve objašnjavam kao jedan segment i možete kodirati pored mene.

U ovoj seriji pokazat ću vam kako se možete razvijati samo pomoću uređivača teksta, poput bilježnice, SublimeText ili Atoma, tako da vam ne treba nikakav vlasnički softver ili IDE. Ovo je gole kosti koliko god može i iznenađujuće je lako.

Korak 1: Preuzmite sve što vam treba

Da biste radili, morate preuzeti tri dijela:

  • GCC kompajler za ARM
  • STM32 datoteke firmvera
  • Uslužni program St-link
  • Uzorak projekta

Kompajler je glavni softver koji kompilira naš C kod sa svim ostalim datotekama biblioteke na mašinskom jeziku koji naš stm32 kontroler može razumjeti. Preuzmite najnoviju unaprijed sastavljenu verziju ovog kompajlera.

Mapa koja sadrži STM32 firmver je ona koja sadrži sve datoteke za pokretanje i jezgru potrebne za rad glavnog procesora. Koristit ćemo standardnu perifernu biblioteku koju je nadmašio HAL. StPeriphLibrary mi se više sviđa jer ih kompanije koje rade na ovim procesorima koriste jer je robustan i stariji i podržan. Takođe je i robusniji. To ne smanjuje posao koji morate obaviti za inicijalizaciju periferije ili uključivanje LED -a, već vas tjera da naučite kako ovi procesori rade. Uz to imate više znanja o unutarnjem radu, pa ima smisla programirati bilo koji zadatak.

Posljednji softver za preuzimanje je uslužni program st-link. Održava se na githubu i koristi se za prijenos sastavljenih binarnih datoteka u procesor pomoću stlink IC -a na ploči koji služi kao SWD / JTAG programer / debager.

Takođe sam dao uzorak fascikle projekta o kojem ću kasnije govoriti i možete je preuzeti. Nalazi se unutar prve mape VIDEO1.

Korak 2: Instaliranje softvera

Instaliranje softvera
Instaliranje softvera
Instaliranje softvera
Instaliranje softvera

Nakon što preuzmete sve datoteke, predlažem da ih stavite u zajedničku mapu jer se sve zajedno koriste u istu svrhu. Sve sam mape stavio u mapu pod nazivom "Ugrađeno" u moj HOME direktorij.

Počet ćemo s najjednostavnijim, STM32 bibliotekama. Mapu koju ste preuzeli možete ostaviti tamo. Samo svakako kopajte okolo da vidite gdje su pohranjene odgovarajuće datoteke. Stoga možete promijeniti i urediti glavni MakeFile kako bi radio s vašom platformom.

Drugi najlakši je kompajler. Ne morate ništa učiniti, ali ćemo kompajler učiniti globalno dostupnom funkcijom tako da možete pozvati kompajler iz bilo koje mape bez obzira na putanju. Svi se koraci mogu izvesti u terminalu ili u GUI -u, ali ja volim koristiti terminal jer kad ste iskusni, postaje sve brži i lakši i potičem vas da više koristite terminal, ako se toga bojite. Evo koraka:

  1. Idite u svoju kućnu mapu "/home/YOURUSERNAME/" ili "~/" ili upišite cd u terminal
  2. otvorite datoteku ".bashrc" upisivanjem: nano.bashrc
  3. pomaknite se do kraja datoteke i dodajte ovaj redak: export PATH = $ PATH: ~/Embedded/gcc-arm-none-eabi-8-2018-q4/bin
  4. izađite spremanjem: CTRL+X, kliknite Y, ENTER
  5. naredba run: source.bashrc za osvježavanje terminala
  6. provjerite radi li sve upisivanjem: arm-none-eabi-gcc --version, trebalo bi prikazati najnoviju verziju kompajlera

Da biste instalirali st-link, ekstrahirajte arhivu koju ste preuzeli u mapu Embedded. Zatim slijedite ove korake:

  1. Pokreni: napravi
  2. Idite u mapu "build/Release": cd build/Release
  3. Upišite ls i vidjet ćete dvije izvršne datoteke pod nazivom "st-flash" i "st-util"
  4. Premjestite to dvoje u nadređeni direktorij stlink: mv st-flash st-util../../
  5. Ako želite koristiti ove dvije funkcije globalno, možete ponovo urediti datoteku ".bashrc" dodavanjem:

    izvoz PATH = $ PATH: ~/Ugrađeno/stlink/

To je sve! Imate sve što vam treba. Sada uzmite svoj omiljeni uređivač teksta. Koristim samo standardni, pametniji poput SublimeText ili Atom, to je ono što ja koristim.

Korak 3: Postavljanje uzorka projekta

Postavljanje uzorka projekta
Postavljanje uzorka projekta

Sada ćemo stvoriti uzorak projekta koji možete koristiti za početak svakog projekta. To je poput predloška sa svim već postavljenim glavnim postavkama.

Možete ga preuzeti na moju MEGA -u, veza je na prvom koraku ovog uputstva i ispod svakog mog YouTube videa. Unutra je prazna datoteka main.c zajedno s nekim datotekama za pokretanje za ovaj procesor i Makefile. Makefile je onaj koji govori C kompajleru gde da pronađe arm kompajler, kako da kompajlira i gde su sve biblioteke. Da biste dobili odgovarajuće datoteke za svoj projekt, možete otići u fasciklu biblioteke STM32 i provjeriti ima li mapa "projekt" ili "primjeri". Unutra ćete vidjeti i kopirati ove datoteke: main.c, Makefile i XXX_conf.h, system_XXX.c. Također će vam trebati datoteka povezivača stm32_flash.ld koja se može pronaći u mapi:

"/FLASH_Program/TrueSTUDIO/FLASH_Program/" koji se nalazi unutar direktorija primjera ili samo tražite datoteku.

Makefile se može pronaći na mreži ili kopirati iz moje mape, ali ćete morati promijeniti neke stvari. Hajde da ispričamo priču o mojoj datoteci make i šta biste mogli promijeniti.

# Put do stlink foldera za postavljanje koda na ploču

STLINK = ~/Embedded/stlink # Ovdje postavite svoje izvorne datoteke (*.c) SRCS = main.c system_stm32f4xx.c # Izvorne datoteke biblioteka #SRCS += stm32f4xx_rcc.c #SRCS += stm32f4xx_gpio.c # Binarne datoteke bit će generirane sa ovaj naziv (.elf,.bin,.hex) PROJ_NAME = test # Stavite svoj direktorij koda biblioteke STM32F4 ovdje, promijenite YOURUSERNAME u vaš STM_COMMON =/home/matej/Embedded/STM32F4-Discovery_FW_V1.1.0 # Postavke kompajlera. Uredite samo CFLAGS da biste uključili druge datoteke zaglavlja. CC = arm -none -eabi -gcc OBJCOPY = arm -none -eabi -objcopy # Zastavice kompajlera 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. # Uključi datoteke iz STM biblioteka CFLAGS += -I $ (STM_COMMON)/Biblioteke/CMSIS/Uključi CFLAGS += -I $ (STM_COMMON)/Biblioteke/CMSIS/ST/STM32F4xx/Uključi CFLAGS += -I $ (STM_COMMON)/ Biblioteke/STM32F4xx_StdPeriph_Driver/inc CFLAGS += -I $ (STM_COMMON)/Pomoćni programi/STM32F4 -Otkriće # dodavanje datoteke za pokretanje za izgradnju SRCS += $ (STM_COMMON)/Biblioteke/CMSIS/ST/STM32F4xx/Source/Temp. s OBJS = $ (SRCS:.c =.o) vpath %.c $ (STM_COMMON)/Biblioteke/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 binarni $ (PROJ_NAME).elf $ (PROJ_NAME).bin clean: rm -f *.o $ (PROJ_NAME).elf $ (PROJ_NAME).hex $ (PROJ_NAME).bin # Flash STM32F4 narezivanje: proj $ (STLINK)/st -flash pisanje $ (PROJ_NAME).bin 0x80000000

  • Možete urediti prvi red da promijenite putanju do mape vašeg uslužnog programa stlink
  • Možete promijeniti red do odredišta vašeg foldera s bibliotekama i YOURUSERNAME

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

  • Pogledajte i odjeljak u kojem su sve biblioteke povezane. Ovo se može promijeniti ovisno o platformi koju koristite, pa provjerite ima li promjena u stablu datoteka. Sve ostalo što uključuje bilo koju putanju do određenih datoteka, na primjer sa sljedećim redom sa datotekom za pokretanje, može se promijeniti.

Nakon što ste uredili sve ove stvari unutar Makefile -a, možete provjeriti radi li tako što ćete otvoriti terminal u vašem direktoriju i unijeti: make. Ako sastavlja sve stvari bez problema, onda ste spremni. Ako nije, pogledajte greške kompajlera i uredite Makefile.

Takođe, kada koristim Atom, stavljam dva komada koda jedan pored drugog. Obično main.c i Makefile s lijeve strane jer trebate samo jednom urediti Makefile, a biblioteke s desne strane. Na slici možete vidjeti da sam otvorio fasciklu koja sadrži datoteke.c i.h za svaku biblioteku. Sve ovo možete vidjeti u video zapisima.

Korak 4: Završeno

Gotovo!
Gotovo!

Sada kada ste konfigurirali Makefile i kompajler radi, možete koristiti ovu mapu za sve projekte kao predložak, stoga obavezno spremite kopiju ove mape.

Također možete testirati st-flash i st-info programe uključivanjem razvojne ploče i upisivanjem u terminal:

st-info --probe

Možete vidjeti platformu koju stlink softver prepoznaje i IC porodicu zajedno s predmemorijom i drugim stvarima. Možete upisati:

st-info

da vidite sve dostupne parametre.

Sada možete započeti programiranje. U sljedećem uputstvu i videu pokazat ću vam osnove GPIO -a i satova. Ovo dvoje su osnove za sve ostalo jer gotovo sve sa čime ploča komunicira je preko GPIO -a i sve radi na satu i vidjet ćete uzorak programiranja ovih procesora.

Do tada, hvala vam što ste pogledali moj video i moj video na YouTube -u, ako to još niste učinili.

Preporučuje se: