Linux Embedded

Le blog des technologies libres et embarquées

HowTo

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…

Utilisation du DMA dans un driver RTDM

Cet article porte sur l’utilisation des DMA dans un driver RTDM Xenomai. Il présentera des principes généraux sans se reposer sur un matériel en particulier. Une première partie expliquera tout d’abord ce qu’est un driver RTDM, le fonctionnement des DMA puis nous verrons dans quelle mesure l’utilisation des DMA peut être pertinente pour des applications temps réel. Une deuxième partie…

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…

Prise en main de Fabric

Introduction Fabric [1] est un outil de permettant d’automatiser l’exécution de taches, sa particularité vient du fait qu’il est capable aussi bien d’exécuter des taches localement que d’exécuter sur une ou plusieurs machines distantes. Si cet outil vient plutôt du monde des serveurs, il reste un compagnon de choix pour le développement sur cartes embarquées puisqu’il requiert uniquement la présence…