1
déc
4

Programmer sur le STM32L-Discovery sur Linux

STM32 est une famille de plusieurs séries de circuits micro-contrôleurs, par STMicroelectronics (aussi connu comme ST), basé sur le processeur RISC 32 bits Cortex-M3 et Cortex-M4F d’ARM Holdings.

Dans ce tutoriel, vous allez apprendre a compilé un fichier C et l’envoyé pour l’exécution sur le micro-contrôleur STM32L.

Nous allons commencer par installer les paquets nécessaires:

  • Git:
    sudo apt-get install git
  • libusb-1.0
    sudo apt-get install libusb-1.0
  • Et le reste:
    sudo apt-get install flex bison libgmp3-dev libmpfr-dev libncurses5-dev libmpc-dev autoconf texinfo build-essential libftdi-dev

Ensuite, nous allons télécharger les utilitaires nécessaires pour la connexion et la communication avec notre stm32l-discovery :

  1. D’abord, créer un dossier (ou tout va être téléchargé):
    ~ $ mkdir stm32l-discovery
    ~ $ cd stm32l-discovery
  2. Puis, on commence a télécharger:
    ~/stm32l-discovery $ git clone https://github.com/esden/summon-arm-toolchain.git

    (summon-arm-toolchain)

    ~/stm32l-discovery $ git clone https://github.com/texane/stlink.git

    (Stlink)

Et on installe le summon-arm-toolchain (en super-utilisateur):

~/stm32l-discovery $ cd summon-arm-toolchain/
~/stm32l-discovery/summon-arm-toolchain $ sudo ./summon-arm-toolchain

Nous devons maintenant compiler le STlink, ouvrez le dossier stm32l-discovery/stlink puis faites un make:

~ $ cd stm32l-discovery/stlink/
~/stm32l-discovery/stlink $ make
A partir de ce point, nous allons supposer que toolchain est installé dans le dossier $toolchain_path (dans notre cas, $toolchain_path=/home/tunilame/sat)

$ toolchain_path="/home/<user>/sat"

Remplacez < user > par le nom d’utilisateur.

Compiler un fichier C et l’envoyer sur le STM32L-Discovery

Dans cet exemple, nous allons allumer les LEDs LD3 et LD4 (vert et bleu) une après l’autre, dés que le micro-contrôleur est branché.

  1. Compilation
    $ cd ~tunilame/stm32l-discovery/stlink/example/32l_dac/
    ~/stm32l-discovery/stlink/example/32l_dac $ make -C ../libs_stm/build

    Ici, on a compilez les fichiers et les bibliothèques spécifiques au STM32L-Discovery

    ~/stm32l-discovery/stlink/example/32l_dac $ make

    et hop, on compile notre programme!

  2. Envoi du programme sur le STM32L-Discovery

    Branchez maintenant votre STM32L-Discovery avec un câble USB, puis exécuter le fichier st-util qui se trouve dans gdbserver/:

    $ cd ~/stm32l-discovery/stlink
    ~/stm32l-discovery/stlink $ sudo ./gdbserver/st-util

    Après avoir exécuter ces commandes, vous devez voir le LED LD1 (qui se trouve en haut a gauche du stm32) allumé en VERT.

    Ouvrez maintenant un nouveau terminal et, sans fermer le terminal d’origine (ou est exécuté st-util), exécutez le arm−none-eabi−gdb qui se trouve dans le dossier $toolchain_path/bin:

    $ /home/tunilame/sat/bin/arm-none-eabi-gdb
    (gdb) target extended-remote :4242

    Se connecter avec le stm32 (en utilisant le port 4242, qui a est utilisé par st-util dans l’autre terminal)

    (gdb) cd ~/stm32l-discovery/stlink/example/32l_dac/
    (gdb) load dac.elf

    On charge notre programme…

    (gdb) run
    The program being debugged has been started already.
    Start it from the beginning? (y or n) y
    Starting program:

    Et on l’exécute!

  3. Arreter l’execution

    Pour arrêter l’exécution, faites un CTRL+C.
    Pour quitter gdb et démonter votre stm32l:

    (gdb) quit
    A debugging session is active.
     
    	Inferior 1 [Remote target] will be killed.
     
    Quit anyway? (y or n) y

Maintenant, vous pouvez essayer les fichiers présents dans le dossier stlink/examples, je vous suggère d’exécuter le fichier 32l_lcd.c qui affichera du texte sur l’écran LCD du STM32L-Discovery.

Dorénavant, utilisez 32l_dac et 32l_lcd présents dans stlink/examples comme base pour apprendre a programmer sur votre micro-contrôleur, et faîtes des recherches sur Google!

Pour tout problème/correction, merci de poster un commentaire.

sources:

Cet article vous a plu?
Abonnez-vous au flux RSS et vous aurez tous les nouveaux articles délivrés pour vous!
4 Comments:
  1. Sami_Tunisien 12 fév, 2012

    Merci pour le post…

    Très util…

  2. Sami_Tunisien 12 fév, 2012

    Juste, pour faciliter les choses, il faut aussi mentionné qu’il faut aussi installer le paquet « zlibg1-dev » sinon on aura une « zlib.h » manquante et ajouter la ligne du « toolchain_path » dans .bashrc.

  3. Sami_Tunisien 12 fév, 2012

    Errata pour le commentaire précédent: la lib s’appelle « zlib1g-dev »
    Un autre problème qui pourra rencontrer les utilisateurs de ce tuto, c’est la lib newlib-1.19.0.tar.gz:
    Le site ftp de redhat ne laisse pas le script d’installation à terminer le fetch de l’url ftp de cette lib.

    Pour celà, il suffit de la télécharger de l’addresse ftp avec votre navigateur et la mettre sous le répertoire ~/stm32l-discovery/summon-arm-toolchain/sources

  4. Sami_Tunisien 12 fév, 2012

    Et bien sûr, pour pouvoir compiler les exemples de stlink, il faut ajouter dans ~/.bashrc cette ligne (à part la ligne du toolchain_path):

    export PATH=$PATH: »/home//sat/bin »

    tout en changeant par le login linux de votre session, pour que les commandes du toolchain (example arm-none-eabi-gcc) soient accessibles de n’importe quel répertoire.

Post your comment




Get Adobe Flash playerPlugin by wpburn.com wordpress themes
Celadon theme by the Themes Boutique