0% ont trouvé ce document utile (0 vote)
7 vues11 pages

Chapitre 2 Embedded Linux

Le document traite des chaînes d'outils de compilation croisée utilisées pour le développement de systèmes embarqués, en expliquant leur nécessité par rapport aux chaînes d'outils natives. Il présente également les composants principaux des toolchains, tels que Binutils, GCC et les bibliothèques C comme glibc et uClibc-ng, en soulignant leurs caractéristiques et leur utilisation. Enfin, il aborde les différentes configurations de construction pour les environnements de développement.

Transféré par

eyamarime
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
7 vues11 pages

Chapitre 2 Embedded Linux

Le document traite des chaînes d'outils de compilation croisée utilisées pour le développement de systèmes embarqués, en expliquant leur nécessité par rapport aux chaînes d'outils natives. Il présente également les composants principaux des toolchains, tels que Binutils, GCC et les bibliothèques C comme glibc et uClibc-ng, en soulignant leurs caractéristiques et leur utilisation. Enfin, il aborde les différentes configurations de construction pour les environnements de développement.

Transféré par

eyamarime
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Chapitre 1

Toolchain de compilation croisée

20/10/2025 Faten BELLAKHDHAR 1


Chapitre 1

• Les outils de développement classiques disponibles sur une station de


travail GNU/Linux sont une chaîne d'outils native.
• Cette chaîne d'outils s'exécute sur votre station de travail et génère du
code pour votre station, généralement x86.

• Pour le développement de systèmes embarqués, il est généralement


impossible ou peu intéressant d'utiliser une chaîne d'outils native.
• La cible est trop limitée en termes de stockage et/ou de mémoire.
• La cible est très lente par rapport à votre station de travail.
• Vous ne souhaitez peut-être pas installer tous les outils de
développement sur votre cible.

Par conséquent, les chaînes d'outils de compilation croisée sont


généralement utilisées. Elles s'exécutent sur votre station de travail mais
génèrent du code pour votre cible.
20/10/2025 Faten BELLAKHDHAR 2
20/10/2025 Faten BELLAKHDHAR 3
Chapitre 1

Construction de toolchains

Build Host Target Build Host Target

Native Build Cross Build

Build Host Target Build Host Target

Cross Native Build Canadian Cross Build


20/10/2025 Faten BELLAKHDHAR 4
Chapitre 1

Composants de gcc toolchains

20/10/2025 Faten BELLAKHDHAR 5


Chapitre 1

Binutils

Binutils est un ensemble d'outils permettant de générer et de manipuler des


fichiers binaires (généralement au format ELF) pour une architecture CPU
donnée. Les composants principaux de Binutils incluent :
• as, ld, le programme de liaison? ar et ranlib
• objdump, readelf, size, nm, strings,
• objcopy, strip,

20/10/2025 Faten BELLAKHDHAR 6


Chapitre 1
Kernel headers (1)

20/10/2025 Faten BELLAKHDHAR 7


Chapitre 1
C/C++ compiler

• GCC : GNU Compiler Collection, le célèbre compilateur de logiciel libre

• Peut compiler du C, du C++, de l'Ada, du Fortran, du Java, de l'Objective-C,


de l'Objective-C++, du Go, etc.
• Peut générer du code pour un grand nombre d'architectures CPU, y
compris x86, ARM, RISC-V et bien d'autres.

20/10/2025 Faten BELLAKHDHAR 8


Chapitre 1
C library

20/10/2025 Faten BELLAKHDHAR 9


Chapitre 1
glibc

• Bibliothèque C du projet GNU

• Conçue pour la performance, la conformité aux normes et la portabilité

• Présente sur tous les systèmes hôtes GNU/Linux

• Bien sûr, activement entretenue

• Par défaut, assez volumineuse pour les petits systèmes embarqués. Sur
armv7hf, version 2.31 : libc : 1,5 Mo, libm : 432 Ko

20/10/2025 Faten BELLAKHDHAR 10


Chapitre 1
uClibc-ng

• Une continuation du vieux projet uClibc, sous licence LGPL Bibliothèque C


• légère pour les petits systèmes embarqués
 Grande configurabilité :
 Prend en charge la plupart des architectures embarquées,
 Aucune compatibilité binaire garantie.
 Certaines fonctionnalités peuvent être mises en œuvre plus tard que
dans glibc
 Accent mis sur la taille (RAM et stockage) plutôt que sur les
performances
 Taille sur armv7hf, version 1.0.34 : libc : 712 Ko, source

20/10/2025 Faten BELLAKHDHAR 11

Vous aimerez peut-être aussi