Archives de la catégorie ‘Linux’

Extraction des fonctions d’un fichier C

Linux, Shell | Publié par cpb
Oct 20 2014

Extraction des fonctions d'un fichier CJ’ai eu besoin il y a quelques jours de comparer deux versions d’un même fichier C après qu’il a subi de nombreuses modifications. La structure du fichier et le contenu ayant beaucoup bougé, les outils habituels (éditeurs, diff, meld, etc.) ne pouvaient me venir en aide. J’avais besoin d’extraire chaque fonction du programme pour qu’elle se trouve dans un fichier séparé. Cela m’a amené à écrire un petit script shell qui pourra peut-être s’avérer utile à d’autres…

Lire la suite de cette entrée »

Projet spi-tools

Embarqué, Linux, Microcontrôleur, Microprocesseur | Publié par cpb
Août 12 2014

Je viens de publier sur GitHub un petit projet nommé Spi-tools, regroupant deux utilitaires pour communiquer sous Linux en utilisant le protocole SPI. Ce projet a été écrit pour illustrer le fonctionnement d’un lien SPI entre un microprocesseur sous Linux (Raspberry Pi en l’occurrence) et un microcontrôleur (T.I. MSP430), mais il doit pouvoir s’appliquer à la plupart des besoins de configuration et communication en SPI sous Linux.
Lire la suite de cette entrée »

B+

Embarqué, Linux, Microprocesseur, Raspberry Pi | Publié par cpb
Août 06 2014

Raspberry Pi - B+Depuis une quinzaine de jours, nous pouvons disposer d’une nouvelle version du Raspberry Pi nommée « Model B+« . La plupart des critiques que l’on faisait au modèle précédent ont été prises en considération dans cette nouvelle mouture.

Lire la suite de cette entrée »

Ajouter un module noyau personnel dans Buildroot

Embarqué, Linux | Publié par cpb
Juil 22 2014

Module kernel dans BuildrootIl m’arrive fréquemment de développer de petits drivers Linux pour des clients afin de gérer des périphériques spécifiques. Ceci la plupart du temps dans un contexte de système embarqué.

Pour la construction d’un système Linux embarqué, ma préférence va généralement à l’environnement de production Buildroot. Celui-ci est plus léger (mais moins riche, il est vrai) que son principal concurrent Yocto.

La documentation de Buildroot est claire et bien fournie, toutefois il n’est pas très facile d’y trouver comment intégrer un driver Linux spécifique, développé pour une cible donnée. Voici donc un petit rappel des fichiers à ajouter ou modifier.
Lire la suite de cette entrée »

Du microcontrôleur au microprocesseur

Actualité, Embarqué, Linux, Microcontrôleur, Microprocesseur | Publié par cpb
Juil 10 2014

J’ai eu le plaisir aujourd’hui de présenter une conférence au séminaire Captronic « Du microcontrôleur au microprocesseur – Quelle architecture pour quel projet ? » à la C.C.I Nord Isère de Villefontaine.

Le contenu de ma présentation est disponible ici. J’avais déjà abordé ce thème en novembre dernier à Lille, mais j’ai pu enrichir la présentation avec divers approfondissements sur Linux embarqué, et quelques démonstrations de fonctionnement.

En outre, nous avons présenté avec mon ami François Beaulier une architecture hybride composée d’un microcontrôleur (STM32) couplé à un system-on-chip (Raspberry Pi), communiquant en utilisant une bibliothèque de notre création nommée LxMCU.

Cette bibliothèque libre, est prévue pour faire communiquer un système Linux (« Lx ») avec un microcontrôleur (« MCU ») en utilisant un lien SPI (ou I²C prochainement) et une GPIO. Elle sera bientôt mise en ligne.

PS: je n’ai malheureusement pas pu trouver le temps de rédiger d’article sur ce blog depuis bien longtemps, j’espère pouvoir y remédier dans les semaines à venir.

Utiliser un appel-système inconnu de la libC

Actualité, Linux | Publié par cpb
Avr 05 2014

Lundi dernier, Linus a publié le nouveau noyau Linux 3.14. Ce dernier contient de nombreuses nouveautés, dont un mécanisme d’ordonnancement temps réel EDF (Earliest Deadline First) qu’il me tarde d’essayer. Pour cela deux nouveaux appels-système sched_getattr() et sched_setattr() sont proposés au programmeur, mais ils ne sont pas encore supportés par les bibliothèques C actuelles. Qu’à cela ne tienne, nous allons les invoquer directement…
Lire la suite de cette entrée »

Compilation native de modules kernel sur Raspberry Pi

Embarqué, Linux, Raspberry Pi | Publié par cpb
Mar 06 2014

2014-03-06On m’a demandé à plusieurs reprises comment compiler les modules pour le noyau du Raspberry Pi que j’ai présenté dans différents articles ou ceux que je propose en illustration de mes sessions de formation. J’emploie généralement une cross-compilation, c’est à dire un compilateur spécifique installé sur un PC pour produire du code pour le processeur à cœur ARM du Raspberry Pi. J’ai déjà présenté cette solution dans plusieurs articles (par exemple celui-ci, celui-ci ou la série d’articles pour Linux Magazine).

Il existe toutefois une autre solution plus simple : la compilation native en utilisant une distribution courante pour Raspberry Pi.
Lire la suite de cette entrée »

GPIO du Raspberry Pi : mesure de fréquence

Embarqué, Linux, Microprocesseur, Raspberry Pi | Publié par cpb
Jan 22 2014

Raspberry Pi GPIO frequencyUn lecteur m’a interrogé par mail pour savoir comment mesurer la fréquence d’un signal reçu en entrée sur une broche GPIO du Raspberry Pi. Je lui ai répondu que le plus simple est de mesurer le temps s’écoulant entre deux interruptions successives déclenchées par des fronts montants et de calculer l’inverse. J’ai voulu vérifier que cela fonctionnait, et ai écrit un petit driver pour ce faire.

Lire la suite de cette entrée »

Comprendre le fonctionnement de select()

Linux | Publié par cpb
Déc 27 2013

Fonctionnement de select()

Dans un commentaire récent, Thomas m’interrogeait sur le fonctionnement de l’appel-système select() lorsqu’il est invoqué pour surveiller des entrées GPIO par l’intermédiaire du système de fichiers /sys.

C’est effectivement un sujet intéressant, un peu complexe, que je vais essayer de développer ici. Nous allons commencer par examiner comment select() fonctionne pour des fichiers spéciaux représentant des périphériques classiques puis verrons comment il se comporte lorsqu’il est invoqué pour surveiller un fichier de sysfs.
Lire la suite de cette entrée »

Optimiser le temps de boot d’un système embarqué

Embarqué, Linux, Raspberry Pi | Publié par cpb
Déc 04 2013

Couverture Open Silicium 9

J’ai le plaisir de voir mon article « Optimisation du temps de boot d’un système embarqué » faire la couverture d’Open Silicium numéro 9.

[EDIT 2017/01] L’article est dorénavant disponible au format PDF.

Les fichiers accompagnant les expérimentations de l’article sont disponibles dans cette archive ou individuellement ci-dessous.