Hallo !
Ich habe unter Arm Cortex M4 einen Semaphor in uCOS-III.
Wenn ich 2x hintereinander (im gleichen Task) einen OSSemPend()
durchführe, also
1 | timeout = 100; /* 0.1 s */
|
2 |
|
3 | OSSemPend(rtos_sem_p, timeout, OS_OPT_PEND_BLOCKING, NULL, &err);
|
4 | ...
|
5 | OSSemPend(rtos_sem_p, timeout, OS_OPT_PEND_BLOCKING, NULL, &err);
|
6 | ...
|
und nirgendwo ein OSSemPost() abgesetzt wird, würde ich mir erwarten,
dass der zweite Aufruf in das Timeout läuft. Er blockiert aber, egal was
ich für timeout verwende. Übrigens: OS_OPT_PEND_BLOCKING heisst laut
Manual nur, dass der Semaphor erst einmal auf das timeout wartet, bevor
er signalisiert, dass das Pend schiefgegangen ist.
Ich wollte eigentlich bloß testen, ob der Timeout Mechanismus
funktioniert, sehe nun aber, dass es hier scheinbar nicht so
funktioniert, wie ich es mir vorstellte.
Woran kann das liegen?
Danke !