Update du 08/10/2020 : Tous les logiciels requis pour macOS sont disponibles sur la page dédiée.
J’ai acheté une carte STM32F4-discovery pour me familiariser avec les µP ARM. Cette carte est équipée d’un STM32F407 (ARM cortex-M4) à 168MHz et dispose de plusieurs périphériques dont un AudioDAC (CIRRUS 43L22), un accéléromètre, un microphone, etc. Elle possède également son propre programmateur/débogueur STLink/V2, ce qui permet de la flasher avec un simple câble USB. Pour une description complète de la carte, consultez le site de ST
Il y’a plusieurs tutos sur le net pour l’utiliser avec Linux, mais je n’ai rien trouvé pour l’utiliser avec FreeBSD ou MacOS d’où l’objet de cet article.
Note: pour MacOS, vous devez installez XCode et les « Command Line Tools » pour pouvoir compiler l’utilitaire stlink
. Ce tuto concerne MacOS X 10.9.5 mais devrait être valable avec d’autres versions.
Installation du compilateur ARM:
Sur FreeBSD:
Trivial…
root> pkg install -y arm-none-eabi-gcc-5.3.0
Sur MacOS:
Télécharger la dernière version d’arm-gcc
ici. Décompressez l’archive dans le répertoire /usr/local
:
sudo tar -C /usr/local -xvjf gcc-arm-none-eabi-5_2-2015q4-20151219-mac.tar.bz2
Ajoutez le répertoire d’installation dans la variable $PATH :
sudo mkdir -p /etc/paths.d sudo echo "/usr/local/gcc-arm-none-eabi/bin" > /etc/paths.d/gcc-arm-none-eabi
Installation de stlink :
Le paquet stlink
fournit une série d’utilitaires qui permettent de flasher, déboguer, lire ou effacer le code dans la carte STM32.
Sur FreeBSD
Toujours via les paquets…
root> pkg install -y stlink
Seul root
peut utiliser le périphérique st-link: un utilisateur quelconque aura le message suivant:
$ st-flash write bla 0x8000000 $DATE: WARN src/stlink-usb.c: Couldn't find any ST-Link/V2 devices
Pour éviter ça, ajoutez votre utilisateur dans le groupe operator
:
root> pw user mod luc -G "`id -Gn luc` operator" root> id -Gn luc luc wheel operator dialer
Notez le VID (Vendor ID) et le PID (Product ID) de la carte STM32F4:
usbconfig | grep SGS Bus /dev/usb Device /dev/ugen3.2: ID 0483:3748 SGS Thomson Microe...
Créez le fichier /usr/local/etc/devd/stlink.conf
comme suit:
notify 0 { match "subsystem" "DEVICE"; match "type" "ATTACH"; match "cdev" "ugen[0-9]+.[0-9]+"; match "vendor" "0x0483"; match "product" "0x3748"; action "chmod 660 /dev/$cdev"; };
Débranchez la carte, redémarrez devd
:
root> service devd restart
Rebranchez la carte.
Sur MacOS
La compilation de st-link
nécessite cmake
et la libusb
. Pour cette dernière, vérifiez qu’elle est présente sur votre système:
pkg-config --list-all | grep libusb
Sinon, récupérez la dernière version sur sourceforge. Puis:
tar xvjf libusb-1.0.20.tar.bz2 cd libusb-1.0.20 ls ./configure && make sudo make install
Au tour de Cmake
:
git clone git://cmake.org/cmake.git cd cmake ./configure && make sudo make install
Enfin, la compilation et l’installation de stlink
git clone https://github.com/texane/stlink.git cd stlink cmake . && make sudo make install
Test de la carte
Vérifiez que la carte fonctionne correctement en sauvegardant la démo d’usine:
st-flash read demo-STM32F4-discovery.bin 0x8000000
La sauvegarde prend une vingtaine de secondes.
Voilà, vous avez tout ce qu’il faut pour commencer à développer pour cette carte.
A suivre…