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



рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо рдХрддрд╛рд░реЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдВрдЧреЗред

рдорд╛рдзреНрдпрдорд┐рдХ рдХрддрд╛рд░ рд╕реЗрд╡рд╛рдПрдБ


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

рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ:

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

рдХрддрд╛рд░ рд░реАрд╕реЗрдЯ рдХрд░реЗрдВ


рдпрд╣ рдПрдкреАрдЖрдИ рдХреЙрд▓ рдХрддрд╛рд░ рдХреЛ рдЙрд╕рдХреЗ рдореВрд▓, рдЕрдкреНрд░рдпреБрдХреНрдд рд░рд╛рдЬреНрдп рдореЗрдВ рд░реАрд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред рдХрддрд╛рд░ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХреЛрдИ рднреА рд╕рдВрджреЗрд╢ рдЦреЛ рдЬрд╛рдПрдЧрд╛ред рдХрддрд╛рд░ рдореЗрдВ рд░реЛрдХрд╛ рдЧрдпрд╛ рдХреЛрдИ рднреА рдХрд╛рд░реНрдп NUSE_QUEUE_WAS_RESET рдХреЛрдб рдХреЗ рд╕рд╛рде рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рд╣реЛрдЧрд╛ред

рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдЖрд░рдЯреАрдУрдПрд╕ рдореЗрдВ рдХрддрд╛рд░ рд░реАрд╕реЗрдЯ рдХреЙрд▓
рд╕реЗрд╡рд╛ рдХреЙрд▓ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк:
рд╕реНрдерд┐рддрд┐ NU_Reset_Queue (NU_QUEUE * рдХрддрд╛рд░);

рд╡рд┐рдХрд▓реНрдк:
рдХрддрд╛рд░ - рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рдХрддрд╛рд░ рдирд┐рдпрдВрддреНрд░рдг рдмреНрд▓реЙрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реВрдЪрдХред

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

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

рд╕реЗрд╡рд╛ рдХреЙрд▓ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк:
рд╕реНрдерд┐рддрд┐ NUSE_Queue_Reset (NUSE_QUEUE рдХрддрд╛рд░);

рд╡рд┐рдХрд▓реНрдк:
рдХрддрд╛рд░ - рдбрдВрдк рдХреА рдЧрдИ рдХрддрд╛рд░ рдХрд╛ рд╕реВрдЪрдХрд╛рдВрдХ (рдЖрдИрдбреА)ред

рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп:
NUSE_SUCCESS - рдХреЙрд▓ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рдерд╛;
NUSE_INVALID_QUEUE - рдЕрдорд╛рдиреНрдп рдХрддрд╛рд░ рд╕реВрдЪрдХрд╛рдВрдХред

рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдореЗрдВ рдХрддрд╛рд░ рд░реАрд╕реЗрдЯ рд▓рд╛рдЧреВ рдХрд░рдирд╛
NUSE_Queue_Reset рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдХреЛрдб (рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж) рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИред рдХрддрд╛рд░ рдХреЗ рд╕рд┐рд░ рдФрд░ рдкреВрдВрдЫ рдХреЗ рд╕реВрдЪрдХрд╛рдВрдХ, рд╕рд╛рде рд╣реА рдХрддрд╛рд░ рдореЗрдВ рд╕рдВрджреЗрд╢ рдХрд╛рдЙрдВрдЯрд░ рдХреЛ рдПрдХ рд╢реВрдиреНрдп рдорд╛рди рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдпрджрд┐ рдХрд╛рд░реНрдп рд▓реЙрдХрд┐рдВрдЧ рд╕рдХреНрд░рд┐рдп рд╣реИ, рддреЛ рдирд┐рд▓рдВрдмрд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЛрдб рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ:

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

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

рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛


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

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

STATUS NU_Queue_Information (NU_QUEUE * рдХрддрд╛рд░, CHAR * рдирд╛рдо, VOID ** start_address, UNSIGNED * queue_size, UNSIGNED * рдЙрдкрд▓рдмреНрдз, UNINIGNED * рд╕рдВрджреЗрд╢, рд╡рд┐рдХрд▓реНрдк * message_type, UNSIGNED * message_size, OPTION * * * рд╕рдВрджреЗрд╣ * рд╕рдВрджреЗрд╣ *

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

рдХрддрд╛рд░ - рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рдХрддрд╛рд░ рдирд┐рдпрдВрддреНрд░рдг рдмреНрд▓реЙрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реВрдЪрдХ;
рдирд╛рдо - рдХрддрд╛рд░ рдореЗрдВ рд╕рдВрджреЗрд╢ рдХреЗ рдирд╛рдо рдХреЗ рд▓рд┐рдП 8-рд╡рд░реНрдг рдХреНрд╖реЗрддреНрд░ рдХреЗ рд▓рд┐рдП рд╕реВрдЪрдХ;
start_address - рдПрдХ рдкреЙрдЗрдВрдЯрд░ рдХреЛ рдПрдХ рдкреЙрдЗрдВрдЯрд░ рдЬрд┐рд╕рдореЗрдВ рдХрддрд╛рд░ рдбреЗрдЯрд╛ рдХреНрд╖реЗрддреНрд░ рдХреА рд╢реБрд░реБрдЖрдд рдХрд╛ рдкрддрд╛ рд▓рд┐рдЦрд╛ рдЬрд╛рдПрдЧрд╛;
queue_size - рдХрддрд╛рд░ рдореЗрдВ UNSIGNED рддрддреНрд╡реЛрдВ рдХреА рдХреБрд▓ рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЪрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реВрдЪрдХ;
рдЙрдкрд▓рдмреНрдз - рдХрддрд╛рд░ рдореЗрдВ рдЙрдкрд▓рдмреНрдз UNSIGNED рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЪрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реВрдЪрдХ;
рд╕рдВрджреЗрд╢ - рдХрддрд╛рд░ рдореЗрдВ рд╕рдВрджреЗрд╢реЛрдВ рдХреА рд╡рд░реНрддрдорд╛рди рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЪрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реВрдЪрдХ;
message_type - рдХрддрд╛рд░ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЪрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реВрдЪрдХред рдорд╛рдиреНрдп рдореВрд▓реНрдп NU_FIXED_SIZE рдФрд░ NU_VARIABLE рд╣реИрдВ ;
message_size - рдХрддрд╛рд░ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрджреЗрд╢ рдореЗрдВ UNSIGNED рдбреЗрдЯрд╛ рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЪрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реВрдЪрдХред рдпрджрд┐ рдХрддрд╛рд░ рдЪрд░-рд▓рдВрдмрд╛рдИ рд╕рдВрджреЗрд╢реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреА рд╣реИ, рддреЛ рдпрд╣ рд╕рдВрдЦреНрдпрд╛ рдЕрдзрд┐рдХрддрдо рд╕рдВрджреЗрд╢ рд▓рдВрдмрд╛рдИ рдЗрдВрдЧрд┐рдд рдХрд░рддреА рд╣реИ;
Suspend_type - рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдирд┐рд▓рдВрдмрди рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЪрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реВрдЪрдХред рдорд╛рдиреНрдп рдореВрд▓реНрдп NU_FIFO рдФрд░ NU_PRIORITY рд╣реИрдВ ;
task_waiting - рдЗрд╕ рдХрддрд╛рд░ рдореЗрдВ рдирд┐рд▓рдВрдмрд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЪрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реВрдЪрдХ;
first_task - рдкреЙрдЗрдВрдЯрд░ рдкреЙрдЗрдВрдЯрд░ рдХреЛ рдкреЙрдЗрдВрдЯрд░, рдЬрд┐рд╕рдореЗрдВ рдкрд╣рд▓реЗ рд╕рд╕реНрдкреЗрдВрдб рдХрд┐рдП рдЧрдП рдЯрд╛рд╕реНрдХ рдХрд╛ рдкреЙрдЗрдВрдЯрд░ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИред

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

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

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

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

рд╕реНрдерд┐рддрд┐ NUSE_Queue_Information (NUSE_QUEUE рдХрддрд╛рд░, ADDR * start_address, U8 * queue_size, U8 * рдЙрдкрд▓рдмреНрдз, U8 * рд╕рдВрджреЗрд╢, U8 * рдХрд╛рд░реНрдп_рдХрд░рдг, NUSE_TASK * first_task);

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

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

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

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

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

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

 *start_address = NUSE_Queue_Data[queue]; *queue_size = NUSE_Queue_Size[queue]; *available = NUSE_Queue_Size[queue] - NUSE_Queue_Items[queue]; *messages = NUSE_Queue_Items[queue]; #if NUSE_BLOCKING_ENABLE *tasks_waiting = NUSE_Queue_Blocking_Count[queue]; if (NUSE_Queue_Blocking_Count[queue] != 0) { U8 index; for (index=0; index<NUSE_TASK_NUMBER; index++) { if ((LONIB(NUSE_Task_Status[index]) == NUSE_QUEUE_SUSPEND) && (HINIB(NUSE_Task_Status[index]) == queue)) { *first_task = index; break; } } } else { *first_task = 0; } #else *tasks_waiting = 0; *first_task = 0; #endif 

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

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


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

рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдЖрд░рдЯреАрдУрдПрд╕ рдореЗрдВ рдХреНрдпреВ рдХрд╛рдЙрдВрдЯрд░ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛
рд╕реЗрд╡рд╛ рдХреЙрд▓ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк:
UNSIGNED NU_Established_Queues (VOID);

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

рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп:
рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдмрдирд╛рдИ рдЧрдИ рдХрддрд╛рд░реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ред

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

рд╕реЗрд╡рд╛ рдХреЙрд▓ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк:
U8 NUSE_Queue_Count (рд╢реВрдиреНрдп);

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

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

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

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


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

рд░реИрдо рдореЗрдВ рдХрд░реНрдиреЗрд▓ рдбреЗрдЯрд╛


рдЗрд╕ рдбреЗрдЯрд╛ рдореЗрдВ рдирд┐рдореНрди рд╕рдВрд░рдЪрдирд╛ рд╣реИ:

NUSE_Queue_Head [] U8 рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрдХреЗрдд рдХрд╛ рдПрдХ рд╕рд░рдгреА рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХреА рдЧрдИ рдХрддрд╛рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рд╣реИ, рдФрд░ рд╕рдВрджреЗрд╢ рдХрддрд╛рд░ рдХреЗ рдкреНрд░рдореБрдЦ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред NUSE_Queue_Data [] (рдиреАрдЪреЗ рджреЗрдЦреЗрдВ) рдореЗрдВ рдПрдХ рдкрддрд╛ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ;
NUSE_Queue_Tail [] U8 рдкреНрд░рдХрд╛рд░ рдХреА рдПрдХ рд╕рд░рдгреА рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХреА рдЧрдИ рдкреНрд░рддреНрдпреЗрдХ рдХрддрд╛рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рд╣реИ, рдФрд░ рд╕рдВрджреЗрд╢ рдХрддрд╛рд░ рдХреА рдкреВрдВрдЫ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред NUSE_Queue_Data [] (рдиреАрдЪреЗ рджреЗрдЦреЗрдВ) рдореЗрдВ рдПрдХ рдкрддрд╛ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ;
NUSE_Queue_Items [] U8 рдкреНрд░рдХрд╛рд░ рдХреА рдПрдХ рд╕рд░рдгреА рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХреА рдЧрдИ рдХрддрд╛рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рд╣реИ, рдФрд░ рдХрддрд╛рд░ рдореЗрдВ рд╕рдВрджреЗрд╢реЛрдВ рдХрд╛ рдПрдХ рдХрд╛рдЙрдВрдЯрд░ рд╣реИред рдЗрд╕ рдбреЗрдЯрд╛ рдХреЛ рдмреЗрдорд╛рдиреА рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпреЗ рдореВрд▓реНрдп рдХрддрд╛рд░ рдХреА рд╢реБрд░реБрдЖрдд рдФрд░ рдЕрдВрдд рдХреЗ рдЕрдиреБрдХреНрд░рдорд┐рдд рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХрд╛рдЙрдВрдЯрд░ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдирд╛ рдХреЛрдб рдХреЛ рд╕рд░рд▓ рдХрд░рддрд╛ рд╣реИ;
NUSE_Queue_Blocking_Count [] - рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ U8 рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдкрд░ рдирд┐рд▓рдВрдмрд┐рдд рдХрд┐рдП рдЧрдП рдХрд╛рд░реНрдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдХрд╛рдЙрдВрдЯрд░ рд╣реЛрддреЗ рд╣реИрдВред рдпрд╣ рд╕рд░рдгреА рдХреЗрд╡рд▓ рддрдм рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИ рдЬрдм рдХрд╛рд░реНрдп рд▓реЙрдХ рд╕рдорд░реНрдерди рд╕рдХреНрд░рд┐рдп рд╣реЛрддрд╛ рд╣реИред

рдЗрди рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЛ NUSE_Init_Queue () рдлрд╝рдВрдХреНрд╢рди рджреНрд╡рд╛рд░рд╛ рд╢реВрдиреНрдп рд╕реЗ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рддрд░реНрдХрд╕рдВрдЧрдд рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕рднреА рдХрддрд╛рд░реЗрдВ рдЦрд╛рд▓реА рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИрдВ (рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИрдВ)ред

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

 RAM U8 NUSE_Queue_Head[NUSE_QUEUE_NUMBER]; RAM U8 NUSE_Queue_Tail[NUSE_QUEUE_NUMBER]; RAM U8 NUSE_Queue_Items[NUSE_QUEUE_NUMBER]; #if NUSE_BLOCKING_ENABLE RAM U8 NUSE_Queue_Blocking_Count[NUSE_QUEUE_NUMBER]; #endif 

RAM рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбреЗрдЯрд╛


рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рддреНрдпреЗрдХ рдХрддрд╛рд░ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд░реИрдо рдХреНрд╖реЗрддреНрд░ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдХреЗ рдЖрдХрд╛рд░ рдореЗрдВ ADDR рдкреНрд░рдХрд╛рд░ рдХреА рдПрдХ рд╕рд░рдгреА рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдЬрд┐рд╕рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд░рд┐рдХреЙрд░реНрдб рдХрддрд╛рд░ рдореЗрдВ рдПрдХ рд╕рдВрджреЗрд╢ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИ

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


рдЗрд╕ рдбреЗрдЯрд╛ рдореЗрдВ рдирд┐рдореНрди рд╕рдВрд░рдЪрдирд╛ рд╣реИ:

NUSE_Queue_Data [] - рдкреНрд░рдХрд╛рд░ рдХреА рдПрдХ рд╕рд░рдгреА ADDR , рдкреНрд░рддреНрдпреЗрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХреА рдЧрдИ рдХрддрд╛рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рд╣реИ рдФрд░ рдХрддрд╛рд░ рдХреЗ рдбреЗрдЯрд╛ рдХреНрд╖реЗрддреНрд░ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддреА рд╣реИ (рджреЗрдЦреЗрдВред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд░реИрдо рдбреЗрдЯрд╛);
NUSE_Queue_Size [] - рдкреНрд░рдХрд╛рд░ U8 рдХреА рдПрдХ рд╕рд░рдгреА, рдкреНрд░рддреНрдпреЗрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХреА рдЧрдИ рдХрддрд╛рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рд╣реИ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдХреЛ рдкреНрд░рд╛рдкреНрдд рд╣реЛ рд╕рдХрдиреЗ рд╡рд╛рд▓реЗ рд╕рдВрджреЗрд╢реЛрдВ рдХреА рдЕрдзрд┐рдХрддрдо рд╕рдВрдЦреНрдпрд╛ рджрд┐рдЦрд╛рддреА рд╣реИред

рдпреЗ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдПрдБ nuse_config.c рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдШреЛрд╖рд┐рдд (рдЖрд░рдВрднрд┐рдХ) рдХреА рдЧрдИ рд╣реИрдВ:

 ROM ADDR *NUSE_Queue_Data[NUSE_QUEUE_NUMBER] = { /* addresses of queue data areas ------ */ }; ROM U8 NUSE_Queue_Size[NUSE_QUEUE_NUMBER] = { /* queue sizes ------ */ }; 

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


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

рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЗрдВ рд╕рднреА рдХрддрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП ROM (рдмрд╛рдЗрдЯреНрд╕) рдореЗрдВ рдбреЗрдЯрд╛ рдХреА рдорд╛рддреНрд░рд╛ рдХреА рдЧрдгрдирд╛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ:
NUSE_QUEUE_NUMBER * (рдЖрдХрд╛рд░ (ADDR) + 1)

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

рдпрджрд┐ рд▓реЙрдХ рдЕрдХреНрд╖рдо рд╣реИ:
NUSE_QUEUE_NUMBER * 4

рдХрддрд╛рд░ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЗ рд╕рд╛рде рдХрддрд╛рд░ рдХреЗ рд▓рд┐рдП RAM (рдмрд╛рдЗрдЯреНрд╕) рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбреЗрдЯрд╛ рдХреА рдорд╛рддреНрд░рд╛:
NUSE_Queue_Size [рдХрддрд╛рд░] * sizeof (ADDR)

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


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

рдХрддрд╛рд░ рдирд┐рд░реНрдорд╛рдг


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

рд╕реЗрд╡рд╛ рдХреЙрд▓ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк:
STATUS NU_Create_Queue (NU_QUEUE * рдХрддрд╛рд░, рдЪрд╛рд░ * рдирд╛рдо, VOID * start_address, UNSIGNED queue_size, рд╡рд┐рдХрд▓реНрдк message_type, UNSEDED message_size, рд╡рд┐рдХрд▓реНрдк Suspend_type);

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

рдХрддрд╛рд░ - рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рдПрдХ рдирд┐рдпрдВрддреНрд░рдг рдЗрдХрд╛рдИ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реВрдЪрдХ; рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдиреНрдп рдПрдкреАрдЖрдИ рдХреЙрд▓ рдореЗрдВ рдХрддрд╛рд░ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ;
рдирд╛рдо - 7-рд╡рд░реНрдг рдХрддрд╛рд░ рдирд╛рдо рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реВрдЪрдХ рдПрдХ рд╢реВрдиреНрдп рд╕рдорд╛рдкреНрддрд┐ рдмрд╛рдЗрдЯ рдХреЗ рд╕рд╛рде;
start_address - рдХрддрд╛рд░ рдХреА рд╢реБрд░реБрдЖрдд рдХрд╛ рдкрддрд╛;
message_type - рдХрддрд╛рд░ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╕рдВрджреЗрд╢ рдкреНрд░рдХрд╛рд░ред рдпрд╣ рдорд╛рди NU_FIXED_SIZE рдпрд╛ NU_VARIABLE_SIZE рд▓реЗ рд╕рдХрддрд╛ рд╣реИ;
message_size - рдпрджрд┐ рдХрддрд╛рд░ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд▓рдВрдмрд╛рдИ рдХреЗ рд╕рдВрджреЗрд╢реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреА рд╣реИ, рддреЛ рдпрд╣ рдкреИрд░рд╛рдореАрдЯрд░ рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрджреЗрд╢ рдХреА рд╕рдЯреАрдХ рд▓рдВрдмрд╛рдИ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЕрдиреНрдпрдерд╛, рдпрджрд┐ рдХрддрд╛рд░ рдЪрд░ рд▓рдВрдмрд╛рдИ рдХреЗ рд╕рдВрджреЗрд╢реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреА рд╣реИ, рддреЛ рдпрд╣ рдорд╛рди рдЕрдзрд┐рдХрддрдо рд╕рдВрджреЗрд╢ рд▓рдВрдмрд╛рдИ рд╣реИ;
Suspend_type - рдХрддрд╛рд░ рдореЗрдВ рдирд┐рд▓рдВрдмрд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдорд╛рдиреЛрдВ рдХреЛ NU_FIFO рдФрд░ NU_PRIORITY рд▓реЗ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХреНрд░рдорд╢рдГ FIFO рд╕рд┐рджреНрдзрд╛рдВрдд (First-In-First-Out) рдпрд╛ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдирд┐рд▓рдВрдмрди рдХреА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХрд╛ рд╕рд┐рджреНрдзрд╛рдВрддред

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

NU_SUCCESS - рдХреЙрд▓ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рдерд╛;
NU_INVALID_QUEUE - рдХреНрдпреВ рдкреЙрдЗрдВрдЯрд░ рдХреЛ рдХреНрдпреВ рдХрдВрдЯреНрд░реЛрд▓ рдХрдВрдЯреНрд░реЛрд▓ рдмреНрд▓реЙрдХ ( NULL ), рдпрд╛ рдкреЙрдЗрдВрдЯрд░ рдкрд╣рд▓реЗ рд╕реЗ рдЙрдкрдпреЛрдЧ рдореЗрдВ рд╣реИ;
NU_INVALID_MEMORY - start_address рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЕрдорд╛рдиреНрдп рдореЗрдореЛрд░реА рдХреНрд╖реЗрддреНрд░;
NU_INVALID_MESSAGE - рдЕрдорд╛рдиреНрдп message_type рдкреИрд░рд╛рдореАрдЯрд░;
NU_INVALID_SIZE - рдХрддрд╛рд░ рдЗрд╕ рд▓рдВрдмрд╛рдИ рдХреЗ рд╕рдВрджреЗрд╢реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреА рд╣реИ, рдпрд╛ рдХрддрд╛рд░ рдХрд╛ рдЖрдХрд╛рд░ рдФрд░ / рдпрд╛ рд╕рдВрджреЗрд╢ рдХреА рд▓рдВрдмрд╛рдИ 0 рд╣реИ;
NU_INVALID_SUSPEND - рдЕрдорд╛рдиреНрдп рд╕рд╕реНрдкреЗрдВрдб_рдЯрд╛рдЗрдк рдкреИрд░рд╛рдореАрдЯрд░ред

рдХрддрд╛рд░ рд╣рдЯрд╛рдПрдВ


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

рд╕реЗрд╡рд╛ рдХреЙрд▓ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк:
рд╕реНрдерд┐рддрд┐ NU_Delete_Queue (NU_QUEUE * рдХрддрд╛рд░);

рд╡рд┐рдХрд▓реНрдк:
рдХрддрд╛рд░ - рдХрддрд╛рд░ рдирд┐рдпрдВрддреНрд░рдг рдмреНрд▓реЙрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реВрдЪрдХред

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

рдХрддрд╛рд░ рдХреЗ рд╕рдВрдХреЗрдд


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

рд╕реЗрд╡рд╛ рдХреЙрд▓ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк:
UNSIGNED NU_Queue_Pointers (NU_QUEUE ** рдкреЙрдЗрдВрдЯрд░_рд▓рд┐рд╕реНрдЯ, UNSIGNED рдореИрдХреНрд╕рд┐рдордо_рдкреЙрдЗрдВрдЯрд░реНрд╕);

рд╡рд┐рдХрд▓реНрдк:
рдкреЙрдЗрдВрдЯрд░_рд▓рд┐рд╕реНрдЯ - рдкреЙрдЗрдВрдЯрд░реНрд╕ рдСрдлрд╝ рд╡реНрдпреВ рдкреЙрдЗрдВрдЯреНрд╕ NU_QUEUE ред рдЗрд╕ рд╕рд░рдгреА рдХреЛ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдмрдирд╛рдИ рдЧрдИ рдХрддрд╛рд░реЛрдВ рд╕реЗ рднрд░рд╛ рдЬрд╛рдПрдЧрд╛;
рдЕрдзрд┐рдХрддрдо_ рдкреЙрдЗрдВрдЯрд░реНрд╕ - рд╕рд░рдгреА рдореЗрдВ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреА рдЕрдзрд┐рдХрддрдо рд╕рдВрдЦреНрдпрд╛ред

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

рдХрддрд╛рд░рдмрджреНрдз рдХрд░рдирд╛ (рдХрддрд╛рд░ рдореЗрдВ рдкреНрд░рд╕рд╛рд░рдг)


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

рд╕реЗрд╡рд╛ рдХреЙрд▓ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк:
STATUS NU_Broadcast_To_Queue (NU_QUEUE * рдХрддрд╛рд░, VOID * рд╕рдВрджреЗрд╢, UNSIGNED рдЖрдХрд╛рд░, UNSIGNED рд╕рд╕реНрдкреЗрдВрдб);

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

рдХрддрд╛рд░ - рдХрддрд╛рд░ рдирд┐рдпрдВрддреНрд░рдг рдмреНрд▓реЙрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реВрдЪрдХ;
рд╕рдВрджреЗрд╢ - рдкреНрд░реЗрд╖рд┐рдд рд╕рдВрджреЗрд╢ рдХреЗ рд▓рд┐рдП рд╕реВрдЪрдХ;
рдЖрдХрд╛рд░ - рд╕рдВрджреЗрд╢ рдореЗрдВ UNSIGNED рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ред рдпрджрд┐ рдХрддрд╛рд░ рдЪрд░-рд▓рдВрдмрд╛рдИ рд╕рдВрджреЗрд╢реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреА рд╣реИ, рддреЛ рдпрд╣ рдкреИрд░рд╛рдореАрдЯрд░ рдХрддрд╛рд░ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╕рдВрджреЗрд╢ рд▓рдВрдмрд╛рдИ рдХреЗ рдмрд░рд╛рдмрд░ рдпрд╛ рдЙрд╕рд╕реЗ рдХрдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдХрддрд╛рд░ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд▓рдВрдмрд╛рдИ рдХреЗ рд╕рдВрджреЗрд╢реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреА рд╣реИ, рддреЛ рдпрд╣ рдкреИрд░рд╛рдореАрдЯрд░ рдХрддрд╛рд░ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╕рдВрджреЗрд╢ рдХреА рд▓рдВрдмрд╛рдИ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП;
рд╕рд╕реНрдкреЗрди - рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдХреЙрд▓рд┐рдВрдЧ рдХрд╛рд░реНрдп рдХреЛ рдирд┐рд▓рдВрдмрд┐рдд рдХрд░рдирд╛ рд╣реИ рдпрджрд┐ рдХрддрд╛рд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рднрд░рд╛ рд╣реБрдЖ рд╣реИред рдпрд╣ NU_NO_SUSPEND , NU_SUSPEND рдпрд╛ рдЯрд╛рдЗрдордЖрдЙрдЯ рдорд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

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

NU_SUCCESS - рдХреЙрд▓ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рдерд╛;
NU_INVALID_QUEUE - рдЕрдорд╛рдиреНрдп рдХрддрд╛рд░ рд╕реВрдЪрдХ;
NU_INVALID_POINTER - рдПрдХ рд╕рдВрджреЗрд╢ ( NULL ) рдХреЗ рд▓рд┐рдП рдЕрд╢рдХреНрдд рд╕реВрдЪрдХ;
NU_INVALID_SIZE - рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рдВрджреЗрд╢ рд▓рдВрдмрд╛рдИ рдХрддрд╛рд░ рдмрдирд╛рддреЗ рд╕рдордп рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд▓рдВрдмрд╛рдИ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рдирд╣реАрдВ рд╣реИ;
NU_INVALID_SUSPEND - рдХрд╛рд░реНрдп рд╕реЗ рдЬреБрдбрд╝реЗ рдирд╣реАрдВ рдереНрд░реЗрдб рд╕реЗ рдХрд┐рд╕реА рдХрд╛рд░реНрдп рдХреЛ рд░реЛрдХрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕;
NU_QUEUE_FULL - рд╕рдВрджреЗрд╢ рдХреЗ рд▓рд┐рдП рдХрддрд╛рд░ рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рд╕реНрдерд╛рди рдирд╣реАрдВ рд╣реИ;
NU_TIMEOUT - рд╕рдордп рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рднреА рдХрддрд╛рд░ рднрд░реА рд╣реБрдИ рд╣реИ;
NU_QUEUE_DELETED - рдХрд╛рд░реНрдп рд╕реНрдердЧрд┐рдд рд╣реЛрдиреЗ рдкрд░ рдХрддрд╛рд░ рд╣рдЯрд╛ рджреА рдЧрдИ рдереА;
NU_QUEUE_RESET - рдХрд╛рд░реНрдп рд╕реНрдердЧрд┐рдд рд╣реЛрдиреЗ рдкрд░ рдХрддрд╛рд░ рд░реАрд╕реЗрдЯ рдХрд░ рджреА рдЧрдИ рдереАред

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


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

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


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

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

рд╕рдВрджреЗрд╢ рдХрд╛ рдЖрдХрд╛рд░ рдФрд░ рдкреНрд░рдХрд╛рд░


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

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

рдХрддрд╛рд░ рдХрд╛ рдЖрдХрд╛рд░


рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдореЗрдВ, рдХрддрд╛рд░ рдореЗрдВ рд╕рдВрджреЗрд╢реЛрдВ рдХреА рдЕрдзрд┐рдХрддрдо рд╕рдВрдЦреНрдпрд╛ 256 рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕рднреА рдЪрд░ рдФрд░ рд╕реНрдерд┐рд░рд╛рдВрдХ U8 рдкреНрд░рдХрд╛рд░ рдХреЗ рд╣реИрдВред рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдЖрд░рдЯреАрдУрдПрд╕ рдХреА рдРрд╕реА рдХреЛрдИ рд╕реАрдорд╛ рдирд╣реАрдВ рд╣реИред

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


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

рдЕрдЧрд▓рд╛ рд▓реЗрдЦ рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рдЪреИрдирд▓реЛрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░реЗрдЧрд╛ред

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

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


All Articles