Πίνακας περιεχομένων:

Ξεκινήστε την ανάπτυξη STM32 σε Linux: 4 βήματα
Ξεκινήστε την ανάπτυξη STM32 σε Linux: 4 βήματα

Βίντεο: Ξεκινήστε την ανάπτυξη STM32 σε Linux: 4 βήματα

Βίντεο: Ξεκινήστε την ανάπτυξη STM32 σε Linux: 4 βήματα
Βίντεο: Arduino VS CircuitPython Speed Comparison 2024, Ιούλιος
Anonim
Image
Image
Κατεβάστε όλα όσα χρειάζεστε
Κατεβάστε όλα όσα χρειάζεστε

Σε αυτό το Instructable, θα σας δείξω πόσο εύκολο είναι να ξεκινήσετε την ανάπτυξη προγραμμάτων STM32 σε Linux. Ξεκίνησα να χρησιμοποιώ το Linux ως κύριο μηχάνημά μου πριν από 2 χρόνια και δεν έχω απογοητευτεί. Όλα λειτουργούν γρηγορότερα και καλύτερα από τα παράθυρα. Φυσικά είναι λιγότερο βολικό από καιρό σε καιρό, αλλά σε αναγκάζει να μάθεις πράγματα βαθύτερα, ώστε να μπορείς να το χρησιμοποιήσεις.

Τέλος πάντων, σε αυτό το διδακτικό, μέρος μιας σειράς που ξεκινάω εδώ ΚΑΙ στο youtube είναι για το πώς να την ξεκινήσω. Παρακαλώ βεβαιωθείτε ότι έχετε παρακολουθήσει και το βίντεό μου στο youtube όπου εξηγώ τα πάντα ως ένα τμήμα και μπορείτε να κωδικοποιήσετε δίπλα μου.

Σε αυτή τη σειρά θα σας δείξω πώς μπορείτε να αναπτυχθείτε χρησιμοποιώντας μόνο ένα πρόγραμμα επεξεργασίας κειμένου όπως το σημειωματάριο, το SublimeText ή το Atom, οπότε δεν χρειάζεστε κανένα ιδιόκτητο λογισμικό ή IDE. Αυτό είναι τόσο γυμνό κόκαλο όσο γίνεται και είναι εκπληκτικά εύκολο.

Βήμα 1: Κατεβάστε όλα όσα χρειάζεστε

Πρέπει να κατεβάσετε τρία μέρη για να λειτουργήσουν όλα:

  • Μεταγλωττιστής GCC για ARM
  • Αρχεία υλικολογισμικού STM32
  • Βοηθητικό πρόγραμμα St-link
  • Δείγμα Έργου

Ο μεταγλωττιστής είναι το κύριο κομμάτι λογισμικού που μεταγλωττίζει τον κώδικα C μας με όλα τα άλλα αρχεία βιβλιοθήκης σε γλώσσα μηχανής που μπορεί να κατανοήσει ο ελεγκτής stm32. Λήψη της πιο πρόσφατης προ-μεταγλωττισμένης έκδοσης αυτού του μεταγλωττιστή.

Ο φάκελος που περιέχει υλικολογισμικό STM32 είναι αυτός που περιέχει όλα τα αρχεία εκκίνησης και πυρήνα που απαιτούνται για τη λειτουργία του κύριου επεξεργαστή. Θα χρησιμοποιούμε την τυπική περιφερειακή βιβλιοθήκη που έχει ξεπεραστεί από το HAL. Μου αρέσει το StPeriphLibrary περισσότερο καθώς οι εταιρείες που εργάζονται σε αυτούς τους επεξεργαστές τα χρησιμοποιούν επειδή είναι στιβαρό και παλαιότερο και υποστηρίζεται. Είναι επίσης πιο τραχύ. Δεν κόβει τη δουλειά που πρέπει να κάνετε για να προετοιμάσετε ένα περιφερειακό ή να ενεργοποιήσετε ένα LED αλλά, έτσι σας αναγκάζει να μάθετε πώς λειτουργούν αυτοί οι επεξεργαστές. Με αυτό έχετε περισσότερη γνώση των εσωτερικών λειτουργιών, δίνοντας έτσι νόημα στον προγραμματισμό οποιασδήποτε εργασίας.

Το τελευταίο κομμάτι λογισμικού για λήψη είναι το βοηθητικό πρόγραμμα st-link. Διατηρείται στο github και χρησιμοποιείται για τη μεταφορά μεταγλωττισμένων δυαδικών αρχείων στον επεξεργαστή χρησιμοποιώντας stlink IC στον πίνακα που χρησιμεύει ως προγραμματιστής / εντοπιστής σφαλμάτων SWD / JTAG.

Επίσης έχω παράσχει ένα δείγμα φακέλου έργου για το οποίο θα μιλήσω αργότερα και μπορείτε να το κατεβάσετε. Βρίσκεται μέσα στον πρώτο φάκελο VIDEO1.

Βήμα 2: Εγκατάσταση λογισμικού

Εγκατάσταση Λογισμικού
Εγκατάσταση Λογισμικού
Εγκατάσταση Λογισμικού
Εγκατάσταση Λογισμικού

Αφού κατεβάσετε όλα τα αρχεία, προτείνω να τα βάλετε μέσα σε έναν κοινό φάκελο, καθώς χρησιμοποιούνται όλα μαζί για τον ίδιο σκοπό. Έβαλα όλους τους φακέλους μέσα σε ένα φάκελο που ονομάζεται "Ενσωματωμένο" στον κατάλογο HOME.

Θα ξεκινήσουμε με τις πιο εύκολες, τις βιβλιοθήκες STM32. Ο φάκελος που έχετε κατεβάσει μπορεί να μείνει εκεί. Απλά φροντίστε να ψάξετε για να δείτε πού αποθηκεύονται τα κατάλληλα αρχεία. Επομένως, μπορείτε να αλλάξετε και να επεξεργαστείτε το κύριο MakeFile, ώστε να λειτουργεί με την πλατφόρμα σας.

Δεύτερος ευκολότερος είναι ο μεταγλωττιστής. Επίσης, δεν χρειάζεται να κάνετε τίποτα, αλλά θα κάνουμε τον μεταγλωττιστή μια παγκόσμια προσβάσιμη λειτουργία, ώστε να μπορείτε να καλέσετε τον μεταγλωττιστή από οποιονδήποτε φάκελο ανεξάρτητα από τη διαδρομή. Όλα τα βήματα μπορούν να γίνουν στο τερματικό ή στο gui, αλλά μου αρέσει να χρησιμοποιώ το τερματικό καθώς όταν βιώνεσαι γίνεται γρηγορότερο και ευκολότερο και σε ενθαρρύνω να χρησιμοποιείς περισσότερο το τερματικό, αν το φοβάσαι. Εδώ είναι τα βήματα:

  1. Μεταβείτε στον αρχικό σας φάκελο "/home/YOURUSERNAME/" ή "~/" ή πληκτρολογήστε cd στο τερματικό
  2. ανοίξτε το αρχείο ".bashrc" πληκτρολογώντας: nano.bashrc
  3. μετακινηθείτε προς τα κάτω στο τέλος του αρχείου και προσθέστε αυτήν τη γραμμή: εξαγωγή PATH = $ PATH: ~/Embedded/gcc-arm-none-eabi-8-2018-q4/bin
  4. έξοδος αποθηκεύοντας: CTRL+X, κάντε κλικ στο Y, ENTER
  5. εκτέλεση εντολής: πηγή.bashrc για ανανέωση πηγών τερματικού
  6. ελέγξτε αν όλα λειτουργούν πληκτρολογώντας: arm-none-eabi-gcc --version, θα πρέπει να εμφανίζει την τελευταία έκδοση του μεταγλωττιστή

Για να εγκαταστήσετε το st-link, εξαγάγετε το αρχείο που έχετε κατεβάσει στο φάκελο Ενσωματωμένο. Στη συνέχεια, ακολουθήστε αυτά τα βήματα:

  1. Τρέξε: φτιάξε
  2. Μεταβείτε στο φάκελο "build/Release": cd build/Release
  3. Πληκτρολογήστε ls και θα δείτε δύο εκτελέσιμα αρχεία που ονομάζονται "st-flash" και "st-util"
  4. Μετακινήστε αυτά τα δύο στον γονικό κατάλογο stlink: mv st-flash st-util../../
  5. Μπορείτε, αν θέλετε να χρησιμοποιήσετε αυτές τις δύο λειτουργίες σε παγκόσμιο επίπεδο, να επεξεργαστείτε ξανά το αρχείο ".bashrc" προσθέτοντας:

    PATH εξαγωγής = $ PATH:/Embedded/stlink/

Αυτό είναι όλο! Έχετε όλα όσα χρειάζεστε. Τώρα πάρε τον εαυτό σου τον αγαπημένο σου επεξεργαστή κειμένου. Χρησιμοποιήστε μόνο ένα τυπικό, ένα πιο έξυπνο όπως το SublimeText ή το Atom, είναι αυτό που χρησιμοποιώ.

Βήμα 3: Ρύθμιση δείγματος έργου

Δημιουργία ενός δείγματος έργου
Δημιουργία ενός δείγματος έργου

Τώρα θα δημιουργήσουμε ένα δείγμα έργου που μπορείτε να χρησιμοποιήσετε για να ξεκινήσετε κάθε έργο. Είναι σαν ένα πρότυπο με όλες τις κύριες ρυθμίσεις που έχουν ήδη χειριστεί.

Μπορείτε να το κατεβάσετε στο MEGA μου, ο σύνδεσμος βρίσκεται στο πρώτο βήμα αυτού του διδακτικού και κάτω από κάθε βίντεο μου στο youtube. Μέσα είναι το κενό αρχείο main.c μαζί με μερικά αρχεία εκκίνησης για αυτόν τον επεξεργαστή και το Makefile. Το Makefile είναι αυτό που λέει στον μεταγλωττιστή C πού να βρει τον μεταγλωττιστή βραχίονα, πώς να μεταγλωττίσει και πού βρίσκονται όλες οι βιβλιοθήκες. Για να λάβετε αυτά τα κατάλληλα αρχεία για το έργο σας, μπορείτε να μεταβείτε στο φάκελο βιβλιοθήκης STM32 και να ελέγξετε για φακέλους "έργου" ή "παραδείγματα". Μέσα θα δείτε και θα αντιγράψετε αυτά τα αρχεία: main.c, Makefile και XXX_conf.h, system_XXX.c. Επίσης θα χρειαστείτε το αρχείο συνδέσμου stm32_flash.ld που μπορείτε να βρείτε στο φάκελο:

"/FLASH_Program/TrueSTUDIO/FLASH_Program/" που βρίσκεται μέσα στο παράδειγμα φακέλου ή απλώς αναζητήστε το αρχείο.

Το Makefile μπορεί να βρεθεί στο διαδίκτυο ή να αντιγραφεί από το φάκελό μου, αλλά θα χρειαστεί να αλλάξετε μερικά πράγματα. Ας δούμε μια ματιά στο αρχείο μου και τι μπορείτε να αλλάξετε.

# Διαδρομή για να συρρικνωθεί ο φάκελος για τη μεταφόρτωση κώδικα στον πίνακα

STLINK = ~/Embedded/stlink # Τοποθετήστε τα αρχεία προέλευσης εδώ (*.c) SRCS = main.c system_stm32f4xx.c # Βιβλιοθήκες αρχεία προέλευσης #SRCS += stm32f4xx_rcc.c #SRCS += stm32f4xx_gpio.c # Θα δημιουργηθούν δυαδικά αρχεία με αυτό το όνομα (.elf,.bin,.hex) PROJ_NAME = test # Βάλτε τον κατάλογο κωδικών βιβλιοθήκης STM32F4 εδώ, αλλάξτε το YOURUSERNAME στον δικό σας STM_COMMON =/home/matej/Embedded/STM32F4-Discovery_FW_V1.1.0 # Ρυθμίσεις μεταγλωττιστή. Επεξεργαστείτε μόνο το CFLAGS για να συμπεριλάβετε άλλα αρχεία κεφαλίδας. CC = arm -none -eabi -gcc OBJCOPY = arm -none -eabi -objcopy # Compiler flags CFLAGS = -g -O2 -Wall -Tstm32_flash.ld CFLAGS += -DUSE_STDPERIPH_DRIVER CFLAGS += -mumb -end = φλοιός-m4 -mthumb-interwork CFLAGS += -mfloat-abi = σκληρός -mfpu = fpv4-sp-d16 CFLAGS += -I. # Συμπεριλάβετε αρχεία από βιβλιοθήκες STM CFLAGS += -I $ (STM_COMMON)/Βιβλιοθήκες/CMSIS/Συμπερίληψη CFLAGS += -I $ (STM_COMMON)/Βιβλιοθήκες/CMSIS/ST/STM32F4xx/Συμπεριλάβετε CFLAGS += -I $ (STM_COMMON) Βιβλιοθήκες/STM32F4xx_StdPeriph_Driver/inc CFLAGS += -I $ (STM_COMMON)/Utilities/STM32F4 -Discovery # προσθήκη αρχείου εκκίνησης για δημιουργία SRCS += $ (STM_COMMON)/Βιβλιοθήκες/CMSIS/ST/STM32p4mxxxxx/πηγή 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 δυαδικό $ (PROJ_NAME) εγώ $ (PROJ_NAME).bin καθαρό: rm -f *.o $ (PROJ_NAME).elf $ (PROJ_NAME). Hex $ (PROJ_NAME).bin # Flash το STM32F4 εγγραφή: proj $ (STLINK)/st -flash εγγραφή $ (PROJ_NAME).bin 0x80000000

  • Θα μπορούσατε να επεξεργαστείτε την πρώτη γραμμή για να αλλάξετε τη διαδρομή στο φάκελο βοηθητικού προγράμματος stlink
  • Μπορείτε να αλλάξετε γραμμή στον προορισμό του φακέλου σας με βιβλιοθήκες και YOURUSERNAME

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

  • Ελέγξτε επίσης την ενότητα όπου συνδέονται όλες οι βιβλιοθήκες. Αυτό μπορεί να αλλάξει ανάλογα με την πλατφόρμα που χρησιμοποιείτε, επομένως ελέγξτε για αλλαγές στο δέντρο αρχείων. Ό, τι άλλο περιλαμβάνει οποιεσδήποτε διαδρομές προς ορισμένα αρχεία, όπως με την επόμενη γραμμή με το αρχείο εκκίνησης μπορεί να αλλάξει.

Αφού έχετε επεξεργαστεί όλα αυτά τα πράγματα μέσα στο Makefile, μπορείτε να ελέγξετε εάν λειτουργεί ανοίγοντας ένα τερματικό μέσα στον κατάλογό σας και πληκτρολογώντας: make. Εάν συγκεντρώνει όλα τα πράγματα χωρίς πρόβλημα, τότε είστε έτοιμοι. Εάν όχι, δείτε τα σφάλματα του μεταγλωττιστή και επεξεργαστείτε το Makefile.

Επίσης, όταν χρησιμοποιώ το Atom, βάζω δύο κομμάτια κώδικα δίπλα -δίπλα. Συνήθως το main.c και το Makefile στα αριστερά καθώς χρειάζεται μόνο να επεξεργαστείτε το Makefile μία φορά και βιβλιοθήκες στα δεξιά. Μπορείτε να δείτε στην εικόνα ότι έχω ανοίξει το φάκελο που περιέχει τα αρχεία.c και.h για κάθε βιβλιοθήκη. Όλα αυτά μπορείτε να τα δείτε στα βίντεο.

Βήμα 4: Ολοκληρώθηκε

Πεπερασμένος!
Πεπερασμένος!

Τώρα που έχετε ρυθμίσει το Makefile και λειτουργεί ο μεταγλωττιστής, μπορείτε να χρησιμοποιήσετε αυτόν τον φάκελο για όλα τα έργα ως πρότυπο, οπότε βεβαιωθείτε ότι έχετε αποθηκεύσει ένα αντίγραφο αυτού του φακέλου.

Επίσης, μπορείτε να δοκιμάσετε τα προγράμματα st-flash και st-info συνδέοντας τον πίνακα ανάπτυξης και πληκτρολογώντας στο τερματικό:

st-info-έρευνα

Μπορείτε να δείτε την πλατφόρμα που αναγνωρίζει το λογισμικό stlink και την οικογένεια IC μαζί με την προσωρινή μνήμη και άλλα πράγματα. Μπορείτε να πληκτρολογήσετε:

st-info

για να δείτε όλες τις διαθέσιμες παραμέτρους.

Τώρα μπορείτε να ξεκινήσετε τον προγραμματισμό. Στο επόμενο διδακτικό και βίντεο, θα σας δείξω τα βασικά του GPIO και των ρολογιών. Αυτά τα δύο είναι τα βασικά για όλα τα άλλα καθώς σχεδόν όλα όσα αλληλεπιδρά ο πίνακας είναι πάνω από το GPIO και όλα λειτουργούν ρολόι και θα δείτε το μοτίβο προγραμματισμού αυτών των επεξεργαστών.

Μέχρι τότε, σας ευχαριστώ που παρακολουθήσατε το διδακτικό μου βίντεο και το βίντεο μου στο youtube, αν δεν το έχετε κάνει ακόμα.

Συνιστάται: