
Cœur Arduino pour Raspberry Pi Pico, pour toutes les cartes RP2040 et RP2350
Cœur Arduino pour Raspberry Pi Pico, pour toutes les cartes RP2040 et RP2350
Il s'agit d'un port d'Arduino sur les RP2040 (processeur Raspberry Pi Pico) et RP2350 (processeur Raspberry Pi Pico 2). Il utilise le SDK Raspberry Pi Pico brut et une chaîne d'outils personnalisée GCC 14.3/Newlib 4.5 et prend en charge les cœurs ARM et RISC-V.
Voir https://arduino-pico.readthedocs.io/en/latest/ ainsi que les exemples pour des informations d'utilisation plus détaillées.
Lisez le Guide de contribution pour plus d'informations sur la soumission de demandes de tirage (pull requests) et le portage de bibliothèques ou d'esquisses vers ce cœur.
Les machines à états PIO du RP2040 sont utilisées pour générer sans gigue :
N'utilisez pas la version Windows Store de l'application Arduino car elle a des problèmes pour détecter les cartes Pico connectées. Utilisez le téléchargement "Windows ZIP" ou l'exécutable "Windows" standard directement depuis https://arduino.cc et autorisez l'installation des pilotes de périphériques qu'il suggère. Sinon, la carte Pico risque de ne pas être détectée. De plus, si vous essayez la version 2.0 bêta d'Arduino, veuillez d'abord installer la version 1.8 publiée pour vous assurer que les pilotes nécessaires sont présents. (Voir #20 pour plus de détails.)
Installer Arduino via flatpak (souvent utilisé par les "App Stores" dans diverses distributions Linux) signifie qu'il aura un accès restreint à l'hôte. Cela peut entraîner l'échec des téléversements avec des messages d'erreur tels que :
Scanning for RP2040 devices
...
No drive to deploy.
Si cela se produit, vous devrez soit installer Arduino d'une autre manière, soit remplacer la fonction de bac à sable flatpak en utilisant la commande suivante, puis redémarrer Arduino.
flatpak override --user --filesystem=host:ro cc.arduino.IDE2
Ouvrez l'IDE Arduino et allez dans Fichier -> Préférences.
Dans la boîte de dialogue qui apparaît, entrez l'URL suivante dans le champ "URL supplémentaires du gestionnaire de cartes" :
https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json

Appuyez sur OK pour fermer la boîte de dialogue.
Allez dans Outils -> Cartes -> Gestionnaire de cartes dans l'IDE
Tapez "pico" dans la zone de recherche et sélectionnez "Ajouter" :

Utilisateurs Windows : Avant d'installer via git sur Windows, veuillez lire et suivre les instructions de
ce lien.
Si les chemins longs Win32 ne sont pas activés et que git n'est pas configuré pour les utiliser, il peut y avoir
des erreurs lors de la tentative de clonage des sous-modules.
Pour installer via GIT (pour les versions les plus récentes) sous Linux ou Mac :
mkdir -p ~/Arduino/hardware/pico
git clone https://github.com/earlephilhower/arduino-pico.git ~/Arduino/hardware/pico/rp2040
cd ~/Arduino/hardware/pico/rp2040
git submodule update --init --recursive
cd tools
python3 ./get.py
Pour Windows, vous devez avoir Python déjà installé et cloner git dans un chemin différent :
mkdir %USERPROFILE%\Documents\Arduino\hardware\pico
git clone https://github.com/earlephilhower/arduino-pico.git %USERPROFILE%\Documents\Arduino\hardware\pico\rp2040
cd %USERPROFILE%\Documents\Arduino\hardware\pico\rp2040
git submodule update --init --recursive
cd tools
python .\get.py
Pour téléverser votre première esquisse, vous devrez maintenir le bouton BOOTSEL enfoncé tout en branchant le Pico à votre ordinateur. Appuyez ensuite sur le bouton de téléversement et l'esquisse devrait être transférée et commencer à s'exécuter.
Après le premier téléversement, cela ne devrait plus être nécessaire car le cœur arduino-pico prend en charge la réinitialisation automatique.
Sélectionnez le port série approprié affiché dans le menu Arduino Outils->Port->Port série une fois (ce paramètre reste et n'a pas besoin d'être
modifié pour les téléversements suivants). Cette sélection permet à l'outil de réinitialisation automatique d'identifier le bon périphérique à réinitialiser.
Appuyez ensuite sur le bouton de téléversement et votre esquisse devrait se téléverser et s'exécuter.
Dans certains cas, le Pico peut rencontrer un blocage matériel et son port USB ne répondra pas à la demande de réinitialisation automatique. Si cela se produit, suivez simplement la procédure initiale en maintenant le bouton BOOTSEL enfoncé tout en branchant le Pico pour entrer dans le chargeur de démarrage ROM.
Le système de fichiers flash embarqué du Pico, LittleFS, vous permet de téléverser une image de système de fichiers depuis le répertoire de l'esquisse pour que votre esquisse l'utilise. Téléchargez le plugin nécessaire depuis
Pour installer, suivez les instructions dans
Pour des informations d'utilisation détaillées, veuillez consulter la documentation du dépôt ESP8266 (ignorez les notes relatives à SPIFFS) disponible à
Si vous avez construit une Picoprobe Raspberry Pi, vous pouvez utiliser OpenOCD pour gérer vos téléversements d'esquisses et pour le débogage avec GDB.
Sous Windows, un utilisateur administrateur local devrait pouvoir accéder automatiquement au port Picoprobe, mais sous Linux, udev doit être informé du périphérique et autoriser l'accès aux utilisateurs normaux.
Pour configurer l'accès au niveau utilisateur aux Picoprobes sur Ubuntu (et autres systèmes d'exploitation utilisant udev) :
echo 'SUBSYSTEM=="usb", ATTRS{idVendor}=="2e8a", ATTRS{idProduct}=="0004", MODE="660", GROUP-"plugdev"' | sudo tee -a /etc/udev/rules.d/98-PicoProbe.rules
echo 'SUBSYSTEM=="usb", ATTRS{idVendor}=="2e8a", ATTRS{idProduct}=="000a", MODE="660", GROUP="plugdev"' | sudo tee -a /etc/udev/rules.d/98-PicoProbe.rules
echo 'SUBSYSTEM=="usb", ATTRS{idVendor}=="2e8a", ATTRS{idProduct}=="000f", MODE="660", GROUP="plugdev"' | sudo tee -a /etc/udev/rules.d/98-PicoProbe.rules
sudo udevadm control --reload
sudo udevadm trigger -w -s usb
La première ligne crée un fichier de périphérique dans /dev correspondant à l'ID vendeur et produit USB de la Picoprobe, et active les permissions globales de lecture+écriture. La deuxième ligne demande à udev de charger cette nouvelle règle. La troisième ligne demande au noyau de générer des événements "changement de périphérique" qui déclencheront notre nouvelle règle udev.
Si pour une raison quelconque le fichier de périphérique n'apparaît pas, débranchez et rebranchez manuellement la connexion USB et vérifiez à nouveau. La sortie de dmesg peut révéler des diagnostics utiles si le fichier de périphérique reste absent.
Une fois les permissions Picoprobe correctement configurées, sélectionnez la carte "Raspberry Pi Pico (Picoprobe)" dans le menu Outils et téléversez comme d'habitude.
Les outils installés incluent une version d'OpenOCD (dans le répertoire pqt-openocd) et GDB (dans le répertoire pqt-gcc). Ceux-ci peuvent être utilisés pour exécuter GDB dans une fenêtre interactive comme documenté dans les manuels de démarrage Pico de la Raspberry Pi Foundation. Utilisez la ligne de commande ./system/openocd/bin/openocd -f ./lib/rp2040/picoprobe_cmsis_dap.tcl ou ./system/openocd/bin/openocd -f ./lib/rp2350/picoprobe_cmsis_dap.tcl depuis le répertoire d'installation git.
-Earle F. Philhower, III
[email protected]