Projet

Général

Profil

Wiki » Historique » Révision 29

Révision 28 (Patrice Nadeau, 2014-07-24 21:24) → Révision 29/52 (Patrice Nadeau, 2014-07-30 20:33)

%{font-size:18pt}Utilisation d'un BeagleBone Black% 

 Guide de démarrage pour la programmation sur la plateforme BeagleBone Black. 

 --- 

 {{toc}} 

 Dans ce document, l'appellation BeagleBone Black sera remplacé par BBB. 

 h1. Introduction 

 Le BBB est un ordinateur complet avec licence libre utilisant GN/Linux comme système d'exploitation.  
 Toutes les spécifications sont disponibles sur le site http://beagleboard.org/. 

 Ceci en fait un outil de développement idéal. 

 Ce document explique comment utiliser un poste sous openSUSE pour faire du développement avec la langage C. 

 J'ai choisi cette méthode pour les raisons suivantes :  
 * La programmation des µc AVR d'Atmel se fait de cette manière 
 * Je connais déjà le C 
 * Linux est écrit en C 

 h1. Matériel requis 

 * BeagleBone Black (Digikey #"BB-BBLK-000-REVC-ND":http://www.digikey.ca/product-detail/en/BB-BBLK-000/BB-BBLK-000-REVC-ND/4842211) 

 h2. Mode « slave » 

 * Câble USB A - Mini-B (fournis avec le BBB) 

 h2. Mode « stand-alone » 

 Dans ce mode le BBB se comporte comme un ordinateur complet. 

 * Bloc d’alimentation 5V, 1A, 2.1mm, centre positif (DigiKey #"T139-P5P-ND":http://www.digikey.ca/product-search/en?vendor=0&keywords=T1139-P5P-ND) 
 * Câble Ethernet 
 > Facultatif 
 > * Concentrateur USB 
 > * Clavier/souris 
 > * Adaptateur vidéo 

 h1. Branchement  

 Peux importe la méthode, le BBB seras disponible à l'adresse *192.168.7.2* avec l'utilisateur *root*. 

 h2. Mode « slave » 

 Brancher le BBB à l'ordinateur en utilisant le port Micro-B. 
 Un nouveau média apparaitra ainsi qu'une nouvelle carte réseau. 

 > Optionnellement 
 > A partir du nouveau media, copier localement le fichier *boot/Drivers/Linux/FTDI/mkudevrule.sh*. 
 > A partir d'une session terminal, exécuter le script 
 ><pre><code class="bash"> 
 chmod +x mkudevrule.sh 
 sudo ./mkudevrule.sh 
 </code></pre> 

 h2. Mode « master » 

 Au minimum, brancher les câbles d'alimentation Ethernet. 
 Un clavier, souris et écran peuvent aussi être branchés. 

 h1. Logiciel requis 

 h2. Développement local 

 Comme la compilation seras longue sur un processeur de cette vitesse et le outils dépendant de la version installé sur le BBB, je ne documenterai pas cette section. 

 

 h2. Développement à partir d'un autre poste 

 Comme pour les AVR d'ATMEL, l’écriture du code source et sa compilation peut être faite à partir d'un autre poste. 

 Télécharger les fichier suivants 
 * Compilateur (gcc)  
 ** http://software.opensuse.org/package/cross-arm-linux-gnueabi-binutils 
 ** http://software.opensuse.org/package/cross-arm-linux-gnueabi-gcc 
 * Librairies 
 ** http://software.opensuse.org/package/cross-arm-linux-gnueabi-kernel-headers 
 ** http://software.opensuse.org/package/cross-arm-linux-gnueabi-glibc 
 ** http://software.opensuse.org/package/cross-arm-linux-gnueabi-libffi 

 https://github.com/VegetableAvenger/BBBIOlib 

 En tant que *root* : 
 <pre><code class="bash"> 
 # Installer les packages 
 rpm -Uhv cross-arm-linux-gnueabi*.rpm 
 # Créer le lien vers les exécutable 
 ln -s /opt/cross/bin /usr/local/arm 
 </code></pre> 

 Créer le fichier */etc/profile.d/arm.sh* 
 <pre><code class="bash"> 
 #!/bin/bash 
 # Export path for ARM tollchain 
 export PATH=/usr/local/arm:${PATH} 
 export MANPATH=/opt/cross/share/man:${MANPATH} 
 </code></pre> 

 

 h1. Utilisation 

 En tant qu'utilisateur, se relogguer OU dans la session _courante_ 
 <pre><code class="bash"> 
 source /etc/profile.d/arm.sh 
 </code></pre> 

 h2. Création du code 

 Créer un fichier *test.c* 
 <pre><code class="c"> 
 #include <stdio.h> 
 void (main)(void) 
 { 
     printf("Allo la terre !\n"); 
     int x; 
 } 
 </code></pre> 

 h2. Compilation  

 Compiler avec  
 <pre><code class="bash"> 
 arm-linux-gnueabi-gcc test.c -o test 
 </code></pre> 

 h2. Téléchargement 

 Copier l’exécutable dans le BBB 

 <pre><code class="bash"> 
 scp test root@192.168.7.2: 
 </code></pre> 

 Ouvrir une session dans et exécuter le programme directement dans le BBB 

 <pre><code class="bash"> 
 ssh root@192.168.7.2 
 ./test 
 </code></pre>