POSIX Conditionsvariablen in XIlKernel

OP #4955159
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
#4955746
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren