Der HAL bietet zwei Methoden, um den UART HAL Treiber auf den nicht blockierenden Modus zu setzen.
UNIX-Stil
Wenn Sie IO-Anrufe nach UNIX-Art verwenden, können Sie die open() Funktion verwenden, um eine UART als nicht blockierend zu setzen. Öffnen Sie dazu auf folgende Weise eine Dateibeschreibung für Ihre UART:
fd = open("/dev/",O_NONBLOCK | O_RDWR);
Mit dieser Dateibeschreibung wird die UART so festgelegt, dass sie im Lese-/Schreib- und nicht blockierenden Modus ausgeführt wird. Sie können dann die Dateibeschreibung mit den Funktionen read() und write() verwenden.
ANSI C
Wenn Sie anSI C IO-Funktion aufruft, können Sie einen UART HAL Treiber mit fcntl() so einstellen, dass er im nicht blockierenden Modus betrieben wird. Um dies zu tun, müssen Sie auf fcntl.h und unistd.h in Ihrem Quellcode verweisen. Dann können Sie fcntl() verwenden, um UART auf den Nichtblockierungsmodus zu setzen. Nachfolgend finden Sie ein Beispiel, das den STDIN IO-Kanal so setzt, dass er im nicht blockierenden Modus betrieben wird:
fcntl(STDIN_FILENO, F_SETFL, O_NONBLOCK);
Weitere Informationen finden Sie in der HAL API-Referenz im Handbuch für Nios® II Softwareentwickler. Dieses Dokument finden Sie an den folgenden Stellen:
Nios II-Installation – Installationsverzeichnis für /documents/n2sw_nii5v2.pdf
® website Altera – http://www.altera.com/literature/lit-nio2.jsp