Вызов функции запрещает переключение контекста (в том числе и системные прерывания) до тех пор, пока не будет вызвана парная функция tn_sys_exit_critical().
Вызов:
void tn_sys_enter_critical (void);
Разрешен вызов:
В контексте задачи
Параметры функции:
нет
Возвращаемые значения:
нет
Пример вызова:
long long Global_Variable; void TN_TASK Task_1 (void *param) { for (;;) { tn_sys_enter_critical(); Global_Variable = 1255456; tn_sys_exit_critical(); } } void TN_TASK Task_2 (void *param) { long long tmp; for (;;) { tn_sem_acquire(&sem_rc, TN_WAIT_INFINITE); tn_sys_enter_critical(); tmp = Global_Variable; tn_sys_exit_critical(); if (tmp) tn_sem_signal(&sem_tr); } }