[ACTU] Mais pourquoi la Freebox reste-t-elle à l’heure d’hiver ?

Actualité, Embarqué, Linux | Publié par cpb
Mar 27 2012

Freebox a l'heure d'hiverComme beaucoup d’entre vous le savent déjà, la Freebox v.6 a raté son passage à l’heure d’été. Ce matin, alors que mon PC, ma montre et mon téléphone affichent 09:44, la Freebox posée à côté de mon bureau affiche encore 08:44. Au-delà du fait divers amusant, source de plaisanteries et de sarcasmes sur Twitter, je trouve cette mésaventure intéressante, car elle trouve son origine dans des logiciels que connaissent bien les amateurs de Linux embarqué !

Lire la suite de cette entrée »

Envoi d’un signal vers un processus depuis le kernel

Embarqué, Linux, Temps-réel | Publié par cpb
Mar 21 2012

Nous avons examiné récemment le temps de réveil d’une tâche endormie dans un appel-système. Je voulais compléter cette expérience en m’intéressant au passage d’un signal depuis le noyau vers l’espace utilisateur. Nous allons plus particulièrement mesurer le temps d’activation d’un processus lorsqu’un signal temps réel lui est envoyé depuis le noyau.

Lire la suite de cette entrée »

Mesurons le surcoût d’un appel système

Embarqué, Linux, Temps-réel | Publié par cpb
Mar 19 2012

Une application classique a souvent besoin de réaliser des appels système pour accéder à des ressources matérielles ou logicielles contrôlées par le noyau. Que l’on veuille écrire dans un fichier, communiquer sur une socket, accéder à un port d’entrée-sortie, obtenir un supplément de mémoire ou même simplement lire notre numéro de processus (pid), il faudra réaliser un appel système. Mais combien de temps durera-t-il ?

Lire la suite de cette entrée »

Réveil d’une tâche utilisateur depuis un timer kernel

Linux, Microprocesseur, Temps-réel | Publié par cpb
Mar 12 2012

J’ai été plusieurs fois confronté à la nécessité de déterminer le temps de réveil d’une tâche utilisateur. La plupart du temps il s’agit de borner le temps de réaction face à un événement extérieur qui se traduit par une interruption (nous en verrons un exemple dans un prochain article). Récemment toutefois, le problème qui se posait était de réveiller un processus lorsque le contenu d’une adresse mémoire (projetée par une carte d’acquisition) était modifié. Aucune interruption n’érait déclenchée à cette occasion, aussi la seule solution était de venir scruter en polling cette adresse régulièrement dans un timer du noyau. Une fois la modification détectée, il fallait acquiter l’événement ce qui était réalisé dans le kernel, sans présenter de caractère d’urgence. Après l’acquitement il faillait toutefois entamer un traitement dans l’espace utilisateur le plus rapidement possible. J’avais donc besoin de mesurer le temps de réveil d’une tâche depuis un timer du noyau.

Lire la suite de cette entrée »

[LECTURE] Clean Code

Linux | Publié par cpb
Mar 04 2012

Clean Code: A Handbook of Agile CraftsmanshipClean Code: A Handbook of Agile Software Craftsmanship

Robert C. Martin

Lire la suite de cette entrée »

Options de compilation pour Linux industriel (2)

Linux | Publié par cpb
Fév 26 2012

Dans le précédent article, nous avons examiné les options du menu General Setup à prendre particulièrement en considération lors de la préparation d’un noyau Linux pour un système embarqué ou temps-réel.

Examinons à présent d’autres options proposées dans un menu dont le nom varie légèrement suivant les architectures :

Lire la suite de cette entrée »

Options de compilation pour Linux industriel (1)

Embarqué, Formations, Linux, Temps-réel | Publié par cpb
Fév 19 2012

make menuconfig

J’ai remarqué une question récurrente, tant durant mes sessions de formation sur Linux industriel qu’au cours de prestations d’ingénierie concernant des systèmes temps-réel ou embarqués : « Quelles sont les options du noyau qui influent sur [un sujet donné] ? » Le sujet en question a généralement trait aux mécanismes d’ordonnancement, à la vitesse de boot, à la taille du code produit, etc.

Lire la suite de cette entrée »

Mise au point de bibliothèque dynamique (3/3)

Linux | Publié par cpb
Fév 12 2012

(english translation here)

Nous avons commencé la mise au point d’une bibliothèque dynamique sous Linux dans les deux articles précédents : dans le premier nous avons vu comment compiler la bibliothèque et gérer les numéros de versions à l’aide de liens symboliques, dans le second nous avons effectué du suivi d’appel et du débogage pas-à-pas. Nous allons désormais nous intéresser à la vérification de la couverture de la bibliothèque.

Lire la suite de cette entrée »

Development of a dynamic library (3/3)

Linux | Publié par cpb
Fév 12 2012

(version originale en français ici)

In the two previous posts, we started the development of a dynamic library on Linux: the first one saw us building the library and managing version numbers using symbolic links, in the second one we traced library calls and did step-by-step debugging. Now we are interested in checking the coverage of the library.

Lire la suite de cette entrée »

[LECTURE] Version Control by Example

Livres | Publié par cpb
Fév 08 2012

Version Control by Example

Eric Sink.

Lire la suite de cette entrée »