Sadržaj:
- Korak 1: Preuzmite sve što vam treba
- Korak 2: Instaliranje softvera
- Korak 3: Postavljanje uzorka projekta
- Korak 4: Završeno
Video: Počnite razvijati STM32 na Linuxu: 4 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:04
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
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:
- Idite u svoju kućnu mapu "/home/YOURUSERNAME/" ili "~/" ili upišite cd u terminal
- otvorite datoteku ".bashrc" upisivanjem: nano.bashrc
- pomaknite se do kraja datoteke i dodajte ovaj redak: export PATH = $ PATH: ~/Embedded/gcc-arm-none-eabi-8-2018-q4/bin
- izađite spremanjem: CTRL+X, kliknite Y, ENTER
- naredba run: source.bashrc za osvježavanje terminala
- 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:
- Pokreni: napravi
- Idite u mapu "build/Release": cd build/Release
- Upišite ls i vidjet ćete dvije izvršne datoteke pod nazivom "st-flash" i "st-util"
- Premjestite to dvoje u nadređeni direktorij stlink: mv st-flash st-util../../
-
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
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
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:
Modifikacija L-tek Plesne podloge na 1000 Hz na Windowsima i Linuxu: 9 koraka
Modificiranje L-tek Plesne podloge na 1000 Hz na Windowsima i Linuxu: Zašto napraviti ovaj mod? Ako ste ikada prešli na grafikon pjesme od 125 BPM, možda ćete se zapitati, šta je sa ovim spikey boi-om? Zašto tajming pada u diskretne "utore"? ITG i DDR imaju nevjerojatno kratke vremenske prozore, a s ovim
USB stolni sat sa pogonom na Linuxu: 10 koraka
USB TableClock sa pogonom na Linuxu: Stoni sat sa USB napajanjem za Linux je stolni sat sa Raspbian Lite operativnim sistemom Linux. Napravljen je da ga koriste posebno noćne sove poput mene koje žele vidjeti brzo vrijeme, ali je presvijetli LCD da provjeri vrijeme na mobilnom telefonu. Izgleda super na mojim postavkama
[HASS.IO] Počnite graditi svoju pametnu kuću bez kodiranja, za manje od 100 USD: 6 koraka
[HASS.IO] Počnite graditi svoju pametnu kuću bez kodiranja, za manje od 100 USD: Nedavno sam se petljao i uspješno učinio svoju kuću manje " idiotskom ". Stoga ću podijeliti kako napraviti sistem pametne kuće s niskom cijenom, visokom kompatibilnošću koja bi radila besprijekorno i stabilno
Počnite s Kicadom - Dodijelite otiske PCB -a simbolima shema: 9 koraka
Počnite s Kicadom - Dodijelite otiske PCB -a shematskim simbolima: Nastavljajući s mini nizom uputa o tome kako koristiti Kicad, sada imamo dio koji mi se čini kada počnemo koristiti Kicad najkompliciraniji je povezivanje simbola ili simboli sheme na stvarne komade koje ćemo očistiti
Počnite s Kicadom - Shematski dijagram: 9 koraka
Počnite s Kicadom - shematski dijagram: Kicad je besplatna i otvorena alternativa CAD sistemima za komercijalne PCB -e, nemojte me pogriješiti. EAGLE i slično su vrlo dobri, ali besplatna verzija EAGLE -a ponekad ne uspije i studentska verzija traje samo 3 godine, pa je Kicad odličan