Merci pour le cadeau!
La première tentative de développement Linux embarqué s'est soldée par un échec.Cette fois je m'y remets, et espère que ce sera la bonne.
Sama5D3 Xpld
Contenu de la boite
Les images ci-dessous nous montrent le contenu de la boite
Présentation de la carte
Sur cette page on a une brève présentation de la carte.
http://www.atmel.com/tools/ATSAMA5D3-XPLD.aspx
Parmi les points importants on peut retenir
- SAMA5D36 Cortex-A5 Microprocessor
- 256MBytes DDR2
- 256MBytes NAND Flash
- LCD connectors
- Dual Ethernet (GMAC + EMAC) with PHY and connectors
- Three USB connectors (2 Host + 1 Device)
- 1x SD/eMMC and 1x MicroSD slots
- Expansions headers, Arduino R3 Shield compatible
- Power measurement straps
Le lien ci-dessus contient beaucoup d'informations utiles. Ceci vaut la peine d'y jeter un coup d'oeil. Parmi elles, on trouve, la datasheet, le user guide, le linux 4 sam, les logiciels, les revendeurs, les exemples et bien d'autres choses.
Environnement de travail.
Pour ceci j'utilise comme matériel :
un ordinateur portable ROG qui fonctionne sous Linux Ubuntu, la carte de développement Sama5D3 Xplained
Sur cet ordinateur à la racine de mon 'home' je vais créer l'organisation suivante
Embedded/Linux/toolchain-src
Les autres répertoires seront créer au fur et à mesure du process.
La chaîne de compilation
Cette étape est importante à cause de la différence entre les processeurs, car ce dernier est le 'cerveau' d'un ordinateur.
Par exemple : Un francophone qui veut communiquer avec un anglophone par courrier postal doit le faire en anglais, autrement l'anglophone ne comprendra pas le courrier. Ceci sous-entend aussi que le francophone a des outils pour écrire dans le langage que l'anglophone peut comprendre.
De même mon système d’exploitation Linux compilé pour Intel 64bits ne fonctionnera pas sur un ARM 32 ou 64 bits car les deux architectures sont différentes et leur jeu d’instructions aussi.
Pour corriger cela, il nous faut des outils sur notre ordinateur, qui vont nous permettre de générer un programme que notre système embarqué comprendra, saura interpréter. Dans notre cas c'est elle la chaîne de compilation croisée.
Sans elle il ne nous serait pas possible de générer du code qui serait compris par le système embarqué.
Il en existe des toutes prête pour notre ARM sur le serveur de linaro.
mais c'est aussi important de voir comment utile ça peut être, de créer sa propre chaîne.
Installation des outils.
Il s'agit ici de tous les logiciels qu'il nous faut en plus avant de continuer, c'est-à-dire de télécharger la chaîne de compilation.
Une autre façon consiste à télécharger la chaîne de compilation, de lancer sa compilation et de résoudre au fur et à mesure les dépendances ou les erreurs de logiciels manquants en les téléchargeant et en les installant.
pour ma part je choisirai pour ce moment la première étape car en fonction des caractéristiques du PC, ceci peut prendre des heures pour la génération.
| elyham@elyham-GL553VD:~/Embedded/Linux/toolchain-src$ sudo apt-get install automake |
Installation de automake
Vérification de l'installation
Suivant le même modèle on installera les autres éléments.
| elyham@elyham-GL553VD:~/Embedded/Linux/toolchain-src$ sudo apt-get install automake autoconf libtool libexpat1-dev libncurses5-dev bison flex patch curl cvs texinfo git bc build-essential subversion gawk python-dev gperf unzip pkg-config help2man wget |
Installation des outils
La chaîne de compilation utilisera la librairie C "uClibc"
Téléchargement de Crosstool-ng
| elyham@elyham-GL553VD:~/Embedded/Linux/toolchain-src$ wget http://crosstool-ng.org/download/crosstool-ng/crosstool-ng-1.23.0.tar.bz2 |
Crosstol-ng 1.23.0
Download complete
Installation de Crosstool-ng
On peut vérifier le contenu du répertoire avec la commande 'ls'.
Vérification
Une fois l'archive téléchargée, on peut l'extraire avec la commande suivante
| elyham@elyham-GL553VD:~/Embedded/Linux/toolchain-src$ tar xf crosstool-ng-1.23.0.tar.bz2 |
Décompression de l'archive
En se déplaçant dans le répertoire on peut vérifier son contenu.
Présentation de Crosstool-ng
Le répertoire 'docs' contient ce dont on a besoin pour comprendre comment configurer et installer l'outil Crosstool-ng.
| elyham@elyham-GL553VD:~/Embedded/Linux/toolchain-src/crosstool-ng-1.23.0$ ls docs/manual/ |
| elyham@elyham-GL553VD:~/Embedded/Linux/toolchain-src/crosstool-ng-1.23.0$ gedit docs/manual/2_Installation.md & |
Crosstool docs
Choix d'installation par défaut
Choix d'installation spécifique
Je choisi celle qui me permettra de spécifier le préfixe, choix d’installation spécifique. Pour ce faire voici le préfixe que je choisi :
/home/elyham/Embedded/Linux/Crosstool
Bien sur le répertoire Crosstool devrait exister au moment de l’exécution de la commande de génération de l'outil.
| elyham@elyham-GL553VD:~/Embedded/Linux/toolchain-src/crosstool-ng-1.23.0$ ./configure --prefix=/home/elyham/Embedded/Linux/Crosstool |
Début de l’exécution de la commande "configure"
Fin de l’exécution de la commande "configure"
Exécution a présent de la commande 'make' puis 'make install'
| elyham@elyham-GL553VD:~/Embedded/Linux/toolchain-src/crosstool-ng-1.23.0$ make |
Début de l’exécution de la commande "make"
Fin de l’exécution de la commande "make"
| elyham@elyham-GL553VD:~/Embedded/Linux/toolchain-src/crosstool-ng-1.23.0$ make install |
Exécution de la commande "make install"
Il ne reste plus qu'à mettre à jour le PATH afin de pouvoir utiliser notre nouvel outil pour générer la chaîne de compilation croisée pour notre carte.
Il peut être prudent d’avoir une sauvegarde de la valeur actuelle de PATH.
Avec la commande suivante vous pouvez afficher PATH dans la console, ensuite copier et sauvegarder dans un fichier
| elyham@elyham-GL553VD:~/Embedded/Linux/toolchain-src/crosstool-ng-1.23.0$ echo $PATH |
A ce niveau, l’exécution de la commande "ct-ng help" ne fonctionnera pas, et retournera le message 'ct-ng: command not found'.
"echo" et "ct-ng" cmd
Ce qui est normal. Mettons à présent à jour la variable d’environnement PATH
| elyham@elyham-GL553VD:~/Embedded/Linux/toolchain-src/crosstool-ng-1.23.0$ export PATH="${PATH}:/home/elyham/Embedded/Linux/Crosstool/bin" |
Mise à jour de PATH
En exécutant de nouveau la commande 'echo $PATH', on remarque une différence dans le résultat.
Et comme on peut le voir sur limage ci-dessus l'execution de la commande "ct-ng help" retourne un resultat different du precedent.
Ceci conclut la première parti de cette série.
La partie 2 consistera a configurer ct-ng pour générer la chaîne de compilation croisée.
Toutes mes excuses pour les fautes car je n'utilise pas un clavier AZERTY pour le moment.
Merci pour votre compréhension.
























Aucun commentaire:
Enregistrer un commentaire