RTOS рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреВрд░реА рд╕рдЪреНрдЪрд╛рдИред рдЕрдиреБрдЪреНрдЫреЗрдж # 20 рд╕реЗрдордлреЛрд░рд╕: рд╕рд╣рд╛рдпрдХ рд╕реЗрд╡рд╛рдПрдВ рдФрд░ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдПрдВ



рдпрд╣ рд▓реЗрдЦ рдЕрд░реНрдзрдХреБрдВрдн рдХреА рд╕рдореАрдХреНрд╖рд╛ рдЬрд╛рд░реА рд░рдЦрддрд╛ рд╣реИред

рд╣реЗрд▓реНрдкрд░ рд╕реЗрдорд╛рдлреЛрд░ рд╕реЗрд╡рд╛рдПрдВ


рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдЖрд░рдЯреАрдУрдПрд╕ рдореЗрдВ рдЪрд╛рд░ рдПрдкреАрдЖрдИ рдХреЙрд▓ рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рд╕реЗрдорд╛рдлреЛрд░ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ: рдПрдХ рд╕реЗрдорд╛рдлреЛрд░ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░рдирд╛, рд╕реЗрдорд╛рдлреЛрд░ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛, рдПрдХ рдЖрд╡реЗрджрди рдореЗрдВ рд╕реЗрдорд╛рдлреЛрд░ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдФрд░ рдПрдХ рдЖрд╡реЗрджрди рдореЗрдВ рд╕рднреА рд╕реЗрдорд╛рдлреЛрд░ рдХреЛ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ред рдЙрдирдореЗрдВ рд╕реЗ рдкрд╣рд▓реЗ рддреАрди рдХреЛ рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ:
рдЕрдиреБрдЪреНрдЫреЗрдж # 19ред рд╕реЗрдорд╛рдлреЛрд░реЗрд╕: рдкрд░рд┐рдЪрдп рдФрд░ рдмреБрдирд┐рдпрд╛рджреА рд╕реЗрд╡рд╛рдПрдВ
рдЕрдиреБрдЪреНрдЫреЗрдж # 18ред рдЗрд╡реЗрдВрдЯ рдлрд╝реНрд▓реИрдЧ рд╕рдореВрд╣: рд╕рд╣рд╛рдпрдХ рд╕реЗрд╡рд╛рдПрдБ рдФрд░ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдПрдБ
рдЕрдиреБрдЪреНрдЫреЗрдж # 17 рдЗрд╡реЗрдВрдЯ рдлрд╝реНрд▓реИрдЧ рд╕рдореВрд╣: рдкрд░рд┐рдЪрдп рдФрд░ рдмреБрдирд┐рдпрд╛рджреА рд╕реЗрд╡рд╛рдПрдБ
рдЕрдиреБрдЪреНрдЫреЗрдж # 16ред рд╕рдВрдХреЗрдд
рдЕрдиреБрдЪреНрдЫреЗрдж # 15 рдореЗрдореЛрд░реА рд╡рд┐рднрд╛рдЬрди: рд╕реЗрд╡рд╛рдПрдБ рдФрд░ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдПрдБ
рдЕрдиреБрдЪреНрдЫреЗрдж # 14ред рд╕реНрдореГрддрд┐ рдХреА рдзрд╛рд░рд╛рдПрдВ: рдкрд░рд┐рдЪрдп рдФрд░ рдмреБрдирд┐рдпрд╛рджреА рд╕реЗрд╡рд╛рдПрдВ
рдЕрдиреБрдЪреНрдЫреЗрдж # 13ред рдЯрд╛рд╕реНрдХ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдФрд░ рдЕрд╕рдорд░реНрдерд┐рдд рдПрдкреАрдЖрдИ рдХреЙрд▓
рдЕрдиреБрдЪреНрдЫреЗрдж # 12 рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрд╡рд╛рдПрдБ
рдЕрдиреБрдЪреНрдЫреЗрдж # 11ред рдХрд╛рд░реНрдп: рд╡рд┐рдиреНрдпрд╛рд╕ рдФрд░ рдПрдкреАрдЖрдИ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдЪрдп
рдЕрдиреБрдЪреНрдЫреЗрдж # 10 рд╕рдордпрдмрджреНрдзрдХ: рдЙрдиреНрдирдд рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдФрд░ рд╕рдВрджрд░реНрдн рд╕рдВрд░рдХреНрд╖рдг
рдЕрдиреБрдЪреНрдЫреЗрдж # 9 рд╕рдордпрдмрджреНрдзрдХ: рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди
рдЕрдиреБрдЪреНрдЫреЗрдж # 8 рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ: рдЖрдВрддрд░рд┐рдХ рдбрд┐рдЬрд╛рдЗрди рдФрд░ рдкрд░рд┐рдирд┐рдпреЛрдЬрди
рдЕрдиреБрдЪреНрдЫреЗрдж # 7 рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ: рдкрд░рд┐рдЪрдп
рдЕрдиреБрдЪреНрдЫреЗрдж # 6 рдЕрдиреНрдп RTOS рд╕реЗрд╡рд╛рдПрдВ
рдЕрдиреБрдЪреНрдЫреЗрдж # рел рдХрд╛рд░реНрдп рд╕рд╣рднрд╛рдЧрд┐рддрд╛ рдФрд░ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди
рдЕрдиреБрдЪреНрдЫреЗрдж # 4 рдХрд╛рд░реНрдп, рд╕рдВрджрд░реНрдн рд╕реНрд╡рд┐рдЪрд┐рдВрдЧ, рдФрд░ рд╡реНрдпрд╡рдзрд╛рди
рдЕрдиреБрдЪреНрдЫреЗрдж # рей рдХрд╛рд░реНрдп рдФрд░ рдпреЛрдЬрдирд╛
рдЕрдиреБрдЪреНрдЫреЗрдж # 2 рдЖрд░рдЯреАрдУрдПрд╕: рд╕рдВрд░рдЪрдирд╛ рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЛрдб
рдЕрдиреБрдЪреНрдЫреЗрдж # 1ред рдЖрд░рдЯреАрдУрдПрд╕: рдкрд░рд┐рдЪрдпред

рд╕реЗрдорд╛рдлреЛрд░ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░реЗрдВ


рдпрд╣ рдПрдкреАрдЖрдИ рдХреЙрд▓ рд╕реЗрдорд╛рдлреЛрд░ рдХреЛ рдЗрд╕рдХреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ, рдЕрдкреНрд░рдпреБрдХреНрдд рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд░реАрд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдПрдкреАрдЖрдИ рдлрд╝рдВрдХреНрд╢рди рдЕрдиреНрдп рдХрд░реНрдиреЗрд▓ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрд╕рд╛рдорд╛рдиреНрдп рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рдпрд╣ рд░реАрд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рди рдХреЗрд╡рд▓ рдХрд╛рдЙрдВрдЯрд░ рдХреЛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдореВрд▓реНрдп рдкрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдХреЙрд▓ рдореЗрдВ рдПрдХ рдирдпрд╛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХрд╛рдЙрдВрдЯрд░ рдорд╛рди рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХреЛрдИ рднреА рдХрд╛рд░реНрдп рдЬреЛ рд╕реЗрдореАрдлрд╝рд╛рдпрд░ рдкрд░ рд░реЛрдХ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ NUSE_SEMAPHORE_WAS_RESET рдХреЛрдб рдХреЛ Nucleus SE рдореЗрдВ рдФрд░ Nucleus RTOS, NU_SEMAPHORE_RESET рдореЗрдВ рд▓реМрдЯрд╛рддрд╛ рд╣реИ ред

рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдЖрд░рдЯреАрдУрдПрд╕ рдореЗрдВ рд╕реЗрдорд╛рдлреЛрд░ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдХрд░реЗрдВ

рд╕реЗрд╡рд╛ рдХреЙрд▓ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк:

рд╕реНрдЯреЗрдЯрд╕ NU_Reset_Semaphore (NU_SEMAPHORE * semaphore, UNSIGNED initial_count);

рд╡рд┐рдХрд▓реНрдк:

рд╕реЗрдорд╛рдлреЛрд░ - рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рд╕реЗрдорд╛рдлреЛрд░ рдирд┐рдпрдВрддреНрд░рдг рдмреНрд▓реЙрдХ рдХреЗ рд▓рд┐рдП рд╕реВрдЪрдХ;
initial_count - рд╡рд╣ рдорд╛рди рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╕реЗрдорд╛рдлрд╝реЛрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп:

NU_SUCCESS - рдХреЙрд▓ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рдерд╛;
NU_INVALID_SEMAPHORE - рдЕрдорд╛рдиреНрдп рд╕реЗрдорд╛рдлрд╝реЛрд░ рд╕реВрдЪрдХред

рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдореЗрдВ рдПрдХ рд╕реЗрдорд╛рдлреЛрд░ рд░реАрд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдХрд░реЗрдВ
рдпрд╣ рдПрдкреАрдЖрдИ рдХреЙрд▓ рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдЖрд░рдЯреАрдУрдПрд╕ рдПрдкреАрдЖрдИ рдХреА рдореБрдЦреНрдп рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред

рд╕реЗрд╡рд╛ рдХреЙрд▓ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк:

рд╕реНрдЯреЗрдЯрд╕ NUSE_Semaphore_Reset (NUSE_SEMAPHORE рд╕реЗрдорд╛рдлреЛрд░, U8 рдкреНрд░рд╛рд░рдВрднрд┐рдХ_рд╕рдореВрд╣);

рд╡рд┐рдХрд▓реНрдк:

рд╕реЗрдорд╛рдлрд╝реЛрд░ - рдбрдВрдк рдХрд┐рдП рдЧрдП рд╕реЗрдорд╛рдлрд╝реЛрд░ рдХрд╛ рд╕реВрдЪрдХрд╛рдВрдХ (рдЖрдИрдбреА);
initial_count - рд╡рд╣ рдорд╛рди рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╕реЗрдорд╛рдлрд╝реЛрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп:

NUSE_SUCCESS - рдХреЙрд▓ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рдерд╛;
NUSE_INVALID_SEMAPHORE - рдЕрдорд╛рдиреНрдп рд╕реЗрдорд╛рдлрд╝реЛрд░ рдЗрдВрдбреЗрдХреНрд╕ред

рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдореЗрдВ рдПрдХ рд╕реЗрдорд╛рдлреЛрд░ рд░реАрд╕реЗрдЯ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛

NUSE_Semaphore_Reset () API рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдореБрдЦреНрдп рдХрд╛рд░реНрдп рд╕рдВрдмрдВрдзрд┐рдд NUSE_Semaphore_Counter [] рддрддреНрд╡ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдорд╛рди (рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж) рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реИред

рдпрджрд┐ рдХрд╛рд░реНрдп рд▓реЙрдХрд┐рдВрдЧ рд╕рдХреНрд░рд┐рдп рд╣реИ, рддреЛ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЕрдирд▓реЙрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрди рдХреЛрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ:

while (NUSE_Semaphore_Blocking_Count[semaphore] != 0) { U8 index; /* check whether any tasks are blocked */ /* on this semaphore */ for (index=0; index<NUSE_TASK_NUMBER; index++) { if ((LONIB(NUSE_Task_Status[index]) == NUSE_SEMAPHORE_SUSPEND) && (HINIB(NUSE_Task_Status[index]) == semaphore)) { NUSE_Task_Blocking_Return[index] = NUSE_SEMAPHORE_WAS_RESET; NUSE_Task_Status[index] = NUSE_READY; break; } } NUSE_Semaphore_Blocking_Count[semaphore]--; } #if NUSE_SCHEDULER_TYPE == NUSE_PRIORITY_SCHEDULER NUSE_Reschedule(NUSE_NO_TASK); #endif 

рд╕реЗрдорд╛рдлрд╝реЛрд░ рдкрд░ рдирд┐рд▓рдВрдмрд┐рдд рдкреНрд░рддреНрдпреЗрдХ рдХрд╛рд░реНрдп рдХреЛ "рд╕рдорд╛рдкреНрдд" рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдХрд╛рд░реНрдп рдирд┐рд▓рдВрдмрди рдХреЛрдб NUSE_SEMAPHORE_WAS_RESET рджреЗрддрд╛ рд╣реИред рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреВрд░реА рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдпрджрд┐ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╢реЗрдбреНрдпреВрд▓рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдХреЙрд▓ NUSE_Reschedule () рдХреЛ рдкреНрд░рд╛рд░рдВрдн рдХрд░рддрд╛ рд╣реИ , рдХреНрдпреЛрдВрдХрд┐ рдЙрдЪреНрдЪ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╡рд╛рд▓реЗ рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рдХрд╛рд░реНрдп рдПрдХ рддреИрдпрд╛рд░ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рд╕реЗрдорд╛рдлреЛрд░ рдЬрд╛рдирдХрд╛рд░реА


рдпрд╣ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЙрд▓ рд╕реЗрдорд╛рдлрд╝реЛрд░ рдЬрд╛рдирдХрд╛рд░реА рджреЗрддрд╛ рд╣реИред рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдореЗрдВ рдЗрд╕ рдХреЙрд▓ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдЖрд░рдЯреАрдУрдПрд╕ рд╕реЗ рднрд┐рдиреНрди рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдХрдо рдЬрд╛рдирдХрд╛рд░реА рджреА рдЬрд╛рддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдирд╛рдордХрд░рдг рдФрд░ рдирд┐рд▓рдВрдмрди рдХреЗ рдЖрджреЗрд╢ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдирд┐рд▓рдВрдмрди рдХреЛ рдЕрдХреНрд╖рдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдЖрд░рдЯреАрдУрдПрд╕ рдореЗрдВ рд╕реЗрдорд╛рдлреЛрд░ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдХрд░реЗрдВ

рд╕реЗрд╡рд╛ рдХреЙрд▓ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк:

STATUS NU_Semaphore_Information (NU_SEMAPHORE * semaphore, CHAR * рдирд╛рдо, UNSIGNED * current_count, OPTION * suspend_type, UNSIGNED * _waiting, NU_TASK ** first_task);

рд╡рд┐рдХрд▓реНрдк:

рд╕реЗрдорд╛рдлрд╝реЛрд░ - рд╕реЗрдорд╛рдлрд╝реЛрд░ рдХрдВрдЯреНрд░реЛрд▓ рдмреНрд▓реЙрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдХреЗрддрдХ рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ;
рдирд╛рдо - рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╢реВрдиреНрдп рд╕рдорд╛рдкреНрддрд┐ рдмрд╛рдЗрдЯ рдХреЗ рд╕рд╛рде рд╕реЗрдореАрдлреЛрд░ рдХреЗ 8-рдЪрд░рд┐рддреНрд░ рдирд╛рдо рдХреЗ рд╕реВрдЪрдХ;
current_count - рдПрдХ рдЪрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реВрдЪрдХ рдЬреЛ рдЕрд░реНрдз-рдХрд╛рдЙрдВрдЯрд░ рдХреЗ рд╡рд░реНрддрдорд╛рди рдореВрд▓реНрдп рдХреЛ рд▓реЗ рдЬрд╛рдПрдЧрд╛;
рд╕рд╕реНрдкреЗрдВрдб_рдЯрд╛рдЗрдк - рдПрдХ рд╡реЗрд░рд┐рдПрдмрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреЙрдЗрдВрдЯрд░ рдЬреЛ рд╕рд╕реНрдкреЗрдВрдб рдХрд╛рд░реНрдп рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдЧрд╛, рдорд╛рди NU_FIFO рдФрд░ NU_PRIORITY рд▓реЗ рд╕рдХрддрд╛ рд╣реИ;
task_waiting - рдПрдХ рдЪрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реВрдЪрдХ рдЬреЛ рдЕрд░реНрдзрдЪрд╛рд▓рдХ рдореЗрдВ рдирд┐рд▓рдВрдмрд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд▓реЗ рдЬрд╛рдПрдЧрд╛;
first_task - NU_TASK рдХреЗ рдПрдХ рдЪрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдХреЗрддрдХ, рдЬреЛ рдкрд╣рд▓реЗ рдирд┐рд▓рдВрдмрд┐рдд рдХрд╛рд░реНрдп рдХреА рдирд┐рдпрдВрддреНрд░рдг рдЗрдХрд╛рдИ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдХреЗрддрдХ рд▓реЗрдЧрд╛ред

рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп:

NU_SUCCESS - рдХреЙрд▓ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рдерд╛;
NU_INVALID_SEMAPHORE - рдЕрдорд╛рдиреНрдп рд╕реЗрдорд╛рдлрд╝реЛрд░ рд╕реВрдЪрдХред

рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдореЗрдВ рд╕реЗрдорд╛рдлреЛрд░ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдХрд░реЗрдВ
рдпрд╣ рдПрдкреАрдЖрдИ рдХреЙрд▓ рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдЖрд░рдЯреАрдУрдПрд╕ рдПрдкреАрдЖрдИ рдХреА рдореБрдЦреНрдп рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред

рд╕реЗрд╡рд╛ рдХреЙрд▓ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк:

STATUS NUSE_Semaphore_Information (NUSE_SEMAPHORE рд╕реЗрдорд╛рдлрд╝реЛрд░, U8 * current_count, U8 * functions_waiting, NUSE_TASK * first_task);

рд╡рд┐рдХрд▓реНрдк:

рд╕реЗрдорд╛рдлреЛрд░ - рдПрдХ рд╕реЗрдорд╛рдлреЛрд░ рдХрд╛ рдПрдХ рд╕реВрдЪрдХрд╛рдВрдХ рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ;
current_count - рдПрдХ рдЪрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реВрдЪрдХ рдЬреЛ рдЕрд░реНрдз-рдХрд╛рдЙрдВрдЯрд░ рдХреЗ рд╡рд░реНрддрдорд╛рди рдореВрд▓реНрдп рдХреЛ рд▓реЗ рдЬрд╛рдПрдЧрд╛;
task_waiting - рдПрдХ рдЪрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдХреЗрддрдХ рдЬреЛ рдЗрд╕ рд╕реЗрдорд╛рдлреЛрд░ рдкрд░ рдирд┐рд▓рдВрдмрд┐рдд рдХрд┐рдП рдЧрдП рдХрд╛рд░реНрдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд▓реЗ рдЬрд╛рдПрдЧрд╛ (рдирд┐рд▓рдВрдмрд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЕрдХреНрд╖рдо рд╣реЛрдиреЗ рдкрд░ рдХреБрдЫ рднреА рдирд╣реАрдВ рд▓реМрдЯрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ);
first_task - NUSE_TASK рдХреЗ рдПрдХ рдЪрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдХреЗрддрдХ, рдЬреЛ рдкрд╣рд▓реЗ рд░реБрдХреЗ рд╣реБрдП рдХрд╛рд░реНрдп рдХреЗ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЛ рд▓реЗ рдЬрд╛рдПрдЧрд╛ (рдард╣рд░рд╛рд╡ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЕрдХреНрд╖рдо рд╣реЛрдиреЗ рдкрд░ рдХреБрдЫ рднреА рдирд╣реАрдВ рд▓реМрдЯрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред

рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп:

NUSE_SUCCESS - рдХреЙрд▓ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рдерд╛;
NUSE_INVALID_SEMAPHORE - рдЕрдорд╛рдиреНрдп рд╕реЗрдорд╛рдлрд╝реЛрд░ рд╕реВрдЪрдХрд╛рдВрдХ;
NUSE_INVALID_POINTER - рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рдкреЙрдЗрдВрдЯрд░ рдкреИрд░рд╛рдореАрдЯрд░ рдЧрд▓рдд рд╣реИрдВред

рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдореЗрдВ рд╕реЗрдорд╛рдлреЛрд░ рд╕реВрдЪрдирд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛

рдЗрд╕ рдПрдкреАрдЖрдИ рдХреЙрд▓ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ:

 NUSE_CS_Enter(); *current_count = NUSE_Semaphore_Counter[semaphore]; #if NUSE_BLOCKING_ENABLE *tasks_waiting = NUSE_Semaphore_Blocking_Count[semaphore]; if (NUSE_Semaphore_Blocking_Count[semaphore] != 0) { U8 index; for (index=0; index<NUSE_TASK_NUMBER; index++) { if ((LONIB(NUSE_Task_Status[index]) == NUSE_SEMAPHORE_SUSPEND) && (HINIB(NUSE_Task_Status[index]) == semaphore)) { *first_task = index; break; } } } else { *first_task = 0; } #else *tasks_waiting = 0; *first_task = 0; #endif NUSE_CS_Exit(); return NUSE_SUCCESS; 

рдлрд╝рдВрдХреНрд╢рди рд╕реЗрдорд╛рдлрд╝реЛрд░ рдХреА рд╕реНрдерд┐рддрд┐ рджреЗрддрд╛ рд╣реИред рдлрд┐рд░, рдпрджрд┐ рдПрдкреАрдЖрдИ рдХреЙрд▓ рдмреНрд▓реЙрдХрд┐рдВрдЧ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╕рдХреНрд░рд┐рдп рд╣реИ, рддреЛ рд▓рдВрдмрд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдФрд░ рдкрд╣рд▓реЗ рд╡рд╛рд▓реЗ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЕрдиреНрдпрдерд╛, рдпреЗ рдкреИрд░рд╛рдореАрдЯрд░ 0 рдкрд░ рд╕реЗрдЯ рд╣реИрдВ)ред

рд╕реЗрдорд╛рдлреЛрд░ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛


рдпрд╣ рдпреВрдЯрд┐рд▓рд┐рдЯреА рдХреЙрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рд╕реЗрдорд╛рдлреЛрд░ рдХреА рд╕рдВрдЦреНрдпрд╛ рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдЖрд░рдЯреАрдУрдПрд╕ рдореЗрдВ, рдпрд╣ рдорд╛рди рд╕рдордп рдХреЗ рд╕рд╛рде рдмрджрд▓рддрд╛ рд╣реИ рдФрд░ рд░рд┐рдЯрд░реНрди рд╡реИрд▓реНрдпреВ рд╕реЗрдореАрдлреЛрд░рд╕ рдХреА рд╡рд░реНрддрдорд╛рди рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИ, рдФрд░ рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдореЗрдВ, рд░рд┐рдЯрд░реНрди рд╡реИрд▓реНрдпреВ рдЕрд╕реЗрдВрдмрд▓реА рд╕реНрдЯреЗрдЬ рдкрд░ рд╕реЗрдЯ рдХреА рдЬрд╛рддреА рд╣реИ рдФрд░ рдЕрдм рдмрджрд▓рддреА рдирд╣реАрдВ рд╣реИред

рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдЖрд░рдЯреАрдУрдПрд╕ рдореЗрдВ рдПрдХ рд╕реЗрдорд╛рдлреЛрд░ рдХрд╛рдЙрдВрдЯрд░ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛

рд╕реЗрд╡рд╛ рдХреЙрд▓ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк:

UNSIGNED NU_Established_Semaphores (VOID);

рд╡рд┐рдХрд▓реНрдк:
рдЕрдиреБрдкрд╕реНрдерд┐рдд рд╣реИрдВред

рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп:
рдЖрд╡реЗрджрди рдореЗрдВ рдмрдирд╛рдП рдЧрдП рд╕реЗрдорд╛рдлреЛрд░ рдХреА рд╕рдВрдЦреНрдпрд╛ред

рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдореЗрдВ рдПрдХ рд╕реЗрдорд╛рдлреЛрд░ рдХрд╛рдЙрдВрдЯрд░ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛
рдпрд╣ рдПрдкреАрдЖрдИ рдХреЙрд▓ рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдЖрд░рдЯреАрдУрдПрд╕ рдПрдкреАрдЖрдИ рдХреА рдореБрдЦреНрдп рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред

рд╕реЗрд╡рд╛ рдХреЙрд▓ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк:

U8 NUSE_Semaphore_Count (рд╢реВрдиреНрдп);

рд╡рд┐рдХрд▓реНрдк:
рдЕрдиреБрдкрд╕реНрдерд┐рдд рд╣реИрдВред

рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп:
рдЖрд╡реЗрджрди рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП рд╕реЗрдорд╛рдлреЛрд░ рдХреА рд╕рдВрдЦреНрдпрд╛ред

рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдореЗрдВ рд╕реЗрдорд╛рдлреЛрд░ рдХрд╛рдЙрдВрдЯрд░реЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛
рдЗрд╕ API рдХреЙрд▓ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ: #define NUSE_SEMAPHORE_NUMBER рдкреНрд░рддреАрдХ рдХрд╛ рдорд╛рди рд╡рд╛рдкрд╕ рдЖ рдЧрдпрд╛ рд╣реИ ред

рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдПрдВ


рд╕реЗрдорд╛рдлреЛрд░ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ (рд░реИрдо рдФрд░ рд░реЛрдо рдореЗрдВ) рдХреЗ рджреЛ рдпрд╛ рддреАрди рд╕рд░рдгрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ, рдЕрдиреНрдп рд╕рднреА рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рддрд░рд╣, рдЯреЗрдмрд▓ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЖрдХрд╛рд░ рдЖрд╡реЗрджрди рдФрд░ рдЪрдпрдирд┐рдд рдорд╛рдкрджрдВрдбреЛрдВ рдореЗрдВ рд╕реЗрдорд╛рдлреЛрд░ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред

рдореИрдВ рджреГрдврд╝рддрд╛ рд╕реЗ рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рдЗрди рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рддрдХ рд╕реАрдзреА рдкрд╣реБрдВрдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдПрдкреАрдЖрдИ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдиреНрд╣реЗрдВ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдХреЗ рднрд╡рд┐рд╖реНрдп рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдФрд░ рдЕрд╡рд╛рдВрдЫрд┐рдд рджреБрд╖реНрдкреНрд░рднрд╛рд╡реЛрдВ рдХреЗ рд╕рд╛рде рдЕрд╕рдВрдЧрддрд┐ рд╕реЗ рдмрдЪрд╛рдПрдЧрд╛, рд╕рд╛рде рд╣реА рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдЖрд░рдЯреАрдУрдПрд╕ рдХреЗ рд▓рд┐рдП рдЖрд╡реЗрджрди рдХреЛ рд╕рд░рд▓ рдХрд░реЗрдЧрд╛ред рд╕реЗрд╡рд╛ рдХреЙрд▓ рдХреЛрдб рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рд╕рдордЭ рдХреЗ рд▓рд┐рдП, рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХрд╛ рдПрдХ рд╡рд┐рд╕реНрддреГрдд рдЕрд╡рд▓реЛрдХрди рдиреАрдЪреЗ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рд░реИрдо рдбреЗрдЯрд╛


рдЗрд╕ рдбреЗрдЯрд╛ рдореЗрдВ рдирд┐рдореНрди рд╕рдВрд░рдЪрдирд╛ рд╣реИ:
NUSE_Semaphore_Counter [] - рдкреНрд░рдХрд╛рд░ U8 рдХреА рдПрдХ рд╕рд░рдгреА рдЬрд┐рд╕рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП рд╕реЗрдорд╛рдлреЛрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рд╣реИ, рдпрд╣ рдХрд╛рдЙрдВрдЯрд░ рдХреЗ рдореВрд▓реНрдп рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред
NUSE_Semaphore_Blocking_Count [] - рдкреНрд░рдХрд╛рд░ U8 рдХреА рдПрдХ рд╕рд░рдгреА, рдЬрд┐рд╕рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрдореАрдлреЛрд░ рдкрд░ рдЕрд╡рд░реБрджреНрдз рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдХрд╛рдЙрдВрдЯрд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдпрд╣ рд╕рд░рдгреА рдХреЗрд╡рд▓ рддрднреА рдореМрдЬреВрдж рд╣реЛрддреА рд╣реИ рдЬрдм API рдХреЙрд▓ рдмреНрд▓реЙрдХрд┐рдВрдЧ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╕рдХреНрд░рд┐рдп рд╣реЛрддреА рд╣реИред
NUSE_Semaphore_Counter [] рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдореВрд▓реНрдп (рдиреАрдЪреЗ "ROM рдореЗрдВ рдбреЗрдЯрд╛ рджреЗрдЦреЗрдВ") рдФрд░ NUSE_Semaphore_Blocking_Count [] рдХреЛ NUSE_Init_Semadore () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд░реАрд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм Nucleus SE рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рдирд┐рдореНрди рд▓реЗрдЦреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдкреВрд░рд╛ рд╡рд┐рд╡рд░рдг рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛ред

Nuse_init.c рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЗрди рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛рдПрдБ рдирд┐рдореНрди рд╣реИрдВред

 RAM U8 NUSE_Semaphore_Counter[NUSE_SEMAPHORE_NUMBER]; #if NUSE_BLOCKING_ENABLE RAM U8 NUSE_Semaphore_Blocking_Count[NUSE_SEMAPHORE_NUMBER]; #endif 

ROM рдбреЗрдЯрд╛


рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛:
NUSE_Semaphore_Initial_Value [] - рдкреНрд░рдХрд╛рд░ U8 рдХреА рдПрдХ рд╕рд░рдгреА, рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрдорд╛рдлреЛрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд░рд┐рдХреЙрд░реНрдб рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдпреЗ рд╕реЗрдорд╛рдлреЛрд░ рдХреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдореВрд▓реНрдп рд╣реИрдВред

рдпрд╣ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ nuse_config.c рдореЗрдВ рдШреЛрд╖рд┐рдд рдФрд░ рдЖрд░рдВрднрд┐рдХ ( рд╡реИрдзрд╛рдирд┐рдХ рд░реВрдк рд╕реЗ) рд╣реИ:

 ROM U8 NUSE_Semaphore_Initial_Value[NUSE_SEMAPHORE_NUMBER] = { /* semaphore initial count values */ }; 

рд╕реЗрдорд╛рдлреЛрд░рд╕ рдХреЗ рд▓рд┐рдП рд╕реНрдореГрддрд┐ рдХреА рдорд╛рддреНрд░рд╛


рд╕рднреА рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдХрд░реНрдиреЗрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рддрд░рд╣, рд╕реЗрдорд╛рдлреЛрд░ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛ рдХреА рдорд╛рддреНрд░рд╛ рдЕрдиреБрдорд╛рдирд┐рдд рд╣реИред

рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЗрдВ рд╕рднреА рд╕реЗрдорд╛рдлреЛрд░ рдХреЗ рд▓рд┐рдП ROM (рдмрд╛рдЗрдЯреНрд╕ рдореЗрдВ) рдХреА рдорд╛рддреНрд░рд╛ NUSE_SEMAPHORE_NUMBER рд╣реИ ред

рд▓реЙрдХ рдПрдкреАрдЖрдИ рдореЗрдВ рд╕рдХреНрд░рд┐рдп рдХреЙрд▓ рдХреЗ рд╕рд╛рде рдЖрд╡реЗрджрди рдореЗрдВ рд╕рднреА рд╕реЗрдорд╛рдлреЛрд░ рдХреЗ рд▓рд┐рдП рд░реИрдо (рдмрд╛рдЗрдЯреНрд╕) рдореЗрдВ рдореЗрдореЛрд░реА рдХреА рдорд╛рддреНрд░рд╛ рдХреА рдЧрдгрдирд╛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ:
NUSE_SEMAPHORE_NUMBER * 2

рдЕрдиреНрдпрдерд╛, рдпрд╣ NUSE_SEMAPHORE_NUMBER рд╣реИ ред

рдЕрд╡рд╛рд╕реНрддрд╡рд┐рдХ рдПрдкреАрдЖрдИ рдХреЙрд▓


рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдЖрд░рдЯреАрдУрдПрд╕ рдореЗрдВ рдореМрдЬреВрдж рд╕реЗрдорд╛рдлреЛрд░ рдХреЗ рд▓рд┐рдП рддреАрди рдПрдкреАрдЖрдИ рдХреЙрд▓ рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдореЗрдВ рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред

рд╕реЗрдорд╛рдлреЛрд░ рдмрдирд╛рдирд╛


рдпрд╣ рдПрдкреАрдЖрдИ рдХреЙрд▓ рдПрдХ рд╕реЗрдорд╛рдлреЛрд░ рдмрдирд╛рддрд╛ рд╣реИред рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╕реЗрдореАрдлреЛрд░рд╕ рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рд░реВрдк рд╕реЗ рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред

рд╕реЗрд╡рд╛ рдХреЙрд▓ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк:
STATUS NU_Create_Semaphore (NU_SEMAPHORE * semaphore, CHAR * рдирд╛рдо, UNSIGNED initial_count, OPTION suspend_type);

рд╡рд┐рдХрд▓реНрдк:

рд╕реЗрдорд╛рдлреЛрд░ - рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рд╕реЗрдорд╛рдлреЛрд░ рдХрдВрдЯреНрд░реЛрд▓ рдмреНрд▓реЙрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реВрдЪрдХ; рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдиреНрдп рдПрдкреАрдЖрдИ рдХреЙрд▓ рдореЗрдВ рд╕реЗрдорд╛рдлреЛрд░ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ;
рдирд╛рдо - 8-рд╡рд░реНрдг рд╕реЗрдорд╛рдлреЛрд░ рдирд╛рдо рдХрд╛ рдПрдХ рд╕рдВрдХреЗрддрдХ, рдЬрд┐рд╕ рдкрд░ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдЕрд╢рдХреНрдд рдмрд╛рдЗрдЯ рдХреЗ рд╕рд╛рде;
initial_count - рд╕реЗрдорд╛рдлреЛрд░ рдХрд╛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдореВрд▓реНрдп;
рд╕рд╕реНрдкреЗрдВрдб_рдЯрд╛рдЗрдк - рдПрдХ рдХрд╛рд░реНрдп рдХреЛ рдПрдХ рдЕрд░реНрдзрд╡реГрддреНрдд рдкрд░ рд░реЛрдХ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред рдпрд╣ NU_FIFO рдФрд░ NU_PRIORITY рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рд▓реЗ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ FIFO (рдлрд░реНрд╕реНрдЯ-рдЗрди-рдлрд░реНрд╕реНрдЯ-рдЖрдЙрдЯ) рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдФрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдирд┐рд▓рдВрдмрди рдХреА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХреЗ рдХреНрд░рдо рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИред

рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп:

NU_SUCCESS - рдХреЙрд▓ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рдерд╛;
NU_INVALID_SEMAPHORE - рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рд╕реЗрдореАрдлреЛрд░ рдХрдВрдЯреНрд░реЛрд▓ рдмреНрд▓реЙрдХ рдХрд╛ рдкреЙрдЗрдВрдЯрд░ NULL рд╣реИ рдпрд╛ рдкрд╣рд▓реЗ рд╕реЗ рдЙрдкрдпреЛрдЧ рдореЗрдВ рд╣реИ;
NU_INVALID_SUSPEND - рдЕрдорд╛рдиреНрдп рд╕рд╕реНрдкреЗрдВрдб_рдЯрд╛рдЗрдк рдкреИрд░рд╛рдореАрдЯрд░ред

рд╕реЗрдорд╛рдлреЛрд░ рд╣рдЯрд╛рдиреЗ


рдпрд╣ рдПрдкреАрдЖрдИ рдХреЙрд▓ рдкрд╣рд▓реЗ рдмрдирд╛рдП рдЧрдП рд╕реЗрдорд╛рдлреЛрд░ рдХреЛ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИред рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╕реЗрдореАрдлреЛрд░ рдХреЛ рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рд░реВрдк рд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╣рдЯрд╛рдпрд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ред

рд╕реЗрд╡рд╛ рдХреЙрд▓ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк:

рд╕реНрдЯреЗрдЯрд╕ NU_Delete_Semaphore (NU_SEMAPHORE * semaphore);

рд╡рд┐рдХрд▓реНрдк:

рд╕реЗрдорд╛рдлреЛрд░ - рд╕реЗрдорд╛рдлреЛрд░ рдХрдВрдЯреНрд░реЛрд▓ рдмреНрд▓реЙрдХ рдХрд╛ рд╕реВрдЪрдХред

рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп:

NU_SUCCESS - рдХреЙрд▓ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рдерд╛;
NU_INVALID_SEMAPHORE - рдЕрдорд╛рдиреНрдп рд╕реЗрдорд╛рдлрд╝реЛрд░ рд╕реВрдЪрдХред

рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП semaphores


рдпрд╣ рдПрдкреАрдЖрдИ рдХреЙрд▓ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╕рднреА рд╕реЗрдорд╛рдлреЛрд░ рдХреЛ рд╕рдВрдХреЗрдд рдХреА рдПрдХ рдХреНрд░рдорд┐рдХ рд╕реВрдЪреА рдмрдирд╛рддрд╛ рд╣реИред рдЗрд╕реЗ рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕реЗрдорд╛рдлреЛрд░ рдХреЛ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╕реВрдЪрдХрд╛рдВрдХ рджреНрд╡рд╛рд░рд╛ рдкрд╣рдЪрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рди рдХрд┐ рдПрдХ рд╕реВрдЪрдХ рдХреЛред

рд╕реЗрд╡рд╛ рдХреЙрд▓ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк:

UNSIGNED NU_Semaphore_Pointers (NU_SEMAPHORE ** pointer_list, UNSIGNED maximum_pointers);

рд╡рд┐рдХрд▓реНрдк:

рдкреЙрдЗрдВрдЯрд░_рд▓рд┐рд╕реНрдЯ - рдкреЙрдЗрдВрдЯрд░реНрд╕ рдСрдлрд╝ рд╡реНрдпреВ рдкреЙрдЗрдВрдЯреНрд╕ NU_SEMAPHORE , рдпрд╣ рдПрд░реЗ рдкреЙрдЗрдВрдЯрд░реНрд╕ рд╕реЗ рд╕реЗрдореАрдлреЙрд░реНрд╕ рд╕реЗ рднрд░рд╛ рд╣реИ;
рдЕрдзрд┐рдХрддрдо_ рдкреЙрдЗрдВрдЯрд░реНрд╕ - рд╕рд░рдгреА рдореЗрдВ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреА рдЕрдзрд┐рдХрддрдо рд╕рдВрдЦреНрдпрд╛ред

рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп:
рд╕рд░рдгреА рдореЗрдВ NU_SEMAPHORE рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ред

рдирд╛рднрд┐рдХ RTOS рд╕рдВрдЧрдд


рдЕрдиреНрдп рд╕рднреА рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде, рд▓рдХреНрд╖реНрдп рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдЖрд░рдЯреАрдУрдПрд╕ рдХреЗ рд╕рд╛рде рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рд╕рдВрдЧрддрддрд╛ рдХреЛ рдЕрдзрд┐рдХрддрдо рдХрд░рдирд╛ рдерд╛ред рд╕реЗрдорд╛рдлреЛрд░ рдХреЛрдИ рдЕрдкрд╡рд╛рдж рдирд╣реАрдВ рд╣реИрдВ рдФрд░, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдЙрдиреНрд╣реЗрдВ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдЖрд░рдЯреАрдУрдПрд╕ рдореЗрдВред рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЕрд╕рдВрдЧрддрд┐ рднреА рд╣реИ, рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдЗрд╕ рддрдереНрдп рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП рд╕реНрд╡реАрдХрд╛рд░реНрдп рдорд╛рдирд╛ рдХрд┐ рдЕрдВрддрд┐рдо рдХреЛрдб рд╕реНрдореГрддрд┐ рдХреА рдорд╛рддреНрд░рд╛ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдордЭрдиреЗ рдпреЛрдЧреНрдп рдФрд░ рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдЕрдиреНрдпрдерд╛, рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдЖрд░рдЯреАрдУрдПрд╕ рдПрдкреАрдЖрдИ рдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рд▓рдЧрднрдЧ рд╕реАрдзреЗ рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдХреЙрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛


рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдЖрд░рдЯреАрдУрдПрд╕ рдореЗрдВ, рд╕рднреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рдХрд╛рд░ рдХреЗ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ (рдирд┐рдпрдВрддреНрд░рдг рдЗрдХрд╛рдЗрдпреЛрдВ) рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдирд┐рдпрдВрддреНрд░рдг рдЗрдХрд╛рдИ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реВрдЪрдХ рд╕реЗрдорд╛рдлреЛрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред рдореИрдВрдиреЗ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдХрд┐ рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдореЗрдВ, рдХреБрд╢рд▓ рдореЗрдореЛрд░реА рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: рд╕рднреА рдХрд░реНрдиреЗрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд░реИрдо рдФрд░ / рдпрд╛ рд░реЛрдо рдореЗрдВ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рдПрдХ рд╕реЗрдЯ рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрди рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХрд╛ рдЖрдХрд╛рд░ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХрд╛рд░ рдХреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рд╡рд╕реНрддреБрдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реЛрддрд╛ рд╣реИред рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рд╡рд╕реНрддреБ рдХреА рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдЗрд╕ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╕реВрдЪрдХрд╛рдВрдХ рд╣реИред рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ NUSE_SEMAPHORE рдХреЛ U8 рдХреЗ рдмрд░рд╛рдмрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдПрдХ рдЪрд░ (рд╕реВрдЪрдХ рдирд╣реАрдВ) рд╕реЗрдореАрдлреЛрд░ рдХреЗ рд▓рд┐рдП рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдХреЛрдб рдХреЛ рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рд╕реЗ рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдЖрд░рдЯреАрдУрдПрд╕ рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рдореЗрдВ рдкреЛрд░реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЕрд╕рдВрдЧрддрддрд╛ рдХреЛ рд╕рдВрднрд╛рд▓рдирд╛ рдЖрд╕рд╛рди рд╣реИред рдЖрдорддреМрд░ рдкрд░, рдСрдмреНрдЬреЗрдХреНрдЯ рдЖрдЗрдбреЗрдВрдЯрд┐рдлрд╝рд╛рдпрд░ рдкрд░ рдореВрд╡рд┐рдВрдЧ рдФрд░ рд╕реНрдЯреЛрд░рд┐рдВрдЧ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреЛрдИ рдСрдкрд░реЗрд╢рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдЖрд░рдЯреАрдУрдПрд╕ рдирд╛рдордХрд░рдг рд╕реЗрдорд╛рдлреЛрд░ рдХрд╛ рднреА рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдЗрди рдирд╛рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рдбреАрдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВрдиреЗ рдЙрдиреНрд╣реЗрдВ рдореЗрдореЛрд░реА рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рд╕реЗ рдмрд╛рд╣рд░ рдХрд░ рджрд┐рдпрд╛ред

рдХрд╛рдЙрдВрдЯрд░ рдХрд╛ рдЖрдХрд╛рд░


рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдЖрд░рдЯреАрдУрдПрд╕ рдкрд░, рд╕реЗрдорд╛рдлреЛрд░ рдХрд╛рдЙрдВрдЯрд░ рдЯрд╛рдЗрдк рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рд╣реИ , рдЬреЛ рдЖрдорддреМрд░ рдкрд░ 32-рдмрд┐рдЯ рдЪрд░ рд╣реИред рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдореЗрдВ 8-рдмрд┐рдЯ рдХрд╛рдЙрдВрдЯрд░ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЖрдо рддреМрд░ рдкрд░, рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдЖрд░рдЯреАрдУрдПрд╕ рд╕реЗрдорд╛рдлреЛрд░ рдЕрддрд┐рдкреНрд░рд╡рд╛рд╣ рдХреЗ рд▓рд┐рдП рдЬрд╛рдВрдЪ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдПрдкреАрдЖрдИ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдХрд╛рдЙрдВрдЯрд░ рдХреЛ 255 рд╕реЗ рдКрдкрд░ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдЕрд╕рд╛рдЗрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреА рдЬрд╛рдПрдЧреАред

рдЕрд╡рд╛рд╕реНрддрд╡рд┐рдХ рдПрдкреАрдЖрдИ рдХреЙрд▓


рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдЖрд░рдЯреАрдУрдПрд╕ рд╕реЗрдорд╛рдлреЛрд░рд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрда рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЙрд▓ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдЗрдирдореЗрдВ рд╕реЗ рддреАрди рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдореЗрдВ рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реИрдВред рдЗрди рдЪреБрдиреМрддрд┐рдпреЛрдВ рдХрд╛ рд╡рд┐рд╡рд░рдг, рд╕рд╛рде рд╣реА рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рд╕реЗ рдЙрдиреНрд╣реЗрдВ рдмрд╛рд╣рд░ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдирд┐рдореНрди рдЖрд▓реЗрдЦ рдореЗрд▓рдмреЙрдХреНрд╕реЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдЧрд╛ред

рд▓реЗрдЦрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ: рдХреЙрд▓рд┐рди рд╡рд╛рд▓реНрд╕ рддреАрд╕ рд╡рд░реНрд╖реЛрдВ рд╕реЗ рдЗрд▓реЗрдХреНрдЯреНрд░реЙрдирд┐рдХреНрд╕ рдЙрджреНрдпреЛрдЧ рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЕрдкрдиреЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдордп рдХреЛ рдлрд░реНрдорд╡реЗрдпрд░ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рд╡рд╣ рдЕрдм рдореЗрдВрдЯрд░ рдПрдВрдмреЗрдбреЗрдб (рдореЗрдВрдЯрд░ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХрд╛ рдПрдХ рдкреНрд░рднрд╛рдЧ) рдореЗрдВ рдПрдХ рдлрд░реНрдорд╡реЗрдпрд░ рдЗрдВрдЬреАрдирд┐рдпрд░ рд╣реИред рдХреЙрд▓рд┐рди рд╡реЙрд▓реНрд╕ рдЕрдХреНрд╕рд░ рд╕рдореНрдореЗрд▓рдиреЛрдВ рдФрд░ рд╕реЗрдорд┐рдирд╛рд░реЛрдВ рдореЗрдВ рдмреЛрд▓рддреЗ рд╣реИрдВ, рдХрдИ рддрдХрдиреАрдХреА рд▓реЗрдЦреЛрдВ рдХреЗ рд▓реЗрдЦрдХ рдФрд░ рдлрд░реНрдорд╡реЗрдпрд░ рдкрд░ рджреЛ рдХрд┐рддрд╛рдмреЗрдВред рдмреНрд░рд┐рдЯреЗрди рдореЗрдВ рд░рд╣рддрд╛ рд╣реИред рдХреЙрд▓рд┐рди рдХреЗ рдкреЗрд╢реЗрд╡рд░ рдмреНрд▓реЙрдЧ , рдИ-рдореЗрд▓: colin_walls@mentor.comред

Source: https://habr.com/ru/post/hi429588/


All Articles