INHOUDSOPGAWE:

Begin met die ontwikkeling van STM32 op Linux: 4 stappe
Begin met die ontwikkeling van STM32 op Linux: 4 stappe

Video: Begin met die ontwikkeling van STM32 op Linux: 4 stappe

Video: Begin met die ontwikkeling van STM32 op Linux: 4 stappe
Video: Half-Life: 25th Anniversary Documentary 2024, Julie
Anonim
Image
Image
Laai alles af wat u benodig
Laai alles af wat u benodig

In hierdie instruksies gaan ek u wys hoe maklik dit is om STM32 -programme op Linux te begin ontwikkel. Ek het 2 jaar gelede Linux as my hoofmasjien begin gebruik en is nie in die steek gelaat nie. Alles werk vinniger en beter as vensters. Natuurlik is dit van tyd tot tyd minder gerieflik, maar dit dwing u om dinge dieper te leer sodat u dit kan gebruik.

In elk geval, in hierdie instruksionele deel van 'n reeks wat ek hier begin, en op YouTube gaan dit oor hoe om dit te begin. Kyk ook na my YouTube -video, waar ek alles as een segment verduidelik, en u langs my kan kodeer.

In hierdie reeks sal ek u wys hoe u slegs met 'n teksredakteur soos notepad, SublimeText of Atom kan ontwikkel, sodat u geen eie sagteware of IDE nodig het nie. Dit is so blote bene as wat dit raak en dit is verbasend maklik.

Stap 1: Laai alles af wat u benodig

U moet drie dele aflaai om alles te laat werk:

  • GCC -samesteller vir ARM
  • STM32 firmware lêers
  • St-link nut
  • Voorbeeldprojek

Samesteller is die belangrikste sagteware wat ons C -kode saamstel met alle ander biblioteeklêers in masjientaal wat ons stm32 -beheerder kan verstaan. Laai die nuutste vooraf saamgestelde weergawe van hierdie samesteller af.

Die gids met die firmware van STM32 bevat al die opstart- en kernlêers wat nodig is vir die werking van die hoofverwerker. Ons gebruik Standard Peripheral Library wat deur HAL oortref is. Ek hou meer van StPeriphLibrary, aangesien ondernemings wat aan hierdie verwerkers werk, dit gebruik omdat dit robuust en ouer is en ondersteun word. Dit is ook meer robuust. Dit verminder nie die werk wat u moet doen om 'n randapparaat te initialiseer of 'n LED aan te skakel nie, maar dit dwing u om te leer hoe hierdie verwerkers werk. Daarmee het u meer kennis van die innerlike werking, en maak u dus sin vir die programmering van enige taak.

Die laaste sagteware om af te laai is die st-link-nut. Dit word op github onderhou en word gebruik om saamgestelde binêre lêers na die verwerker oor te dra met behulp van stlink IC op die bord wat dien as 'n SWD / JTAG programmeerder / ontfouter.

Ek het ook 'n voorbeeldprojekvouer gegee waaroor ek later praat, en u kan dit aflaai. Dit is in die eerste VIDEO1 -lêergids.

Stap 2: Installeer sagteware

Sagteware installeer
Sagteware installeer
Sagteware installeer
Sagteware installeer

Nadat u al die lêers afgelaai het, stel ek voor dat u dit in 'n gemeenskaplike gids plaas, aangesien dit almal saam vir dieselfde doel gebruik word. Ek het al die dopgehou in 'n gids met die naam "Embedded" in my HOME -gids geplaas.

Ons begin met die maklikste, die STM32 -biblioteke. Die gids wat u afgelaai het, kan net daar gelaat word. Maak seker dat u rondgrawe om te sien waar die toepaslike lêers gestoor word. Daarom kan u die belangrikste MakeFile verander en wysig sodat dit met u platform werk.

Die tweede maklikste is die samesteller. U hoef ook niks daaraan te doen nie, maar ons maak van die samesteller 'n funksie wat wêreldwyd toeganklik is, sodat u die samesteller uit enige gids kan bel, ongeag die pad. Al die stappe kan in terminale of in gui gedoen word, maar ek hou daarvan om terminale te gebruik, aangesien dit vinniger en makliker word as u ervare word, en ek moedig u aan om meer terminale te gebruik as u bang is daarvoor. Hier is die stappe:

  1. Gaan na u tuisgids "/home/YOURUSERNAME/" of "~/" of tik cd in terminale
  2. lêer ".bashrc" oop deur te tik: nano.bashrc
  3. blaai af na die einde van die lêer en voeg hierdie reël by: uitvoer PATH = $ PATH: ~/Embedded/gcc-arm-none-eabi-8-2018-q4/bin
  4. verlaat deur te stoor: CTRL+X, klik Y, ENTER
  5. run command: source.bashrc om terminale bronne te verfris
  6. kyk of alles werk deur te tik: arm-none-eabi-gcc --versie, dit moet die nuutste weergawe van die samesteller vertoon

Om st-link te installeer, pak die argief wat u afgelaai het in die Embedded-lêergids uit. Volg dan hierdie stappe:

  1. Hardloop: maak
  2. Gaan na die gids "build/Release": cd build/Release
  3. Tik ls en u sien twee uitvoerbare programme met die naam "st-flash" en "st-util"
  4. Skuif die twee na die ouergids stlink: mv st-flash st-util../../
  5. As u hierdie twee funksies wêreldwyd '.bashrc' -lêer wêreldwyd wil gebruik, kan u dit weer byvoeg deur die volgende by te voeg:

    uitvoer PATH = $ PATH: ~/Embedded/stlink/

Dit is al! Jy het alles wat jy nodig het. Gryp nou u gunsteling teksredakteur. Gebruik net 'n standaard een, 'n slimmer een soos SublimeText of Atom, dit is wat ek gebruik.

Stap 3: Die opstel van 'n voorbeeldprojek

Die opstel van 'n voorbeeldprojek
Die opstel van 'n voorbeeldprojek

Ons sal nou 'n voorbeeldprojek skep wat u kan gebruik om elke projek te begin. Dit is soos 'n sjabloon met al die hoofinstellings wat reeds hanteer is.

U kan dit op my MEGA aflaai, die skakel is in die eerste stap van hierdie instruksies en onder elke YouTube -video van my. Binne is die leë main.c -lêer saam met 'n paar opstartlêers vir hierdie verwerker en die Makefile. Makefile is die een wat die C -samesteller vertel waar die arm -samesteller gevind moet word, hoe om op te stel en waar al die biblioteke is. Om hierdie toepaslike lêers vir u projek te kry, kan u na die STM32 -biblioteekmap gaan en na 'n 'projek'- of' voorbeelde' -lêergids kyk. Binne sal u hierdie lêers sien en kopieer: main.c, Makefile en XXX_conf.h, system_XXX.c. Ook benodig u 'n linker lêer lêer stm32_flash.ld wat in die gids gevind kan word:

"/FLASH_Program/TrueSTUDIO/FLASH_Program/" wat in die voorbeeldvouer is, of soek net na die lêer.

Makefile kan aanlyn gevind word of uit my gids gekopieer word, maar u moet 'n paar dinge verander. Kom ons kyk na my maaklêer en wat u kan verander.

# Pad na die stlink -gids om kode na boord op te laai

STLINK = ~/Embedded/stlink # Plaas u bronlêers hier (*.c) SRCS = main.c system_stm32f4xx.c # Bronlêers van biblioteke #SRCS += stm32f4xx_rcc.c #SRCS += stm32f4xx_gpio.c # Binêre sal gegenereer word met hierdie naam (.elf,.bin,.hex) PROJ_NAME = toets # Plaas u biblioteekkode-gids van STM32F4 hier, verander UWERNAME na u STM_COMMON =/home/matej/Embedded/STM32F4-Discovery_FW_V1.1.0 # Samestellerinstellings. Wysig slegs CFLAGS om ander koptekstlêers in te sluit. CC = arm -none -eabi -gcc OBJCOPY = arm -none -eabi -objcopy # Samestellervlae CFLAGS = -g -O2 -Wall -Tstm32_flash.ld CFLAGS += -DUSE_STDPERIPH_DRIVER CFLAGS += -mlittle -endian -mum = korteks-m4 -duim-interwerk CFLAGS += -mfloat-abi = hard -mfpu = fpv4-sp-d16 CFLAGS += -I. # Sluit lêers in van STM -biblioteke CFLAGS += -I $ (STM_COMMON)/Biblioteke/CMSIS/Sluit CFLAGS in += -I $ (STM_COMMON)/Libraries/CMSIS/ST/STM32F4xx/Sluit CFLAGS += -I $ (STM_COMMON) in/ Biblioteke/STM32F4xx_StdPeriph_Driver/inc CFLAGS += -I $ (STM_COMMON)/Utilities/STM32F4 -Discovery # voeg opstartlêer by om SRCS te bou += $ (STM_COMMON)/Biblioteke/CMSIS/ST/STM32F4xx/Source/Templ32 s OBJS = $ (SRCS:.c =.o) vpath %.c $ (STM_COMMON)/Libraries/STM32F4xx_StdPeriph_Driver/src \. PHONY: proj all: proj proj: $ (PROJ_NAME).elf $ (PROJ_NAME). self: $ (SRCS) $ (CC) $ (CFLAGS) $^ -o $@ $ (OBJCOPY) -O ihex $ (PROJ_NAME).elf $ (PROJ_NAME).hex $ (OBJCOPY) -O binêre $ (PROJ_NAME).elf $ (PROJ_NAME). Bin skoon: rm -f *.o $ (PROJ_NAME).elf $ (PROJ_NAME).hex $ (PROJ_NAME).bin # Flits die STM32F4 -brand: proj $ (STLINK)/st -flash skryf $ (PROJ_NAME). Bin 0x80000000

  • U kan die eerste reël wysig om die pad na die gids van u stlink te verander
  • U kan die lyn verander na die bestemming van u vouer met biblioteke en u gebruikersnaam

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

  • Kyk ook na die gedeelte waar al die biblioteke gekoppel is. Dit kan verander na gelang van die platform wat u gebruik, dus kyk na veranderinge in die lêerboom. U kan alles verander wat paaie na sekere lêers insluit, soos met die volgende reël met die opstartlêer.

Nadat u al hierdie dinge in die Makefile gewysig het, kan u kyk of dit werk deur 'n terminale in u gids oop te maak en te tik: make. As dit alles sonder probleme saamstel, dan is u gereed. Indien nie, kyk na die opstelfoute en wysig die Makefile.

As ek Atom gebruik, sit ek twee stukke kode langs mekaar. Gewoonlik main.c en Makefile aan die linkerkant, aangesien u Makefile slegs een keer hoef te wysig en biblioteke aan die regterkant. U kan op die foto sien dat ek die gids met die.c- en.h -lêers vir elke biblioteek oopgemaak het. U kan dit alles in die video's sien.

Stap 4: klaar

Klaar!
Klaar!

Noudat u Makefile gekonfigureer en samesteller laat werk, kan u hierdie gids vir alle projekte as 'n sjabloon gebruik, dus maak seker dat u 'n afskrif van hierdie gids stoor.

U kan ook die st-flash- en st-info-programme toets deur u ontwikkelbord aan te sluit en in terminale te tik:

st-info-sonde

U kan die platform sien wat die stlink -sagteware herken en die IC -gesin, saam met kas en ander dinge. U kan tik:

st-inligting

om alle beskikbare parameters te sien.

Nou kan u begin programmeer. In die volgende instruksies en video sal ek u die basiese beginsels van GPIO en horlosies wys. Hierdie twee is die basiese beginsels vir alles anders, want byna alles waarmee die bord in wisselwerking is, is meer as GPIO en alles werk op die klok en u sal die patroon sien om hierdie verwerkers te programmeer.

Tot dan, dankie dat u my instruksies en my YouTube -video besoek het, as u dit nog nie gedoen het nie.

Aanbeveel: