Forum: FPGA, VHDL & Co. POSIX Conditionsvariablen in XIlKernel


von Nohchi V. (chedisel)


Lesenswert?

Hallo,

ich arbeite bereits an einem Seminararbeit und implementiere eine 
Software für MicroBlaze auf XilKernel als BSP, um POSIX-API für 
Multi-Threading zu verwenden. Ich brauche Konditionsvariablen für die 
Thread-Synchronization und musste dann feststellen, dass diese gar nicht 
in XilKernel-Datasheet für POSIX-API erwähnt sind und auch im SDK 
bekomme ich die folgende Fehlermeldung:

C:\Xilinx\student_23\new_mjpeg\SDK2\xil_mb1\Debug/../src/main.c:210: 
undefined reference to `pthread_cond_wait
C:\Xilinx\student_23\new_mjpeg\SDK2\xil_mb1\Debug/../src/routing_thread. 
c:37:  undefined reference to `pthread_cond_signal'

Hat vielleicht jemand hier Erfahrung mit dem Einsatz von 
Conditionsvariablen in XilKernel? Werden diese vom XilKernel tatsächlich 
nicht unterstützt, oder liegt es an meiner EDK-Version (14.6)?
Ich habe erfahren, dass sie sich auch manuell mittels Semaphoren und 
Locks nachbauen lassen. Hat vielleicht jemand die Erfahrung mit deren 
Implementierung in C?

In der inkludierten Datei <pthread.h> sind noch die folgenden Codezeilen 
vorhanden:

int _EXFUN(pthread_cond_signal, (pthread_cond_t *__cond));
int _EXFUN(pthread_cond_wait, (pthread_cond_t *__cond, pthread_mutex_t 
*__mutex));

Wozu sind denn diese und was bedeuten sie?

Ich habe diese Frage vor vier Tagen im Xilinx-Forum gestellt, aber 
leider bis jetzt gar keine Antwort erhalten. Daher würde ich  mich auf 
ihre Rückmeldungen sehr freuen.

Viele Grüße
Usam

von S. R. (svenska)


Lesenswert?

Die beiden Zeilen erzeugen zwei Funktionen (bzw. Funktionsdeklarationen) 
namens "pthread_cond_signal" und "pthread_cond_wait" mit den angegebenen 
Argumentlisten.

Sowas macht man, wenn man in verschiedenen Umgebungen leicht 
verschiedene (= zueinander inkompatible) Prototypen braucht.

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.