Je suis une vieille main avec des pilotes matériels et périphériques et utilisé beaucoup plus tôt les versions Linux pour le contrôle du matériel. Je suis récemment de retour dans le jeu de Linux et le contrôle des périphériques en utilisant le traitement intégré et j'ai découvert que beaucoup de choses ont changé dans le monde Linux (pour le meilleur). Cependant, je suis aux prises avec un problème de contrôle matériel impliquant un module de noyau de transfert de données basé sur SPI très rapide qui doit désactiver toutes les interruptions pendant une courte période (5msec) pour assurer le bon transfert des données. Dans les «vieux temps» de Linux, on utilisait une structure save_flags - cli() - sti() pour désactiver les interruptions de la section critique. Quel est le moyen le plus simple d'accomplir ceci dans le nouveau cadre de contrôle IRQ Linux (2.6.33 et plus récent)?Comment puis-je bloquer toutes les IRQ pendant le transfert de données de trame court (5ms)
Scott
Bus maîtriser quelqu'un? La plupart des matériels de nos jours devraient pouvoir transférer des données à la RAM sans intervention d'unité centrale de traitement. Et c'est la bonne façon de le faire. IIRC, cli()/sti() devrait être encore dans le 2.6 pour la rétrocompatibilité. – Dummy00001
5ms n'est plus "court" - c'est littéralement * millions * de cycles CPU gaspillés ... – caf