Table des matières:

Commencez à développer STM32 sur Linux : 4 étapes
Commencez à développer STM32 sur Linux : 4 étapes

Vidéo: Commencez à développer STM32 sur Linux : 4 étapes

Vidéo: Commencez à développer STM32 sur Linux : 4 étapes
Vidéo: Créer un driver Linux embarqué (Démo) 2024, Juillet
Anonim
Image
Image
Téléchargez tout ce dont vous avez besoin
Téléchargez tout ce dont vous avez besoin

Dans ce Instructable, je vais vous montrer à quel point il est facile de commencer à développer des programmes STM32 sur Linux. J'ai commencé à utiliser Linux comme machine principale il y a 2 ans et je n'ai pas été déçu. Tout fonctionne plus vite et mieux que Windows. Bien sûr, c'est moins pratique de temps en temps, mais cela vous oblige à approfondir les choses pour pouvoir l'utiliser.

Quoi qu'il en soit, dans ce instructable, partie d'une série que je commence ici ET sur youtube est de savoir comment le démarrer. Assurez-vous également de regarder ma vidéo youtube où j'explique tout en un seul segment et vous pouvez coder à mes côtés.

Dans cette série, je vais vous montrer comment vous pouvez développer en utilisant uniquement un éditeur de texte comme le bloc-notes, SublimeText ou Atom, de sorte que vous n'avez besoin d'aucun logiciel propriétaire ou IDE. C'est aussi simple que possible et c'est étonnamment facile.

Étape 1: Téléchargez tout ce dont vous avez besoin

Vous devez télécharger trois parties pour que tout fonctionne:

  • Compilateur GCC pour ARM
  • Fichiers du micrologiciel STM32
  • Utilitaire St-link
  • Exemple de projet

Le compilateur est le principal logiciel qui compile notre code C avec tous les autres fichiers de bibliothèque en langage machine que notre contrôleur stm32 peut comprendre. Téléchargez la dernière version précompilée de ce compilateur.

Le dossier contenant le firmware STM32 est celui qui contient tous les fichiers de démarrage et de base nécessaires au fonctionnement du processeur principal. Nous utiliserons la bibliothèque périphérique standard qui a été dépassée par HAL. J'aime davantage StPeriphLibrary car les entreprises qui travaillent sur ces processeurs les utilisent car elles sont robustes, plus anciennes et prises en charge. Il est aussi plus robuste. Cela ne réduit pas le travail que vous devez faire pour initialiser un périphérique ou allumer une LED, mais cela vous oblige donc à apprendre comment fonctionnent ces processeurs. Avec cela, vous avez plus de connaissances sur le fonctionnement interne, ce qui donne un sens à la programmation de n'importe quelle tâche.

Le dernier logiciel à télécharger est l'utilitaire st-link. Il est maintenu sur github et est utilisé pour transférer des fichiers binaires compilés vers le processeur à l'aide de stlink IC sur la carte servant de programmeur/débogueur SWD / JTAG.

J'ai également fourni un exemple de dossier de projet dont je parlerai plus tard et vous pouvez le télécharger. Il se trouve dans le premier dossier VIDEO1.

Étape 2: Installation du logiciel

Installation du logiciel
Installation du logiciel
Installation du logiciel
Installation du logiciel

Après avoir téléchargé tous les fichiers, je vous suggère de les mettre dans un dossier commun car ils sont tous utilisés ensemble dans le même but. J'ai mis tous les dossiers dans un dossier appelé "Embedded" dans mon répertoire HOME.

Nous commencerons par la plus simple, les bibliothèques STM32. Le dossier que vous avez téléchargé peut être simplement laissé là. Assurez-vous simplement de creuser pour voir où les fichiers appropriés sont stockés. Par conséquent, vous pouvez modifier et éditer le MakeFile principal afin qu'il fonctionne avec votre plate-forme.

Le deuxième plus simple est le compilateur. Vous n'avez pas non plus besoin de faire quoi que ce soit, mais nous ferons du compilateur une fonction globalement accessible afin que vous puissiez appeler le compilateur à partir de n'importe quel dossier, quel que soit le chemin. Toutes les étapes peuvent être effectuées dans le terminal ou dans l'interface graphique, mais j'aime utiliser le terminal car lorsque vous avez de l'expérience, cela devient plus rapide et plus facile et je vous encourage à utiliser davantage le terminal, si vous en avez peur. Voici les étapes:

  1. Allez dans votre dossier personnel "/home/YOURUSERNAME/" ou "~/" ou tapez cd dans le terminal
  2. ouvrez le fichier ".bashrc" en tapant: nano.bashrc
  3. faites défiler jusqu'à la fin du fichier et ajoutez cette ligne: export PATH=$PATH:~/Embedded/gcc-arm-none-eabi-8-2018-q4/bin
  4. sortir en sauvegardant: CTRL+X, cliquer sur Y, ENTER
  5. exécuter la commande: source.bashrc pour actualiser les sources du terminal
  6. vérifiez si tout fonctionne en tapant: arm-none-eabi-gcc --version, il devrait afficher la dernière version du compilateur

Pour installer st-link, extrayez l'archive que vous avez téléchargée dans le dossier Embedded. Suivez ensuite ces étapes:

  1. Exécuter: faire
  2. Allez dans le dossier "build/Release": cd build/Release
  3. Tapez ls et vous verrez deux exécutables appelés "st-flash" et "st-util"
  4. Déplacez ces deux éléments dans le répertoire parent stlink: mv st-flash st-util../../
  5. Vous pouvez, si vous souhaitez utiliser ces deux fonctions, éditer à nouveau globalement le fichier ".bashrc" en ajoutant:

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

C'est tout! Vous avez tout ce dont vous avez besoin. Maintenant, allez chercher votre éditeur de texte préféré. Utilisez juste un standard, un plus intelligent comme SublimeText ou Atom, c'est ce que j'utilise.

Étape 3: Configuration d'un exemple de projet

Configuration d'un exemple de projet
Configuration d'un exemple de projet

Nous allons maintenant créer un exemple de projet que vous pouvez utiliser pour démarrer chaque projet. C'est comme un modèle avec tous les paramètres principaux déjà gérés.

Vous pouvez le télécharger sur mon MEGA, le lien est sur la première étape de cette instructable et sous chacune de mes vidéos youtube. A l'intérieur se trouve le fichier main.c vide avec quelques fichiers de démarrage pour ce processeur et le Makefile. Makefile est celui qui indique au compilateur C où trouver le compilateur arm, comment compiler et où se trouvent toutes les bibliothèques. Pour obtenir ces fichiers appropriés pour votre projet, vous pouvez aller dans le dossier de la bibliothèque STM32 et rechercher un dossier « projet » ou « exemples ». À l'intérieur, vous verrez et copierez ces fichiers: main.c, Makefile et XXX_conf.h, system_XXX.c. Vous aurez également besoin du fichier de liaison stm32_flash.ld qui se trouve dans le dossier:

"/FLASH_Program/TrueSTUDIO/FLASH_Program/" qui se trouve dans le dossier exemple ou recherchez simplement le fichier.

Makefile peut être trouvé en ligne ou copié à partir de mon dossier, mais vous devrez modifier quelques éléments. Jetons un coup d'œil à mon fichier make et à ce que vous pourriez changer.

# Chemin d'accès au dossier stlink pour télécharger le code sur le tableau

STLINK=~/Embedded/stlink # Mettez vos fichiers sources ici (*.c) SRCS=main.c system_stm32f4xx.c # Fichiers sources des bibliothèques #SRCS += stm32f4xx_rcc.c #SRCS += stm32f4xx_gpio.c # Les binaires seront générés avec ce nom (.elf,.bin,.hex) PROJ_NAME=test # Placez votre répertoire de code de bibliothèque STM32F4 ici, remplacez VOTRE NOM D'UTILISATEUR par le vôtre STM_COMMON=/home/matej/Embedded/STM32F4-Discovery_FW_V1.1.0 # Paramètres du compilateur. Modifiez uniquement CFLAGS pour inclure d'autres fichiers d'en-tête. CC=arm-none-eabi-gcc OBJCOPY=arm-none-eabi-objcopy # Drapeaux du compilateur 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. # Inclure les fichiers des bibliothèques STM CFLAGS += -I$(STM_COMMON)/Libraries/CMSIS/Include CFLAGS += -I$(STM_COMMON)/Libraries/CMSIS/ST/STM32F4xx/Inclure CFLAGS += -I$(STM_COMMON)/ Libraries/STM32F4xx_StdPeriph_Driver/inc CFLAGS += -I$(STM_COMMON)/Utilities/STM32F4-Discovery # ajouter un fichier de démarrage pour construire SRCS += $(STM_COMMON)/Libraries/CMSIS/ST/STM32F4xx/Source/Templates/True_STUDIO/start32f32 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 binaire $(PROJ_NAME).elf $(PROJ_NAME).bin clean: rm -f *.o $(PROJ_NAME).elf $(PROJ_NAME).hex $(PROJ_NAME).bin # Flasher la gravure STM32F4: proj $(STLINK)/st-flash write $(PROJ_NAME).bin 0x80000000

  • Vous pouvez modifier la première ligne pour changer le chemin d'accès au dossier de votre utilitaire stlink
  • Vous pouvez changer de ligne vers la destination de votre dossier avec les bibliothèques et VOTRE NOM D'UTILISATEUR

    STM_COMMON=/home/VOTRE NOM D'UTILISATEUR/Embedded/STM32F4-Discovery_FW_V1.1.0

  • Consultez également la section où toutes les bibliothèques sont liées. Cela peut changer en fonction de la plate-forme que vous utilisez, veuillez donc vérifier les changements dans l'arborescence des fichiers. Tout le reste qui inclut tous les chemins vers certains fichiers, comme avec la ligne suivante avec le fichier de démarrage peut être modifié.

Après avoir édité toutes ces choses dans le Makefile, vous pouvez vérifier s'il fonctionne en ouvrant un terminal dans votre répertoire et en tapant: make. S'il compile tout sans problème, alors vous êtes prêt. Sinon, regardez les erreurs du compilateur et éditez le Makefile.

De plus, lorsque j'utilise Atom, je mets deux morceaux de code côte à côte. Généralement main.c et Makefile à gauche car vous n'avez besoin d'éditer Makefile qu'une seule fois et les bibliothèques à droite. Vous pouvez voir sur la photo que j'ai ouvert le dossier contenant les fichiers.c et.h pour chaque bibliothèque. Vous pouvez voir tout cela dans les vidéos.

Étape 4: Terminé

Fini!
Fini!

Maintenant que vous avez configuré Makefile et que le compilateur fonctionne, vous pouvez utiliser ce dossier pour tous les projets en tant que modèle, alors assurez-vous d'enregistrer une copie de ce dossier.

Vous pouvez également tester les programmes st-flash et st-info en branchant votre carte de développement et en tapant dans le terminal:

st-info --sonde

Vous pouvez voir la plate-forme reconnue par le logiciel stlink et la famille IC ainsi que le cache et d'autres éléments. Vous pouvez saisir:

st-info

pour voir tous les paramètres disponibles.

Vous pouvez maintenant commencer à programmer. Dans la prochaine instructable et vidéo, je vais vous montrer les bases du GPIO et des horloges. Ces deux éléments sont les bases de tout le reste, car presque tout ce avec quoi la carte interagit est via GPIO et tout fonctionne à l'horloge et vous verrez le modèle de programmation de ces processeurs.

D'ici là, merci de consulter mon instructable et ma vidéo youtube, si vous ne l'avez pas encore fait.

Conseillé: