1. tuck
  2. pymite_stm32f4

Source

pymite_stm32f4 / source / installation.rst

Installer la chaîne de compilation :

  • se procurer les éléments nécessaires pour sa plateforme (linux) :

    • python 2.6 (pas d'autres dépendances à python ...)
    • JAVA >=1.6 ? (pour l'installation de la toolchain)
    • un accès à internet
    • arm-2011.09-69-arm-none-eabi.bin
    • stlink.tar.gz
    • pymite-09.tar.gz
  • pour le reste de la documentation on supposera que tout se passe dans un répertoire créé pour l'exemple:

    virtualenv --python=python2.6 myvenv
    source ./myvenv/bin/activate
    mkdir ~/stm32f4_work
    cp stlink.tar.gz ~/stm32f4_work
    cp pymite-09.tar.gz ~/stm32f4_work
    cp arm-2011.09-69-arm-none-eabi.bin ~/stm32f4_work
    
  • Installer la chaîne de compilation de Sourcery :

    • je ne conseille pas cette tool chain (a) payant (b) la version lite est vraiment light :/

    • téléchargez la version lite arm-2011.09-69-arm-none-eabi.bin et acceptez la licence.

    • exécuter le binaire arm-2011.09-69-arm-none-eabi.bin:

      dev@tuck-eeepc:~$ ./arm-2011.09-69-arm-none-eabi.bin
      
    • rendre accessible le binaire arm-none-eabi-gdb pour cela modifier votre PATH:

      dev@tuck-eeepc:~$ export PATH=$PATH:~/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_EABI/bin/
      

    vous pouvez exécuter ce binaire depuis votre utilisateur habituel (pas besoin de sudo) cela exécute un installeur (il utilise java), suivre la procédure d'installation, le programme crée deux répertoires dans le home directory de l'utilisateur:

    • ~/Sourcery_CodeBench_Lite_for_ARM_EABI
    • ~/CodeSourcery/
  • Installer la chaîne de compilation grâce au projet summon-arm-tool-chain

    • utilisation du projet summon daemon pour installer la tool chain:

      dev@tuck-eeepc:~$ sudo apt-get install git zlib1g-dev libtool flex \
      bison libgmp3-dev libmpfr-dev libncurses5-dev libmpc-dev \
      autoconf texinfo build-essential libftdi-dev
      # install some packages ...
      dev@tuck-eeepc:~$ git clone https://github.com/esden/summon-arm-toolchain.git
      dev@tuck-eeepc:~$ cd summon-arm-toolchain
      dev@tuck-eeepc:~/summon-arm-toolchain$ ./summon-arm-toolchain
      # attention le process peut durer quelques heures (~ 3h ...)
      # les binaires seront alors installés dans votre home directory
      # sous $(HOME)/sat
      # regardez le contenu du fichier README contenu dans le projet
      # pour d'autres paramètres d'installation
      
    • rendre accessible le binaire arm-none-eabi-gdb pour cela modifier votre PATH:

      dev@tuck-eeepc:~$ export PATH=$PATH:~/sat/bin/
      
  • installer des librairies nécessaires (facultatif et fonction du système ...):

    dev@tuck-eeepc:~$ sudo apt-get install libusb--dev
    dev@tuck-eeepc:~$ sudo apt-get install libusb-1.0-0
    dev@tuck-eeepc:~$ sudo apt-get install libusb-1.0-0-dev
    dev@tuck-eeepc:~$ sudo apt-get install libsgutils2-dev
    dev@tuck-eeepc:~$ sudo apt-get install scons
    
  • compiler stlink: ce projet peut être obtenu à partir d'un dépôt github:

    dev@tuck-eeepc:~$ git clone https://github.com/texane/stlink stlink
    dev@tuck-eeepc:~$ cd stlink
    # profitez-en pour le lire le fichier README ...
    dev@tuck-eeepc:~/stlink$ ./autogen.sh
    dev@tuck-eeepc:~/stlink$ ./configure
    dev@tuck-eeepc:~/stlink$ make
    
  • Récupérer le projet depuis bitbucket

    dev@tuck-eeepc:~$ hg clone https://bitbucket.org/tuck/pymite
    

Note

Il est plus pertinent d'installer summon daemon, car la version lite de Sourcery ne permet pas de compiler des binaires utilisant correctement le hardware du STM32F4. Par exemple, on ne peut lui indiquer d'utiliser la partie matérielle gérant les calculs en virgule flottante.

Note

Il est fortement recommandé d'utiliser le dépôt : https://github.com/texane/stlink. C'est un projet qui évolue vite, n'hésitez donc pas à mettre à jour stlink régulièrement

Note

En cas de problème de compilation, regarder du côté des librairies de développement. La plus part du temps, les messages d'erreurs sont explicites et indiquent clairement ce qu'il manque. (is google youre friend ?)