ID de l'article: 000079285 Type de contenu: Information et documentation de produit Dernière révision: 10/03/2015

Comment définir le HAL pilote UART pour fonctionner en mode non bloquant avec le processeur Nios II ?

Environnement

  • Processeur Intel® Nios® II
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    Descriptif

    Le HAL fournit deux méthodes permettant de configurer le pilote UART HAL de fonctionner en mode non bloquant.

    Style UNIX

    Si vous utilisez des appels utilisant la fonction E/S de type UNIX, vous pouvez utiliser la fonction ouverte () pour définir un UART comme non bloquant. Pour ce faire, ouvrez un descripteur de fichier à votre UART de la manière suivante :

    fd = open("/dev/",O_NONBLOCK | O_RDWR);

    Ce descripteur de fichier définit l’UART pour fonctionner en mode de lecture/écriture et de non blocage. Vous pouvez ensuite utiliser le descripteur de fichier avec les fonctions de lecture () et d’écriture ().

    ANSI C

    Si vous utilisez des appels utilisant la fonction ANSI C IO, vous pouvez définir un HAL pilote UART pour fonctionner en mode non bloquant à l’aide de fcntl(). Pour ce faire, vous devez référence à fcntl.h et unistd.h dans votre code source. Ensuite, vous pouvez utiliser fcntl () pour définir le mode UART en mode non bloquant. Vous trouverez ci-dessous un exemple qui définit le canal E/S STDIN pour qu’il fonctionne en mode non bloquant :

    fcntl(STDIN_FILENO, F_SETFL, O_NONBLOCK);

     

      Pour plus d’informations, vous pouvez consulter la référence de l’API HAL dans le manuel du développeur de logicielsNios® II. Ce document se trouve aux endroits suivants :

      installation Nios II - répertoire d’installation /documents/n2sw_nii5v2.pdf

      Site WebAltera® - http://www.altera.com/literature/lit-nio2.jsp

      Produits associés

      Cet article concerne 1 produits

      Circuits programmables Intel®

      Le contenu de cette page est une combinaison de traduction humaine et informatique du contenu original en anglais. Ce contenu vous est fourni pour votre commodité et à titre informatif seulement et ne saurait être totalement exact ou complet. En cas de contradiction entre la version anglaise de cette page et la traduction, c'est la version anglaise qui prévaut. Afficher la version anglaise de cette page.