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