Linux Embedded

Le blog des technologies libres et embarquées

Author Archive for Pierre Ficheux

Introduction aux FPGA

Le FPGA (Field Programmable Gate Array) est désormais très utilisé dans les solutions embarquées. L’approche dite “co-design”  permet, entre autres, de limiter la charge du calculateur. Elle permet également d’avoir une solution adaptable car programmable suivant l’application, tant du côté du CPU (grâce au système d’exploitation) que du FPGA. Certains fabricants fournissent désormais des cartes intégrant directement un FPGA ;…

Sortie de la nouvelle Raspberry Pi B+

La fondation Raspberry Pi a présenté cet été le nouveau modèle de sa célèbre carte à base de processeur ARM11. L’architecture même de la carte est assez peu modifiée (même CPU, mêmes périphériques et même prix !). Les principales évolutions concernent l’aspect physique et matériel de la carte : Deux connecteur USB au lieu d’un seul Augmentation du nombre de GPIO disponibles…

Customisation d’AOSP

Introduction La distribution AOSP fournit une version standard d’Android pour un certain nombre de plate-formes (NEXUS, émulateur, Pandaboard, …). De même, de nombreux « forks » d’AOSP sont proposés par les fabricants de matériel afin de fournir un BSP Android adapté. Il est fréquent d’avoir à adapter ce BSP aux contraintes du produit et cette tâche peut aller de la simple « customisation »…

Introduction à la HAL Android

Introduction Lors d’un précédent article, nous avons évoqué l’utilisation systématique de JNI lors de l’accès aux « couches basses » d’Android depuis une application Java. Le framework Android étant majoritairement écrit en Java, ce principe est également utilisé pour les services système (Wi-Fi, Bluethooth, téléphonie, …) et l’on parle alors de HAL pour Hardware Abstraction Layer. La HAL est donc une couche…

Modification du noyau Linux AOSP

Introduction Dans les précédents articles, nous avons vu comment produire une image AOSP utilisable dans l’émulateur Android. Nous avons également décrit les principales fonctions de l’outil ADB (Android Debug Bridge) indispensable au développement Android « système ». Dans cet article nous allons décrire la procédure de mise à jour du noyau Linux utilisé par l’émulateur Android. En effet, le noyau utilisé jusqu’à…

Compilation de code (legacy) C/C++ pour Android

Introduction La majorité des applications Android utilisent le langage de programmation Java. Ce langage très répandu a été créé en 1982 par James Gosling dans les laboratoires de SUN Microsystems (désormais ORACLE depuis 2009). Java a de nombreux avantages, en particulier sa large diffusion, sa syntaxe relativement simple et le fait qu’il utilise nativement une approche « objet ». De nombreux projets…

Utiliser ADB

Introduction Dans le précédent article, nous avons décrit la mise en place d’un environnement de compilation afin de produire une image AOSP (Android Open Source Project) utilisable dans l’émulateur Android. Après un premier test d’utilisation, il est temps désormais de présenter ADB (Android Debug Bridge), un outil indispensable au développement Android en général, et système en particulier.

Utilisation de JNI sous Android

Introduction Dans le précédent article nous avons créé un module minimal « Hello World » afin de tester le nouveau noyau compilé pour Android/AOSP. Cette exemple n’est cependant pas réellement conforme à la réalité puisque dans le cas général on utilise plus souvent un pilote (ou driver) qu’un module. Les caractéristiques d’un pilote sont assez simples à décrire : Un pilote est avant…

Introduction à AOSP

Introduction Le modèle de développement d’Android est très éloigné de celui d’un projet open source classique car Google développe le projet « behind the doors ». Il n’y a quasiment aucun dialogue avec les développeurs officiels contrairement à d’autres projets majeurs comme le noyau Linux, Yocto ou Buildroot. Il y a donc très peu de chances d’influencer réellement les choix techniques de Google par des…

RTEMS sur Raspberry Pi

Nous avions évoqué la célèbre carte Raspberry Pi (RPi) lors d’un article en janvier 2013 concernant Linux et PREEMPT-RT. La RPi est effectivement prévue pour fonctionner sous Linux mais quelques contributeurs utilisent cette carte dans un autre environnement. Nous pouvons citer la page Bare-metal Raspberry Pi Programming sur http://en.wikibooks.org/wiki/Bare-metal_Raspberry_Pi_Programming. L’approche bare metal indique que l’on utilise le matériel sans système…