par , 20/04/2023 � 20h20 (10335 Affichages)
Pour programmer la carte Raspberry Pi Pico en langage C/C++, la fondation Raspberry Pi propose un kit de d�veloppement : le Raspberry Pi Pico C/C++ SDK.
Si vous voulez tester ce kit sous Linux, et sans trop d'efforts, ce tutoriel est peut-�tre fait pour vous...
La Raspberry Pi Pico que j'utilise est mont�e sur une petite plaque de c�blage, avec un bouton-poussoir entre les broches (28)GND et (30)RUN. Ce bouton-poussoir sert � faire un Reset de la carte (
sic), et �vite ainsi les nombreuses connexions/d�connexions du c�ble USB pendant la mise au point de vos programmes.
Le kit est install� sur un Linux Ubuntu (et m�me test� avec succ�s sur une machine virtuelle Lubuntu mont�e avec VirtualBox).
1) Installation du kit et des outils
Pour installer la derni�re version du kit sur votre dossier personnel ~/pico-sdk, il faut cloner le d�p�t sur le Github officiel de la fondation :
1 2
| $ cd ~
$ git clone https://github.com/raspberrypi/pico-sdk.git |
Et si la commande git ne r�pond pas, c'est qu'il faut d'abord installer le gestionnaire : sudo apt-get install git.
Par anticipation, il faut compl�ter le kit avec des sous-modules. Pour les installer :
1 2
| $ cd ~/pico-sdk
$ git submodule update --init |
il faut maintenant installer le compilateur et l'utilitaire CMake (attention : + de 2 Go de fichiers) :
$ sudo apt install cmake gcc-arm-none-eabi libnewlib-arm-none-eabi libstdc++-arm-none-eabi-newlib
Il faut ensuite que le syst�me connaisse le chemin (path) vers le kit. Vous pouvez par exemple �diter le fichier ~/.bashrc, avec l'�diteur nano :
Et rajouter � la fin du fichier la ligne :
export PICO_SDK_PATH=~/pico-sdk
Sauvegardez le fichier, et red�marrez votre session Linux pour prendre en compte les modifications. Le kit est maintenant install�...
2) Un premier projet : le blink
Pour un premier programme, vous allez faire clignoter la LED int�gr�e en surface de la carte Raspberry Pi Pico (comme c'est original !!).
Commencez par cr�er le dossier du projet, par exemple :
1 2 3
| $ cd ~
$ mkdir essai-blink-pico
$ cd essai-blink-pico |
Avec votre �diteur de sources pr�f�r�s, cr�ez le fichier source blink.c en langage C (d'apr�s pico-examples/blink) :
1 2 3 4 5 6 7 8 9 10 11 12 13
| #include "pico/stdlib.h"
int main() {
const uint LED_PIN = PICO_DEFAULT_LED_PIN;
gpio_init(LED_PIN);
gpio_set_dir(LED_PIN, GPIO_OUT);
while (true) {
gpio_put(LED_PIN, 1);
sleep_ms(250);
gpio_put(LED_PIN, 0);
sleep_ms(250);
}
} |
Les �tapes de construction (build) du projet qui suivent sont plus d�licates � comprendre. Vous trouverez les d�tails au paragraphe Quick-start your own project.
Le script de compilation est produit par l'utilitaire CMake. Pour comprendre CMake, je vous recommande l'excellent tutoriel : Utiliser CMake pour compiler un projet par Alexandre Laurent (aka LittleWhite).
Ainsi, le dossier du projet complet ~/essai-blink-pico comportera les fichiers et dossier suivants :
~/essai-blink-pico
|__ blink.c
|__ build
|__ CMakeLists.txt
|__ pico_sdk_import.cmake
- Le fichier pico_sdk_import.cmake est une copie de celui pr�sent dans le sous-dossier d'installation du kit ~/pico-sdk/external. Voir aussi pico-sdk/external/pico_sdk_import.cmake.
- Le fichier g�n�rique CMakeLists.txt qui produira le script de compilation aura le contenu suivant :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| cmake_minimum_required(VERSION 3.13)
# initialize the SDK based on PICO_SDK_PATH
# note: this must happen before project()
include(pico_sdk_import.cmake)
project(blink)
# initialize the Raspberry Pi Pico SDK
pico_sdk_init()
# rest of your project
add_executable(blink
blink.c
)
# Add pico_stdlib library which aggregates commonly used features
target_link_libraries(blink pico_stdlib)
# create map/bin/hex/uf2 file in addition to ELF.
pico_add_extra_outputs(blink) |
- Il vous reste � cr�er un dossier build o� seront stock�s les fichiers de construction du projet.
3) G�n�ration du projet
Placez-vous dans le dossier ~/essai-blink-pico/build et lancez CMake :
1 2
| $ cd ~/essai-blink-pico/build
$ cmake .. |
Si tout se passe bien, le compte-rendu se termine par des messages triomphants, du genre :
...
-- Configuring done
-- Generating done
-- Build files have been written to: /home/fleb/essai-blink-pico/build
Il reste � compiler et produire les fichiers binaires avec l'utilitaire make :
4) Flasher le fichier binaire uf2 dans la carte
Le fichier avec l'extension uf2 qui nous int�resse, � flasher dans la carte, est dans le dossier ~/essai-blink-pico/build : blink.uf2.
Quand la carte est connect�e par le c�ble USB, ex�cutez la s�quence suivante :
- appuyez sur le bouton BOOTSEL de la carte ;
- appuyez sur le bouton Reset (plac� entre les broches (28)GND et (30)RUN, voir plus haut) ;
- rel�chez le bouton Reset ;
- rel�chez le bouton BOOTSEL.
La carte passe alors en mode USB et se comporte comme une cl� USB. Un dossier mont� devrait appara�tre comme ci-dessous :
Il reste � flasher le binaire par glisser-d�poser du fichier blink.uf2 dans ce dossier.
Un dernier Reset, et le miracle du blink se produit...
5) Sitographie
Et sur Developpez.com :
En compl�ment :