Indítsa el az STM32 fejlesztését Linuxon: 4 lépés
Indítsa el az STM32 fejlesztését Linuxon: 4 lépés
Anonim
Image
Image
Tölts le mindent, amire szükséged van
Tölts le mindent, amire szükséged van

Ebben az utasításban megmutatom, milyen könnyű elkezdeni az STM32 programok fejlesztését Linuxon. 2 éve kezdtem el használni a Linuxot fő gépemként, és nem hagytam cserben. Minden gyorsabban és jobban működik, mint az ablakok. Természetesen időnként kevésbé kényelmes, de kényszeríti a dolgok mélyebb megismerésére, hogy használhassa.

Egyébként ebben az oktatható részben egy sorozat, amit itt kezdek ÉS a youtube -on, arról szól, hogyan kell elkezdeni. Kérlek nézd meg a youtube videómat is, ahol mindent egy szegmensként magyarázok, és mellettem kódolhatsz.

Ebben a sorozatban megmutatom, hogyan fejleszthet csak szövegszerkesztővel, mint például a Jegyzettömb, a SublimeText vagy az Atom, így nincs szüksége saját szoftverre vagy IDE -re. Ez olyan csupasz csont, amennyire csak lehet, és meglepően egyszerű.

1. lépés: Töltsön le mindent, amire szüksége van

Három részt kell letöltenie, hogy minden működjön:

  • GCC fordító az ARM számára
  • STM32 firmware fájlok
  • St-link segédprogram
  • Mintaprojekt

A fordító a fő szoftver, amely összeállítja a C kódunkat az összes többi könyvtári fájllal olyan gépi nyelvre, amelyet az stm32 vezérlőnk megért. Töltse le a fordító legújabb, előre összeállított verzióját.

Az STM32 firmware -t tartalmazó mappa tartalmazza a fő processzor működéséhez szükséges összes indítási és alapvető fájlt. A szabványos perifériás könyvtárat fogjuk használni, amelyet a HAL felülmúlt. A StPeriphLibrary -t jobban szeretem, mivel az ezen a processzoron dolgozó vállalatok használják őket, mert robusztus, régebbi és támogatott. Ez is strapabíróbb. Ez nem csökkenti a periféria inicializálásához vagy a LED bekapcsolásához szükséges munkát, de kényszeríti Önt arra, hogy megismerje ezeknek a processzoroknak a működését. Ezzel több ismerete van a belső működésről, így értelemszerűen programozhat bármilyen feladatot.

Az utolsó letöltendő szoftver az st-link segédprogram. A githubon van karbantartva, és az összeállított bináris fájlok továbbítására szolgál a processzorra az SWD / JTAG programozó / hibakeresőként szolgáló táblán lévő stlink IC használatával.

Ezenkívül megadtam egy minta projektmappát, amelyről később beszélek, és letöltheti. Az első VIDEO1 mappában található.

2. lépés: Szoftver telepítése

Szoftver telepítése
Szoftver telepítése
Szoftver telepítése
Szoftver telepítése

Miután letöltötte az összes fájlt, azt javaslom, hogy tegye őket egy közös mappába, mivel mindegyiket együtt használják ugyanahhoz a célhoz. Az összes mappát a HOME könyvtár "Embedded" nevű mappájába helyeztem.

Kezdjük a legegyszerűbb, az STM32 könyvtárakkal. A letöltött mappát ott hagyhatja. Csak feltétlenül ásson körül, hogy megnézze, hol vannak tárolva a megfelelő fájlok. Ezért megváltoztathatja és szerkesztheti a fő MakeFile -t, hogy az működjön a platformjával.

A második legegyszerűbb a fordító. Önnek sem kell semmit sem tennie vele, de a fordítót globálisan elérhető funkcióvá tesszük, így az útvonaltól függetlenül bármelyik mappából felhívhatja a fordítót. Minden lépést meg lehet tenni a terminálon vagy a gui -ban, de én szeretem használni a terminált, mivel amikor tapasztalsz, gyorsabb és egyszerűbb lesz, és bátorítalak, hogy használd többet a terminált, ha félsz tőle. Íme a lépések:

  1. Lépjen be a "/home/YOURUSERNAME/" vagy a "~/" otthoni mappába, vagy írja be a cd -t a terminálba
  2. nyissa meg a ".bashrc" fájlt a következő beírásával: nano.bashrc
  3. görgessen le a fájl végéig, és adja hozzá ezt a sort: export PATH = $ PATH: ~/Embedded/gcc-arm-none-eabi-8-2018-q4/bin
  4. kilépés mentéssel: CTRL+X, kattintson az Y, az ENTER gombra
  5. futtassa a következő parancsot: source.bashrc a terminálforrások frissítéséhez
  6. ellenőrizze, hogy minden működik, írja be: arm-none-eabi-gcc --version, a fordító legújabb verzióját kell megjelenítenie

Az st-link telepítéséhez bontsa ki a letöltött archívumot a beágyazott mappába. Ezután kövesse az alábbi lépéseket:

  1. Fuss: készíts
  2. Menjen a "build/Release" mappába: cd build/Release
  3. Írja be az ls parancsot, és két futtatható fájlt fog látni: "st-flash" és "st-util"
  4. Vigye ezt a kettőt a szülőkönyvtárba: stv: mv st-flash st-util../../
  5. Ha ezt a két funkciót globálisan szeretné használni, akkor újra szerkesztheti a ".bashrc" fájlt a következő hozzáadásával:

    export PATH = $ PATH: ~/Beágyazott/stlink/

Ez minden! Minden megvan, amire szüksége van. Most pedig ragadja meg kedvenc szövegszerkesztőjét. Csak egy szabványt használjon, egy okosabbat, mint a SublimeText vagy az Atom, ezt használom.

3. lépés: Mintaprojekt beállítása

Mintaprojekt beállítása
Mintaprojekt beállítása

Most létrehozunk egy mintaprojektet, amellyel minden projekt elindítható. Olyan, mint egy sablon, ahol az összes fő beállítás már kezelt.

Letöltheted a MEGA -ról, a link ennek az utasításnak az első lépésén található, és minden youtube videóm alatt. Belül az üres main.c fájl, valamint néhány indítófájl ehhez a processzorhoz és a Makefile -hez. A Makefile az, amely megmondja a C fordítónak, hogy hol találja meg a kar fordítóját, hogyan kell fordítani, és hol vannak az összes könyvtár. A projekthez megfelelő fájlok beszerzéséhez lépjen be az STM32 könyvtármappába, és keresse meg a "projekt" vagy a "példák" mappákat. Belül ezeket a fájlokat láthatja és másolhatja: main.c, Makefile és XXX_conf.h, system_XXX.c. Szüksége lesz továbbá az mappában található stm32_flash.ld linker fájlra:

"/FLASH_Program/TrueSTUDIO/FLASH_Program/", amely a példa mappában található, vagy csak keressen rá a fájlra.

A Makefile megtalálható az interneten, vagy másolható a mappámból, de néhány dolgot módosítania kell. Nézzünk egy pillantást a make fájlomra, és hogy mit változtathat.

# A stlink mappa elérési útja a kód fedélzetre való feltöltéséhez

STLINK = ~/Embedded/stlink # Tedd ide a forrásfájlokat (*.c) SRCS = main.c system_stm32f4xx.c # Könyvtárak forrásfájljai #SRCS += stm32f4xx_rcc.c #SRCS += stm32f4xx_gpio.c # Bináris fájlok generálódnak ez a név (.elf,.bin,.hex) PROJ_NAME = teszt # Tedd ide az STM32F4 könyvtár kódkönyvtárát, változtasd meg a YOURUSERNAME-t a sajátodra STM_COMMON =/home/matej/Embedded/STM32F4-Discovery_FW_V1.1.0 # Fordító beállításai. Csak a CFLAGS szerkesztése más fejlécfájlok felvételéhez. CC = arm -none -eabi -gcc OBJCOPY = arm -none -eabi -objcopy # Compiler flags CFLAGS = -g -O2 -Wall -Tstm32_flash.ld CFLAGS += -DUSE_STDPERIPH_DRIVER CFLAGS += -mlittle -endian -mthumb -mcpu = cortex-m4 -hüvelykujj-interwork CFLAGS += -mfloat-abi = hard -mfpu = fpv4-sp-d16 CFLAGS += -I. # Tartalmazza a fájlokat az STM könyvtárakból CFLAGS += -I $ (STM_COMMON)/Libraries/CMSIS/Include CFLAGS += -I $ (STM_COMMON)/Libraries/CMSIS/ST/STM32F4xx/Include CFLAGS += -I $ (STM_COMMON)/ Könyvtárak/STM32F4xx_StdPeriph_Driver/inc CFLAGS += -I $ (STM_COMMON)/Utilities/STM32F4 -Discovery # add start file to add SRCS += $ (STM_COMMON)/Libraries/CMSIS/ST/STM32F4xx_st/Source/Temp. s OBJS = $ (SRCS:.c =.o) vpath %.c $ (STM_COMMON)/Könyvtárak/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 bináris $ (PROJ_NAME).elf $ (PROJ_NAME).bin tiszta: rm -f *.o $ (PROJ_NAME).elf $ (PROJ_NAME).hex $ (PROJ_NAME).bin # Villogja az STM32F4 írást: proj $ (STLINK)/st -flash write $ (PROJ_NAME).bin 0x80000000

  • Az első sor szerkesztésével megváltoztathatja az stlink segédprogram mappájának elérési útját
  • A könyvtárakkal és a YOURUSERNAME névvel módosíthatja a mappájának sorát

    STM_COMMON =/home/YOURUSERNAME/Beágyazott/STM32F4-Discovery_FW_V1.1.0

  • Nézze meg azt a részt is, ahol az összes könyvtár össze van kapcsolva. Ez a használt platformtól függően változhat, ezért kérjük, ellenőrizze, hogy nem történt -e változás a fájlfában. Minden más, amely bizonyos fájlokhoz bármilyen utat tartalmaz, például az indítófájl következő sorában, megváltoztatható.

Miután ezeket a dolgokat szerkesztette a Makefile -ban, ellenőrizheti, hogy működik -e, ha megnyit egy terminált a könyvtárban, és beírja: make. Ha minden problémamentesen lefordítja, akkor készen áll. Ha nem, nézze meg a fordító hibáit, és szerkessze a Makefile fájlt.

Továbbá, amikor az Atomot használom, két kódrészletet teszek egymás mellé. Általában a main.c és a Makefile a bal oldalon, mivel csak egyszer kell szerkesztenie a Makefile -t, és a könyvtárakat a jobb oldalon. A képen látható, hogy minden könyvtárhoz megnyitottam a.c és.h fájlokat tartalmazó mappát. Mindezt a videókban láthatod.

4. lépés: Kész

Befejezett!
Befejezett!

Most, hogy a Makefile konfigurálva van és a fordító működik, ezt a mappát sablonként használhatja minden projekthez, ezért mindenképpen mentse el a mappa másolatát.

Ezenkívül tesztelheti az st-flash és az st-info programokat, ha csatlakoztatja a fejlesztői kártyát, és beírja a terminálba:

st-info-szonda

Láthatja a platformot, amelyet az stlink szoftver felismer, és az IC családot, valamint a gyorsítótárat és egyéb dolgokat. Beírhatja:

st-info

az összes elérhető paraméter megtekintéséhez.

Most elkezdheti a programozást. A következő oktatható és videóban megmutatom a GPIO és az órák alapjait. Ez a kettő minden más alapja, mivel szinte minden, amellyel a tábla kölcsönhatásba lép, GPIO -n keresztül történik, és minden óra szerint működik, és látni fogja a processzorok programozásának mintáját.

Addig is köszönöm, hogy megnézted az oktatható és a youtube videómat, ha még nem tetted meg.

Ajánlott: