Archives de la catégorie ‘Temps-réel’

Essai anticipé du temps réel de Linux 6.12

Actualité, Buildroot, Kernel, Linux, Temps-réel | Publié par cpb
Oct 07 2024

La future branche 6.12 du noyau Linux, qui sera publiée à la fin du mois de novembre, contiendra plusieurs nouveautés par rapport au noyau actuel. La plus commentée depuis deux semaines concerne l’intégration complète du patch PREEMPT_RT dans le noyau. Annoncée lors du Maintainer Summit du 17 septembre dernier, cette intégration se manifeste par un patch sur la fonction printk() qui représentait le dernier point de blocage.

Il n’y aura donc plus besoin de patch pour bénéficier de la préemptibilité totale du noyau sur les trois architectures principales pour le temps réel : x86, riscv et aarch64 (ARM 64 bits). Il faudra néanmoins toujours appliquer un patch (du moins pendant quelques temps) pour l’architecture ARM 32 bits par exemple.

Comment tester cette nouveauté ? C’est très simple : je vous propose de faire un build rapide pour une machine virtuelle Risc-V 64 bits en utilisant Buildroot et la version release candidate 6.12-rc2 du kernel, disponible depuis quelques heures.

Lire la suite de cette entrée »

Solutions temps réel sous Linux (3ème édition)

Kernel, Linux, Livres, Raspberry Pi, Temps-réel | Publié par cpb
Jan 13 2019

Nouvelle édition de mon livre « Solutions temps réel sous Linux » aux éditions Eyrolles.

Pas d’énormes nouveautés, il s’agit d’une surtout d’une mise à jour des exemples avec les versions actuelles de Linux, de PREEMPT_RT et de Xenomai (3). La plupart des exemples utilisant des entrées-sorties physiques (GPIO par exemple) sont présentés sur Raspberry Pi 3.

Lien Amazon : https://amzn.to/2RSugA5


[Kernel] Interruptions et tasklets

Kernel, Linux, Raspberry Pi, Temps-réel | Publié par cpb
Juin 06 2017

[Kernel Interruptions et tasklets

Il existe plusieurs mécanismes proposés par le noyau Linux pour programmer un traitement à réaliser lorsqu’un périphérique externe déclenche une interruption pour nous notifier de l’occurrence d’un événement. Gestionnaire monolithique, tasklet, workqueue, threaded interrupt, chaque solution a des avantages et des inconvénients, qu’il est intéressant de connaître pour optimiser l’efficacité de nos traitements.

Lire la suite de cette entrée »

Xenomai sur Raspberry Pi 3 : bon espoir mais bilan mitigé

Embarqué, Linux, Microprocesseur, Raspberry Pi, Temps-réel | Publié par cpb
Mar 20 2017

Depuis plusieurs mois, on m’interroge régulièrement sur le support de Xenomai sur Raspberry Pi 3 tant durant mes sessions de formations sur Xenomai que dans des messages par mail. J’avais l’habitude de répondre que Xenomai ne fonctionnait pas encore sur ce modèle de Raspberry Pi.

Une remarque récente de Syrine dans les commentaires de l’article « Xenomai 3 sur Raspberry Pi 2 » a attiré mon attention sur un site japonais qui utilise les mêmes commandes que celles présentées dans cet article et fait fonctionner l’ensemble sur un Raspberry Pi 3. J’ai voulu tenter également cette installation. Le résultat est un peu mitigé : Xenomai fonctionne parfaitement avec une bonne stabilité, sauf en ce qui concerne la gestion des interruptions des GPIO qui n’est pas supportée encore. Si vous êtes néanmoins tentés par l’expérience, voici comment procéder simplement.

Lire la suite de cette entrée »

Xenomai 3 sur Raspberry Pi 2

Embarqué, Linux, Raspberry Pi, Temps-réel | Publié par cpb
Mai 22 2016

Xenomai 3 on Raspberry Pi 2Depuis plusieurs années l’installation de Xenomai sur un Raspberry Pi 1 se fait assez facilement, et les résultats en sont plutôt satisfaisants. Malheureusement l’installation sur un Raspberry Pi 2 ne fonctionnait pas. Le problème a été résolu depuis quelques mois par un patch de Mathieu Rondonneau qui permet d’utiliser la toute dernière version de Xenomai (3.0.2).
Lire la suite de cette entrée »

Conférence « Solutions pour Linux embarqué – Panorama et critères de choix »

Beagle Bone Black, Embarqué, Linux, Microcontrôleur, Microprocesseur, Temps-réel | Publié par cpb
Mai 21 2015

J’ai le plaisir de présenter cet après-midi une conférence intitulée « Solutions pour Linux embarqué – Panorama et critères de choix« .

Organisée par Cap’tronic , elle aura lieu à Tours dans les locaux de Polytech’Tours de 14h à 17h30 environ. L’accueil est organisé à partir de 13h30.

Vous pouvez consulter les slides.

Plusieurs démonstrations utilisant des microcontrôleurs (MSP 430) ou systèmes monocartes (BeagleBone Black et Raspsberry Pi) seront présentées.

Vous pouvez télécharger également les fichiers de configuration et sources des démonstrations.

Notifications rapides d’une variable-condition

Linux, Temps-réel | Publié par cpb
Août 19 2013

Un client m’a interrogé récemment sur la mise en œuvre d’une notification d’événements entre threads. Je l’ai tout naturellement aiguillé vers l’emploi d’une variable condition pthread_cond_t. Toutefois lorsque les notifications se sont produites par rafales rapides, des problèmes se sont posés, que je n’ai pu résoudre qu’avec l’emploi d’un sémaphore supplémentaire.

Lire la suite de cette entrée »

Mesure de latences d’interruptions avec un STM32

Embarqué, Linux, Microcontrôleur, Microprocesseur, Raspberry Pi, Temps-réel | Publié par cpb
Mar 13 2013

Raspberry Pi - STM32 - 01J’ai continué mes expériences avec la gestion d’interruptions par un driver RTDM-Xenomai sur les ports GPIO d’un Raspberry Pi que j’avais entamées dans le précédent article. Jusqu’alors j’avais pu déterminer « à l’œil » en utilisant un oscilloscope que le temps de réponse était de l’ordre de 3 à 4 micro-secondes, avec des pointes régulières à 8 micro-secondes environ. Ce sont justement ces pointes – et celles plus longues – qui m’intéressent et j’aimerais en avoir un aperçu plus complet. Mon objectif est de pouvoir déterminer le temps de réponse que peut garantir dans le pire des cas un système temps réel construit sur Xenomai avec l’API RTDM.

Lire la suite de cette entrée »

Raspberry Pi – Interruptions GPIO avec RTDM

Actualité, Embarqué, Linux, Raspberry Pi, Temps-réel | Publié par cpb
Fév 15 2013

IRQ GPIO Raspberry-Pi RTDMDans un article précédent, j’indiquais que le support des interruptions déclenchées par les ports GPIO du Raspberry Pi n’était pas encore satisfaisant sous Xenomai en utilisant un driver RTDM. Depuis quelques semaines  Paul Corner travaille sur le sujet, et il a finalement résolu le problème mercredi dernier. Comme nous le soupçonnions, il y avait un conflit entre le gestionnaire d’interruptions de Xenomai et celui de Linux (qui restait anormalement installé).

Les patches de Paul n’ont pas encore été intégrés dans Xenomai (mais je suppose qu’ils le seront dans les jours à venir). En attendant, voici comment obtenir de meilleurs résultats que précédemment.

Lire la suite de cette entrée »

Gérer les GPIO du Raspberry Pi avec RTDM

Embarqué, Linux, Raspberry Pi, Temps-réel | Publié par cpb
Jan 26 2013

Xenomai Raspberry-Pi GPIOPlusieurs personnes m’ont demandé récemment si l’utilisation des GPIO du Raspberry Pi étaient possible en employant un driver RTDM pour Xenomai. Si le traitement des entrées et sorties est effectivement simple, l’utilisation des interruptions pose encore quelques soucis.
Lire la suite de cette entrée »