Cuprins:

Începeți să dezvoltați STM32 pe Linux: 4 pași
Începeți să dezvoltați STM32 pe Linux: 4 pași

Video: Începeți să dezvoltați STM32 pe Linux: 4 pași

Video: Începeți să dezvoltați STM32 pe Linux: 4 pași
Video: 🚀 Dezvoltați afacerea și aduceți mai mulți clienți cu ajutorul aplicației HelpYou! 📈 2024, Iulie
Anonim
Image
Image
Descarcă tot ce ai nevoie
Descarcă tot ce ai nevoie

În acest Instructable, vă voi arăta cât de ușor este să începeți să dezvoltați programe STM32 pe Linux. Am început să folosesc Linux ca mașină principală acum 2 ani și nu am fost dezamăgit. Totul funcționează mai repede și mai bine decât ferestrele. Desigur, este mai puțin convenabil din când în când, dar te obligă să înveți lucrurile mai adânc, astfel încât să îl poți folosi.

Oricum, în acest instructiv, o parte dintr-o serie pe care o încep aici ȘI pe youtube este despre cum să o încep. Vă rugăm să vă asigurați că urmăriți și videoclipul meu pe YouTube, unde explic totul ca pe un singur segment și puteți codifica alături de mine.

În această serie vă voi arăta cum vă puteți dezvolta folosind doar un editor de text precum notepad, SublimeText sau Atom, deci nu aveți nevoie de niciun software propriu sau IDE. Acest lucru este la fel de osos gol și devine surprinzător de ușor.

Pasul 1: Descărcați tot ce aveți nevoie

Trebuie să descărcați trei părți pentru ca totul să funcționeze:

  • Compilator GCC pentru ARM
  • Fișiere firmware STM32
  • Utilitatea St-link
  • Exemplu de proiect

Compilatorul este piesa principală de software care compilează codul nostru C cu toate celelalte fișiere de bibliotecă în limbajul mașinii pe care controlorul nostru stm32 le poate înțelege. Descărcați cea mai recentă versiune precompilată a acestui compilator.

Dosarul care conține firmware-ul STM32 este cel care conține toate fișierele de pornire și de bază necesare pentru funcționarea procesorului principal. Vom folosi Biblioteca Periferică Standard care a fost depășită de HAL. Îmi place mai mult StPeriphLibrary, deoarece companiile care lucrează la aceste procesoare le folosesc pentru că este robustă, mai veche și acceptată. De asemenea, este mai accidentat. Nu reduce lucrurile pe care trebuie să le faceți pentru a inițializa un periferic sau pentru a porni un LED, dar vă obligă să aflați cum funcționează aceste procesoare. Cu aceasta aveți mai multe cunoștințe despre funcționarea interioară, având astfel sens de a programa orice sarcină.

Ultima piesă de software de descărcat este utilitarul st-link. Este menținut pe github și este utilizat pentru a transfera fișiere binare compilate către procesor folosind stlink IC pe placa care servește ca programator / depanator SWD / JTAG.

De asemenea, am oferit un exemplu de folder de proiect despre care vorbesc mai târziu și îl puteți descărca. Se află în primul folder VIDEO1.

Pasul 2: Instalarea software-ului

Instalarea software-ului
Instalarea software-ului
Instalarea software-ului
Instalarea software-ului

După ce ați descărcat toate fișierele, vă sugerez să le introduceți într-un folder comun, deoarece toate sunt utilizate împreună pentru același scop. Am pus toate folderele într-un folder numit „Embedded” în directorul meu HOME.

Vom începe cu cele mai ușoare biblioteci STM32. Dosarul pe care l-ați descărcat poate fi lăsat acolo. Asigurați-vă că ați săpat pentru a vedea unde sunt stocate fișierele corespunzătoare. Prin urmare, puteți modifica și edita MakeFile principal, astfel încât acesta să funcționeze cu platforma dvs.

Al doilea cel mai ușor este compilatorul. De asemenea, nu trebuie să faceți nimic, dar vom face din compilator o funcție accesibilă la nivel global, astfel încât să puteți apela compilatorul din orice folder, indiferent de cale. Toți pașii pot fi realizați în terminal sau în gui, dar îmi place să folosesc terminalul, deoarece atunci când ai experiență devine mai rapid și mai ușor și te încurajez să folosești mai mult terminalul, dacă ți-e frică de el. Iată pașii:

  1. Accesați folderul dvs. de acasă "/ home / DUMNOMULUI DUMNEAVOASTRĂ /" sau "~ /" sau tastați cd în terminal
  2. deschideți fișierul „.bashrc” tastând: nano.bashrc
  3. derulați în jos până la sfârșitul fișierului și adăugați această linie: export PATH = $ PATH: ~ / Embedded / gcc-arm-none-eabi-8-2018-q4 / bin
  4. ieși salvând: CTRL + X, dă clic pe Y, ENTER
  5. rulați comanda: sursă.bashrc pentru a reîmprospăta sursele terminalului
  6. verificați dacă totul funcționează tastând: arm-none-eabi-gcc --version, ar trebui să afișeze cea mai recentă versiune a compilatorului

Pentru a instala st-link, extrageți arhiva pe care ați descărcat-o în folderul Embedded. Apoi urmați acești pași:

  1. Fugiți: faceți
  2. Accesați folderul „build / Release”: cd build / Release
  3. Tastați ls și veți vedea două executabile numite „st-flash” și „st-util”
  4. Mutați-le pe cele două în directorul părinte stlink: mv st-flash st-util../../
  5. Puteți, dacă doriți să utilizați aceste două funcții la nivel global, să editați din nou fișierul „.bashrc” adăugând:

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

Asta e tot! Ai tot ce ai nevoie. Acum, du-te și ia-ți editorul de text preferat. Folosiți doar unul standard, unul mai inteligent precum SublimeText sau Atom, este ceea ce folosesc.

Pasul 3: Configurarea unui exemplu de proiect

Configurarea unui exemplu de proiect
Configurarea unui exemplu de proiect

Acum vom crea un exemplu de proiect pe care îl puteți utiliza pentru a începe fiecare proiect. Este ca un șablon cu toate setările principale deja gestionate.

Puteți să-l descărcați de pe MEGA, link-ul este la primul pas al acestui instructable și sub fiecare videoclip al meu de pe YouTube. În interior este fișierul main.c gol, împreună cu câteva fișiere de pornire pentru acest procesor și Makefile. Makefile este cel care spune compilatorului C unde să găsească compilatorul braț, cum să compileze și unde sunt toate bibliotecile. Pentru a obține aceste fișiere adecvate proiectului dvs., puteți accesa folderul bibliotecii STM32 și verificați dacă există un folder „proiect” sau „exemple”. În interior veți vedea și copia aceste fișiere: main.c, Makefile și XXX_conf.h, system_XXX.c. De asemenea, veți avea nevoie de fișierul linker stm32_flash.ld care poate fi găsit în folderul:

„/ FLASH_Program / TrueSTUDIO / FLASH_Program /” care se află în folderul de exemplu sau căutați doar fișierul.

Makefile poate fi găsit online sau copiat din folderul meu, dar va trebui să schimbați câteva lucruri. Să ne aruncăm o privire asupra fișierului meu make și a ceea ce ai putea schimba.

# Calea către folderul stlink pentru încărcarea codului pe bord

STLINK = ~ / Embedded / stlink # Puneți fișierele sursă aici (*.c) SRCS = main.c system_stm32f4xx.c # Fișiere sursă biblioteci #SRCS + = stm32f4xx_rcc.c #SRCS + = stm32f4xx_gpio.c # Binarii vor fi generați cu acest nume (.elf,.bin,.hex) PROJ_NAME = test # Puneți directorul codului de bibliotecă STM32F4 aici, schimbați-VĂ NUMEUL DE UTILIZATOR cu numele dvs. STM_COMMON = / home / matej / Embedded / STM32F4-Discovery_FW_V1.1.0 # Setările compilatorului. Editați CFLAGS numai pentru a include alte fișiere antet. 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 -mthumb-interwork CFLAGS + = -mfloat-abi = hard -mfpu = fpv4-sp-d16 CFLAGS + = -I. # Includeți fișiere din bibliotecile STM CFLAGS + = -I $ (STM_COMMON) / Biblioteci / CMSIS / Includeți CFLAGS + = -I $ (STM_COMMON) / Biblioteci / CMSIS / ST / STM32F4xx / Includeți CFLAGS + = -I $ (STM_COMMON) / Biblioteci / STM32F4xx_StdPeriph_Driver / inc CFLAGS + = -I $ (STM_COMMON) / Utilities / STM32F4-Discovery # add startup file to build SRCS + = $ (STM_COMMON) / Libraries / CMSIS / ST / STM32F4xx / Source / Templates / TrueSTUD. s OBJS = $ (SRCS:.c =.o) vpath%.c $ (STM_COMMON) / Libraries / 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 binary $ (PROJ_NAME).elf $ (PROJ_NAME).bin clean: rm -f *.o $ (PROJ_NAME).elf $ (PROJ_NAME).hex $ (PROJ_NAME).bin # Flash STM32F4 burn: proj $ (STLINK) / st-flash write $ (PROJ_NAME).bin 0x80000000

  • Ați putea edita prima linie pentru a schimba calea către folderul utilitarului dvs. stlink
  • Puteți schimba linia la destinația dosarului dvs. cu biblioteci și NUMEU DE DUMNEAVOASTRĂ

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

  • De asemenea, verificați secțiunea unde sunt conectate toate bibliotecile. Acest lucru se poate schimba în funcție de platforma pe care o utilizați, așa că vă rugăm să verificați dacă există modificări în arborele de fișiere. Altceva care include orice căi către anumite fișiere, cum ar fi linia următoare cu fișierul de pornire, poate fi modificat.

După ce ați editat toate aceste lucruri în Makefile, puteți verifica dacă funcționează deschizând un terminal în directorul dvs. și tastând: make. Dacă compilează fiecare lucru fără nicio problemă, atunci sunteți stabilit. Dacă nu, uitați-vă la erorile compilatorului și editați Makefile.

De asemenea, când folosesc Atom, pun două bucăți de cod una lângă alta. De obicei main.c și Makefile în stânga, deoarece trebuie să editați Makefile o singură dată și bibliotecile în dreapta. Puteți vedea pe imagine că am deschis dosarul care conține fișierele.c și.h pentru fiecare bibliotecă. Puteți vedea toate acestea în videoclipuri.

Pasul 4: Finalizat

Terminat!
Terminat!

Acum că aveți configurat Makefile și că compilatorul funcționează, puteți utiliza acest folder pentru toate proiectele ca șablon, deci asigurați-vă că salvați o copie a acestui folder.

De asemenea, puteți testa programele st-flash și st-info conectând placa de dezvoltare și tastând la terminal:

st-info --probe

Puteți vedea platforma pe care software-ul stlink o recunoaște și familia IC împreună cu memoria cache și alte lucruri. Puteți introduce:

st-info

pentru a vedea toți parametrii disponibili.

Acum puteți începe programarea. În următorul instructabil și video, vă voi arăta elementele de bază ale GPIO și ceasurilor. Aceste două sunt elementele de bază pentru orice altceva, deoarece aproape tot ce interacționează placa este peste GPIO și totul funcționează pe ceas și veți vedea modelul programării acestor procesoare.

Până atunci, vă mulțumesc că ați verificat videoclipul meu instructiv și YouTube, dacă nu ați făcut-o încă.

Recomandat: