Utilisation de la carte STM32F4-discovery avec macOS ou FreeBSD

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…

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>