2010-12-07 41 views
3

Quelqu'un peut-il me pointer sur un exemple de code pour activer et gérer les interruptions d'E/S des broches de l'utilisateur (langage C) pour un ARM9 sous Linux?Goupilles GPIO Gestion des interruptions dans linux (bras)

Je suis conscient qu'un conducteur à faible niveau peut être nécessaire, je veux juste obtenir quelques idées sur la façon de l'initialiser, puis gérer la messagerie au niveau utilisateur, etc.

Je suis familier avec les interruptions ARM, et les pilotes de périphériques (sous Windows) mais je suis nouveau dans la programmation Linux.

grâce

Répondre

3

Cela dépend vraiment de la BSP réelle que vous utilisez. Je pense qu'il n'y a pas de "générique ARM9 gpio interruption" sous Linux, c'est plutôt spécifique au forum. Par exemple. voici un exemple pour une carte PCA100:

static int pca100_sdhc2_init(struct device *dev, irq_handler_t detect_irq, 
       void *data) 
{ 
     int ret; 

     ret = request_irq(IRQ_GPIOC(29), detect_irq, 
          IRQF_DISABLED | IRQF_TRIGGER_FALLING, 
          "imx-mmc-detect", data); 
     if (ret) 
       printk(KERN_ERR 
         "pca100: Failed to reuest irq for sd/mmc detection\n"); 

     return ret; 
} 

static void pca100_sdhc2_exit(struct device *dev, void *data) 
{ 
     free_irq(IRQ_GPIOC(29), data); 
} 
+0

Merci beaucoup, cela m'a permis de démarrer! – tommessum