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, Srpanj
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 svoj glavni stroj prije 2 godine i nisu me iznevjerili. Sve radi brže i bolje od prozora. Naravno da je s vremena na vrijeme manje prikladan, 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 I na youtubeu govori o tome kako je započeti. Molimo vas da svakako pogledate i moj video na YouTubeu gdje vam sve objašnjavam kao jedan segment, a vi možete kodirati pored mene.

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

Korak 1: Preuzmite sve što vam treba

Morate preuzeti tri dijela da bi sve radilo:

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

Prevoditelj je glavni dio softvera koji kompilira naš C kod sa svim ostalim datotekama knjižnice na strojni jezik koji naš stm32 kontroler može razumjeti. Preuzmite najnoviju unaprijed sastavljenu verziju ovog prevoditelja.

Mapa koja sadrži firmver STM32 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 tvrtke koje rade na ovim procesorima koriste jer je robustan i stariji te podržan. Također je i robusniji. To ne smanjuje posao koji morate učiniti za inicijalizaciju perifernih uređaja ili uključivanje LED -a, već vas tjera da naučite kako ti procesori rade. Uz to imate više znanja o unutarnjem radu pa imate 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 / ispravljač pogrešaka.

Također sam dao uzorak projektne mape o kojoj ću kasnije govoriti i koju možete 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 svoj HOME direktorij.

Počet ćemo s najjednostavnijim, knjižnicama STM32. 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 najjednostavniji je prevoditelj. Također ne morate ništa učiniti, ali prevoditelj ćemo učiniti globalno dostupnom funkcijom tako da možete pozvati prevoditelja iz bilo koje mape bez obzira na put. 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, trebala bi prikazati najnoviju verziju prevoditelja

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

  1. Trči: 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 roditeljski direktorij stlink: mv st-flash st-util../../
  5. Ako želite koristiti ove dvije funkcije na globalnoj razini, možete ponovno 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 prevoditelju gdje pronaći arm kompajler, kako kompajlirati i gdje su sve knjižnice. Da biste dobili odgovarajuće datoteke za svoj projekt, možete otići u mapu knjižnice 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 mape primjera ili samo potražite datoteku.

Makefile se može pronaći na mreži ili kopirati iz moje mape, ali morate promijeniti nekoliko stvari. Hajdemo ispričati priču o mojoj datoteci make i što biste mogli promijeniti.

# Put do mape stlink za prijenos koda na ploču

STLINK = ~/Embedded/stlink # Ovdje postavite svoje izvorne datoteke (*.c) SRCS = main.c system_stm32f4xx.c # Izvorne datoteke knjižnica #SRCS += stm32f4xx_rcc.c #SRCS += stm32f4xx_gpio.c # Binarne datoteke bit će generirane sa ovaj naziv (.elf,.bin,.hex) PROJ_NAME = test # Ovdje unesite direktorij koda knjižnice STM32F4, promijenite YOURUSERNAME u svoj STM_COMMON =/home/matej/Embedded/STM32F4-Discovery_FW_V1.1.0 # Postavke prevoditelja. Uredite samo CFLAGS tako da uključuje 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 -mputa -mc cortex-m4 -mthumb-interwork CFLAGS += -mfloat-abi = hard -mfpu = fpv4-sp-d16 CFLAGS += -I. # Uključi datoteke iz STM knjižnica CFLAGS += -I $ (STM_COMMON)/Knjižnice/CMSIS/Uključi CFLAGS += -I $ (STM_COMMON)/Knjižnice/CMSIS/ST/STM32F4xx/Uključi CFLAGS += -I $ (STM_COMMON)/ Knjižnice/STM32F4xx_StdPeriph_Driver/inc CFLAGS += -I $ (STM_COMMON)/Utilities/STM32F4 -Discovery # dodavanje datoteke za pokretanje za izgradnju 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 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 zapis $ (PROJ_NAME).bin 0x80000000

  • Možete urediti prvi redak da biste promijenili put do mape uslužnog programa stlink
  • Možete promijeniti redak u odredište svoje mape s knjižnicama i YOURUSERNAME

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

  • Također pogledajte odjeljak gdje su sve knjižnice povezane. To se može promijeniti ovisno o platformi koju koristite pa provjerite ima li promjena u stablu datoteka. Sve ostalo što uključuje bilo koje putove do određenih datoteka, kao što je sljedeći redak s 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 svom direktoriju i unijeti: make. Ako sastavi sve stvari bez problema, onda ste spremni. Ako ne, pogledajte pogreške prevoditelja i uredite Makefile.

Također, kada koristim Atom, stavljam dva komada koda jedan do drugog. Obično main.c i Makefile slijeva jer trebate samo jednom urediti Makefile, a biblioteke desno. Na slici možete vidjeti da sam otvorio mapu koja sadrži datoteke.c i.h za svaku knjižnicu. Sve to možete vidjeti u video zapisima.

Korak 4: Završeno

Završeno!
Završeno!

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

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

st-info-sonda

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

st-info

da biste vidjeli sve dostupne parametre.

Sada možete početi s programiranjem. U sljedećem uputstvu i videu pokazat ću vam osnove GPIO -a i satova. Ovo dvoje su osnove za sve ostalo jer gotovo sve s č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 s uputama i moj YouTube video, ako to još niste učinili.

Preporučeni: