Цитата(Сергей Борщ @ Feb 15 2017, 23:24)

Если совсем простое:
ого...
Код
void rt_sem_psh (P_SCB p_CB) {
/* Check if task has to be waken up */
P_TCB p_TCB;
if (p_CB->p_lnk != NULL) {
/* A task is waiting for token */
p_TCB = rt_get_first ((P_XCB)p_CB);
rt_rmv_dly (p_TCB);
p_TCB->state = READY;
p_TCB->ret_val = OS_R_SEM;
rt_put_prio (&os_rdy, p_TCB);
}
else {
/* Store token */
p_CB->tokens++;
}
}
вылет тут
Код
if (p_CB->p_lnk != NULL) {
и как понимать эту обработку семафора?