Page Personnelle de Vincent Kerhoas Vincent Kerhoas - Professeur Agrégé

Développement Pour Raspberry PI


Dialogue avec la cible

REM: Pour une connexion directe PC <–> RPI, il faut utiliser un cable ethernet de type FTP (croisé)
Dans les exemples suivants, le PC à l’adresse statique 192.168.0.1.
cette adresse peut être modifiée avec $ sudo ifconfig [Nom_Eth] 192.168.0.1

Connexion

REM : la lisaison ssh doit être activée dans raspi-config

En mode graphique :

Copies

Copie PC –> RPI

Copie PC <–> RPI

filezilla:

Host : 192.168.0.2
Username : pi
Password :
Port : 22

ssh/scp sans mot de passe

RPI (via ssh)

PC


Compilation sur cible

Considérons le fichier helloworld.cpp suivant :

helloworld.cpp

Copions le sur la cible :

Côté RPI (via SSH)

Le compilateur présent sur le rpi est bien entendu de type arm :

On compile, on exécute :


Cross Compilation

Voyons maintenant comment créer l’exécutable à destination du RPI sur le PC.

Motivation:

Une évidence : le pc possède une chaine de compilation pour pentium ( ou assimilé) .

Compilateur ARM Linaro

REM : !! Volontairement je ne prends pas la dernière version du compilateur, cela peut poser des problèmes de compatibilité en fonction des bibliothèques utilisées.

Installation

REMARQUE:

il peut être utile d’ajouter le répertoire bin de linaro au PATH :

helloworld

Côté PC

Côté RPI (via SSH)

Cela ne change donc rien pour un simple hello world.

avec des bibliothèques ( ex : opencv )

ça se complique ; prenons le cas de l’utilisation de la bibliothèque opencv.
La création de l’exécutable doit se faire avec la bibliothèque opencv du RPI ( et non celle du PC ).

Côté RPI

Installation d’opencv

Côté PC : RPI File system avec sshfs

Une solution pour utiliser la bibliothèque opencv du RPI est de la copier sur le PC afin de créer un file system minimal.
Cela suppose de gérer les dépendances et de mettre à jour certains raccourcis pour avoir des chemins relatifs.
Une autre solution, plus élégante, consiste à monter le file system du RPI via ssh grâce à sshfs.

Installation

Utilisation

Il s’agit bien du file system du RPI ; ce dernier est monté dans le répertoire rpi_mnt du PC.

Compilation


test_opencv


Jetons un oeil au Makefile:

Remarquons :

C’est parti:

Test sur Cible


Debug avec gdbserver

Ce n’est pas tout de compiler, encore faut-il tester, et tant qu’à faire avec des outils allant au-delà du printf.

Avec tdb

Côté RPI

Côté PC

Dans le répertoire du projet :

Avec Eclipse (Luna)

Côté RPI

Côté PC

Dans Eclipse: