
рдПрдХ рд╕рдорд╕реНрдпрд╛ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦреЛрдВ рдореЗрдВ рдкреЗрд╢ рдХреА рдЧрдИ рдереАред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдПрдХ рдХрд╛рд░реНрдп рдХреЗрд╡рд▓ рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИ рдЬрд┐рд╕реЗ рдкреНрд░реЛрд╕реЗрд╕рд░ рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдореЗрдВ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП) рдпрд╛ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╕реНрд╡рд┐рдЪрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░, рдПрдХ рдХрд╛рд░реНрдп рдХрд╛ рдЕрдкрдирд╛ рд╕реНрдЯреИрдХ рд╣реЛрддрд╛ рд╣реИред
рдмреЗрд╢рдХ, рд░рди рдЯреВ рдХрдВрдкреНрд▓реАрд╢рди (рдЖрд░рдЯреАрд╕реА) рд╢реЗрдбреНрдпреВрд▓рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рд╕рдВрджрд░реНрдн рд╕реНрд╡рд┐рдЪрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдХрд╛рд░реНрдп рдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд╛рдЙрдВрдЯрд░ (рдХреЛрдб рдПрдВрдЯреНрд░реА рдкреЙрдЗрдВрдЯ) рдХрд╛ рдореВрд▓реНрдп рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдХрд╛рд░реНрдп рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдореЗрдВ рдХреЛрдб рд╣реА рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИред рдХрд╛рд░реНрдп рдХреЛ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдпрд╣ рдЗрд╕рдХрд╛ рдирд╣реАрдВ рд╣реИред рдХрд╛рд░реНрдп рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░реНрдп рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХрдИ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рднреА рдХреЛрдб рд╕рд╛рдЭрд╛ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рд╕рд╛рдорд╛рдиреНрдп рдХреЛрдб рд▓рдЧрднрдЧ рд╣рдореЗрд╢рд╛ рд▓рд┐рдЦрд┐рдд рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд▓рд┐рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЕрдзрд┐рдХрд╛рдВрд╢ рдХрдВрдкрд╛рдЗрд▓рд░ рдЖрд╕рд╛рдиреА рд╕реЗ рдЗрд╕ рдХреЛрдб рдХреЗ рд╕рд╛рде рд╕рд╛рдордирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рджреЗрдЦрднрд╛рд▓ рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдорд▓реНрдЯреАрдЯрд╛рд╕реНрдХрд┐рдВрдЧ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рдЗрд╕ рддрд░рд╣ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдХреБрдЫ рдирд┐рдпрдореЛрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреА рд╣реИ, рдЬрд┐рдиреНрд╣реЗрдВ рдЗрд╕ рдЖрд▓реЗрдЦ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдФрд░ рдПрдкреАрдЖрдИ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╕рдордп рдкрд╛рд▓рди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореИрдВ рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдореЗрдВ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╡рд┐рдиреНрдпрд╛рд╕ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░реЗрдЧрд╛ рдФрд░ рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдФрд░ рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдЖрд░рдЯреАрдУрдПрд╕ рджреЛрдиреЛрдВ рдореЗрдВ рдХрд╛рд░реНрдпреЛрдВ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рд╕реЗрд╡рд╛ рдХреЙрд▓ (рдПрдкреАрдЖрдИ рдХреЙрд▓) рдХрд╛ рд╡рд┐рд╕реНрддреГрдд рдЕрд╡рд▓реЛрдХрди рд╢реБрд░реВ рдХрд░реВрдВрдЧрд╛ред
рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ:
рдЕрдиреБрдЪреНрдЫреЗрдж # 10 рд╕рдордпрдмрджреНрдзрдХ: рдЙрдиреНрдирдд рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдФрд░ рд╕рдВрджрд░реНрдн рд╕рдВрд░рдХреНрд╖рдгрдЕрдиреБрдЪреНрдЫреЗрдж # 9 рд╕рдордпрдмрджреНрдзрдХ: рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдЕрдиреБрдЪреНрдЫреЗрдж # 8 рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ: рдЖрдВрддрд░рд┐рдХ рдбрд┐рдЬрд╛рдЗрди рдФрд░ рдкрд░рд┐рдирд┐рдпреЛрдЬрдирдЕрдиреБрдЪреНрдЫреЗрдж # 7 рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ: рдкрд░рд┐рдЪрдпрдЕрдиреБрдЪреНрдЫреЗрдж # 6 рдЕрдиреНрдп RTOS рд╕реЗрд╡рд╛рдПрдВрдЕрдиреБрдЪреНрдЫреЗрдж # рел рдХрд╛рд░реНрдп рд╕рд╣рднрд╛рдЧрд┐рддрд╛ рдФрд░ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рдирдЕрдиреБрдЪреНрдЫреЗрдж # 4 рдХрд╛рд░реНрдп, рд╕рдВрджрд░реНрдн рд╕реНрд╡рд┐рдЪрд┐рдВрдЧ, рдФрд░ рд╡реНрдпрд╡рдзрд╛рдирдЕрдиреБрдЪреНрдЫреЗрдж # рей рдХрд╛рд░реНрдп рдФрд░ рдпреЛрдЬрдирд╛рдЕрдиреБрдЪреНрдЫреЗрдж # 2 рдЖрд░рдЯреАрдУрдПрд╕: рд╕рдВрд░рдЪрдирд╛ рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЛрдб
рдЕрдиреБрдЪреНрдЫреЗрдж # 1ред рдЖрд░рдЯреАрдУрдПрд╕: рдкрд░рд┐рдЪрдпред
рдХрд╛рд░реНрдп рд╡рд┐рдиреНрдпрд╛рд╕
рдХрд╛рд░реНрдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛
рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдореЗрдВ, рдХрд╛рд░реНрдп рд╡рд┐рдиреНрдпрд╛рд╕ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ
nuse_config.h рдореЗрдВ
#define рдирд┐рд░реНрджреЗрд╢реЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕рдВрдЪрд╛рд▓рд┐рдд рд╣реЛрддрд╛ рд╣реИред рдореБрдЦреНрдп рдкреИрд░рд╛рдореАрдЯрд░
NUSE_TASK_NUMBER рдЙрди рдХрд╛рд░реНрдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди 1 рд╣реИ (рдпрд╛рдиреА, рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди рдПрдХ рдХрд╛рд░реНрдп), рдФрд░ рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЕрдзрд┐рдХрддрдо рдореВрд▓реНрдп 16 рд╣реИред рдПрдХ рдЧрд▓рдд рдорд╛рди рдПрдХ рд╕рдВрдХрд▓рди рддреНрд░реБрдЯрд┐ рдХреЛ рдЬрдиреНрдо рджреЗрдЧрд╛, рдЬреЛ
nuse_config_chech.h рдореЗрдВ рдЬрд╛рдБрдЪ рдХрд░рдХреЗ рдЙрддреНрдкрдиреНрди рд╣реЛрдЧрд╛ (рдпрд╣
nuse_config.c рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ) рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд),
# рдирд┐рд░реНрджреЗрд╢ рдирд┐рд░реНрджреЗрд╢
рдЖрдЧ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрдирдХрд╛ рдЖрдХрд╛рд░ рдЗрд╕рдХреЗ рдореВрд▓реНрдп рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред
рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдореЗрдВ, рдЖрд░рдЯреАрд╕реА рд╢реЗрдбреНрдпреВрд▓рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдХрдо рд╕реЗ рдХрдо рдПрдХ рдХрд╛рд░реНрдп рд╣рдореЗрд╢рд╛ рддреИрдпрд╛рд░ рд╣реЛред рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╢реЗрдбреНрдпреВрд▓рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рд╕рдмрд╕реЗ рдХрдо рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╡рд╛рд▓рд╛ рдХрд╛рд░реНрдп рдХрднреА рднреА рдирд┐рд▓рдВрдмрд┐рдд рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдРрд╕реЗ рдХрд╛рд░реНрдп рдХреЛ "рдкреГрд╖реНрдарднреВрдорд┐ рдХрд╛рд░реНрдп" рдорд╛рдирд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдХреБрдЫ рдЕрдиреНрдп рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдХреЛрд░ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ "рд╕рд┐рд╕реНрдЯрдо рдХрд╛рд░реНрдпреЛрдВ" рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╕рднреА 16 рдХрд╛рд░реНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рдпрд╛ рдорд┐рдбрд▓рд╡реЗрдпрд░ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИрдВред
рдПрдкреАрдЖрдИ рдкреИрд░рд╛рдореАрдЯрд░
рдирд╛рднрд┐рдХ рдПрд╕рдИ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдПрдкреАрдЖрдИ рдлрд╝рдВрдХреНрд╢рди (рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЙрд▓)
nuse_config.h рдореЗрдВ
#define рдирд┐рд░реНрджреЗрд╢ рджреНрд╡рд╛рд░рд╛ рд╕рдХреНрд░рд┐рдп рд╣реЛрддрд╛ рд╣реИред рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдпреЗ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИрдВ:
- NUSE_TASK_SUSPEND
- NUSE_TASK_RESUME
- NUSE_TASK_SLEEP
- NUSE_TASK_RELINQUISH
- NUSE_TASK_CURRENT
- NUSE_TASK_CHECK_STACK
- NUSE_TASK_RESET
- NUSE_TASK_INFORMATION
- NUSE_TASK_COUNT
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рдкреИрд░рд╛рдореАрдЯрд░
FALSE рдкрд░ рд╕реЗрдЯ рд╣реЛрддреЗ рд╣реИрдВ, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣рд░ рд╕реЗрд╡рд╛ рдХреЙрд▓ рдХреЛ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░ рджреЗрддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рдХреЛрдб рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрддреЗ рд╣реИрдВред рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЖрд╡рд╢реНрдпрдХ API рдХреЙрд▓ рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рд╡рд░реНрдгреЛрдВ рдХреЛ
TRUE рдкрд░ рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдбрд┐рдлрд╝реЙрд▓реНрдЯ
nuse_config.h рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдПрдХ
рд╕реНрдирд┐рдкреЗрдЯ рд╣реИред

рдпрджрд┐ рдЖрдкрдХрд╛ рдХреЛрдб API рдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╕рдХреНрд░рд┐рдп рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ, рддреЛ рд▓рд┐рдВрдХ рдХрд░рдиреЗ рдХреЗ рджреМрд░рд╛рди рдПрдХ рддреНрд░реБрдЯрд┐ рджрд┐рдЦрд╛рдИ рджреЗрдЧреА рдХреНрдпреЛрдВрдХрд┐ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛрдб рдЖрд╡реЗрджрди рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдерд╛ред
рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдкреИрд░рд╛рдореАрдЯрд░
рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдХреБрдЫ рдХрд╛рд░реНрдп рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реИред рдФрд░ рдлрд┐рд░ рд╕реЗ, рдЖрд╡рд╢реНрдпрдХ рдкреИрд░рд╛рдореАрдЯрд░
nuse_config.h рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╣реИрдВ:
NUSE_SUSPEND_ENABLE рдЖрдкрдХреЛ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд░реЛрдХрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрджрд┐ рдпрд╣ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рдЪреБрдирд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рд╕рднреА рдХрд╛рд░реНрдп рд╢реЗрдбреНрдпреВрд▓рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд▓рдЧрд╛рддрд╛рд░ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╢реЗрдбреНрдпреВрд▓рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдЗрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рдХреНрд░рд┐рдпрдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
NUSE_BLOCKING_ENABLE рдЖрдкрдХреЛ рдХрдИ рдлрд╝рдВрдХреНрд╢рди API рдХреЙрд▓ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдирд┐рд▓рдВрдмрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрджрд┐ рдпрд╣ рд╡рд┐рдХрд▓реНрдк рд╕рдХреНрд░рд┐рдп рд╣реИ, рддреЛ
NUSE_SUSPEND_ENABLE рдХреЛ рднреА рд╕рдХреНрд░рд┐рдп рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
NUSE_INITIAL_TASK_STATE_SUPPORT рдЖрдкрдХреЛ рдХрд╛рд░реНрдп рдХреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реНрдерд┐рддрд┐ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрджрд┐ рдпрд╣ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рдЪреБрдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕реГрдЬрди рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЕрдиреБрд╕реВрдЪрдХ рдореЗрдВ рдЬреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛рд░реНрдп рдХрд╣рддрд╛ рд╣реИ
рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдЖрд░рдЯреАрдУрдПрд╕ рдЙрди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 16 рд╕реЗрд╡рд╛ рдХреЙрд▓ (рдПрдкреАрдЖрдИ) рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ:
рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд╡рд┐рд╡рд░рдг | рдирд╛рднрд┐рдХ рдЖрд░рдЯреАрдУрдПрд╕ | рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ |
---|
рдХрд┐рд╕реА рдХрд╛рд░реНрдп рдХреЛ рд░реЛрдХреЗрдВ | NU_Suspend_Task () | NUSE_Task_Suspend () |
рдХрд╛рд░реНрдп рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ | NU_Resume_Task () | NUSE_Task_Resume () |
рдХрд┐рд╕реА рдХрд╛рд░реНрдп рдХреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреЗ рд▓рд┐рдП рд░реЛрдХреЗрдВ рдЕрд╡рдзрд┐ | NU_Sleep () | NUSE_Task_Sleep () |
рд╕реАрдкреАрдпреВ рдирд┐рдпрдВрддреНрд░рдг рд░рд┐рд▓реАрдЬ | NU_Relinquish () | NUSE_Task_Relinquish () |
рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдп рдХреА рдЖрдИрдбреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ | NU_Current_Task_Pointer () | NUSE_Task_Current () |
рдЙрдкрд▓рдмреНрдз рд╕реНрдЯреИрдХ рдЖрдХрд╛рд░ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдирд╛ | NU_Check_Stack () | NUSE_Task_Check_Stack () |
рдЕрдкреНрд░рдпреБрдХреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдп рд▓реМрдЯреЗрдВ рд░рд╛рдЬреНрдп (рд░реАрд╕реЗрдЯ) | NU_Reset_Task () | NUSE_Task_Reset () |
рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░рдирд╛ | NU_Task_Information () | NUSE_Task_Information () |
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдХрд╛рдЙрдВрдЯрд░ рдХрд╛рд░реНрдп (рдкрд▓ рдореЗрдВ) рдЖрд╡реЗрджрди рдореЗрдВ | NU_Established_Tasks () | NUSE_Task_Count () |
рдПрдкреНрд▓рд┐рдХреЗрд╢рди (рдирд┐рд░реНрдорд╛рдг) рдореЗрдВ рдПрдХ рдирдпрд╛ рдХрд╛рд░реНрдп рдЬреЛрдбрд╝рдирд╛ | NU_Create_Task () | рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ред |
рдХрд┐рд╕реА рдХрд╛рд░реНрдп рдХреЛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реЗ рдирд┐рдХрд╛рд▓рдирд╛ | NU_Delete_Task () | рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ред |
рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреА рдУрд░ рд╕рдВрдХреЗрдд рдХрд░реЗрдВ рдРрдк рдореЗрдВ | NU_Task_Pointers () | рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ред |
рдПрдХреНрд╕рдЯреНрд░реВрдЬрд╝рди рдПрд▓реНрдЧреЛрд░рд┐рдердо рдмрджрд▓реЗрдВ | NU_Change_Preemption () | рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ред |
рдХрд╛рд░реНрдп рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдмрджрд▓реЗрдВ | NU_Change_Priority () | рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ред |
рдХрд┐рд╕реА рдХрд╛рд░реНрдп рдХреЗ рд╕рдордп рдХреА рдорд╛рддреНрд░рд╛ рдмрджрд▓реЗрдВ | NU_Change_Time_Slice () | рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ред |
рдХрд╛рд░реНрдп рдкреВрд░реНрдг рд╣реЛрдирд╛ | NU_Terminate_Task () | рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ред |
рдЙрдкрд░реЛрдХреНрдд рд╕реЗрд╡рд╛ рдХреЙрд▓реЛрдВ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рд╣реИ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдЖрд░рдЯреАрдУрдПрд╕ рдкрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓реЗрдЦреЛрдВ рдореЗрдВ рднреА рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рд╣реИред
рдХрд╛рд░реНрдп рдкреНрд░рдмрдВрдзрди рд╕реЗрд╡рд╛рдПрдВ
рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдмреБрдирд┐рдпрд╛рджреА рд╕рдВрдЪрд╛рд▓рди: рдЕрдирд┐рд╢реНрдЪрд┐рдд рд╕рдордп рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рд░реНрдп рдХреЛ рд░реЛрдХреЗрдВ, рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ, рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╕рдордп рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдп рдХреЛ рд░реЛрдХреЗрдВ, рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛ рдореБрдХреНрдд рдХрд░реЗрдВред рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдЖрд░рдЯреАрдУрдПрд╕ рдФрд░ рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдЗрди рдСрдкрд░реЗрд╢рдиреЛрдВ рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд╛рд░ рдмреБрдирд┐рдпрд╛рджреА рдПрдкреАрдЖрдИ рдХреЙрд▓ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рдирдХрд╛ рдореИрдВ рдиреАрдЪреЗ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛ред
рдХрд┐рд╕реА рдХрд╛рд░реНрдп рдХреЛ рд░реЛрдХреЗрдВ
рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдкреНрд▓рд╕ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдПрдкреАрдЖрдИ рдХреЙрд▓ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдп рдХреЛ рдЕрдирд┐рд╢реНрдЪрд┐рдд рдХрд╛рд▓ рдХреЗ рд▓рд┐рдП рд░реЛрдХ рджреЗрддрд╛ рд╣реИред рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдореЗрдВ рд╕рдорд╛рди рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдХрд╛рд░реНрдпрд╛рд▓рдп рдХреЙрд▓ рд╣реИред
рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдЖрд░рдЯреАрдУрдПрд╕ рдореЗрдВ рдПрдХ рдХрд╛рд░реНрдп рд╕реНрдердЧрд┐рдд рдХрд░реЗрдВрд╕реЗрд╡рд╛ рдХреЙрд▓ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк:
рд╕реНрдерд┐рддрд┐ NU_Suspend_Task (NU_TASK * рдХрд╛рд░реНрдп);рд╡рд┐рдХрд▓реНрдк:
рдХрд╛рд░реНрдп - рд░реБрдХреЗ рд╣реБрдП рдХрд╛рд░реНрдп рдХреА рдирд┐рдпрдВрддреНрд░рдг рдЗрдХрд╛рдИ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдХреЗрддрдХ (рдЬреЛ рд╡рд░реНрддрдорд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХреА рдЖрдИрдбреА
NU_Current_Task_Pointer () , рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рдЕрдзрд┐рдХ
) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред
рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп:
NU_SUCCESS - рдХреЙрд▓ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рдерд╛;
NU_INVALID_TASK - рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдЕрдорд╛рдиреНрдп рд╕реВрдЪрдХ;
NU_INVALID_SUSPEND - рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд╛рд░реНрдп рдореЗрдВ
NU_FINISHED рдпрд╛
NU_TERMINATED рдХреА рд╕реНрдерд┐рддрд┐ рд╣реИред
рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдореЗрдВ рдЪреИрд▓реЗрдВрдЬ рдЯрд╛рд╕реНрдХ рдкреЙрдЬрдпрд╣ рдПрдкреАрдЖрдИ рдХреЙрд▓ рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдкреНрд▓рд╕ рдПрдкреАрдЖрдИ рдХреА рдореБрдЦреНрдп рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред
рд╕реЗрд╡рд╛ рдХреЙрд▓ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк:
STATUS NUSE_Task_Suspend (NUSE_TASK рдХрд╛рд░реНрдп);рд╡рд┐рдХрд▓реНрдк:
рдХрд╛рд░реНрдп - рд░реБрдХреЗ рд╣реБрдП рдХрд╛рд░реНрдп рдХрд╛ рд╕реВрдЪрдХрд╛рдВрдХ (рдЖрдИрдбреА) (рдЬреЛ рд╡рд░реНрддрдорд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХреА рдЖрдИрдбреА
NUSE_Task_Current () - рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рдЕрдзрд┐рдХ
) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп:
NUSE_SUCCESS - рдХреЙрд▓ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рдерд╛;
NUSE_INVALID_TASK - рдЕрдорд╛рдиреНрдп рдХрд╛рд░реНрдп рд╕реВрдЪрдХрд╛рдВрдХред
рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдореЗрдВ рдПрдХ рдХрд╛рд░реНрдп рдХреЗ рдирд┐рд▓рдВрдмрди рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВрдПрдкреАрдЖрдИ рдлрд╝рдВрдХреНрд╢рди рдХреА рдореБрдЦреНрдп рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ:

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЗрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ,
NUSE_Suspend_Task () рд╢реЗрдбреНрдпреВрд▓рд░ рдлрд╝рдВрдХреНрд╢рди рдХреЛ "рдмрд┐рдирд╛ рд╢рд░реНрдд рд░реЛрдХ" рдкреИрд░рд╛рдореАрдЯрд░ (
NUSE_PURE_SUSPEND ) рдХреЗ рд╕рд╛рде рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рд░реБрдХрд╛ рд╣реБрдЖ рдХрд╛рд░реНрдп рдЪрд╛рд▓реВ рд╣реИ, рддреЛ рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рд╢реЗрдбреНрдпреВрд▓рд░ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИред
рдХрд╛рд░реНрдп рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ
рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдЖрд░рдЯреАрдУрдПрд╕ рдПрдХ рд╕рд░рд▓ рдПрдкреАрдЖрдИ рдХреЙрд▓ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдПрдХ рдХрд╛рд░реНрдп рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬреЛ рдкрд╣рд▓реЗ рдЕрдирд┐рд╢реНрдЪрд┐рдд рдХрд╛рд▓ рдХреЗ рд▓рд┐рдП рд░реЛрдХ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдореЗрдВ рд╕рдорд╛рди рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдХрд╛рд░реНрдпрд╛рд▓рдп рдХреЙрд▓ рд╣реИред
рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдЖрд░рдЯреАрдУрдПрд╕ рдореЗрдВ рдЪреБрдиреМрддреА рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдирд╛рд╕реЗрд╡рд╛ рдХреЙрд▓ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк:
рд╕реНрдерд┐рддрд┐ NU_Resume_Task (NU_TASK * рдХрд╛рд░реНрдп);рд╡рд┐рдХрд▓реНрдк:
рдХрд╛рд░реНрдп - рдирдП рдХрд╛рд░реНрдп рдХреЗ рдирд┐рдпрдВрддреНрд░рдг рдЗрдХрд╛рдИ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реВрдЪрдХред
рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп:
NUSE_SUCCESS - рдХреЙрд▓ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рдерд╛;
NUSE_INVALID_TASK - рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдЕрдорд╛рдиреНрдп рд╕реВрдЪрдХ;
NUSE_INVALID_RESUME - рдХрд╛рд░реНрдп рдмрд┐рдирд╛ рд╢рд░реНрдд рдирд┐рд▓рдВрдмрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдореЗрдВ рдЪреИрд▓реЗрдВрдЬ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВрдпрд╣ рдПрдкреАрдЖрдИ рдХреЙрд▓ рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдЖрд░рдЯреАрдУрдПрд╕ рдПрдкреАрдЖрдИ рдХреА рдореБрдЦреНрдп рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред
рд╕реЗрд╡рд╛ рдХреЙрд▓ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк:
рд╕реНрдерд┐рддрд┐ NUSE_Task_Resume (NUSE_TASK рдХрд╛рд░реНрдп);рд╡рд┐рдХрд▓реНрдк:
рдХрд╛рд░реНрдп - рдирд╡реАрдиреАрдХреГрдд рдХрд╛рд░реНрдп рдХрд╛ рд╕реВрдЪрдХрд╛рдВрдХ (рдЖрдИрдбреА)ред
рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп:
NUSE_SUCCESS - рдХреЙрд▓ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рдерд╛;
NUSE_INVALID_TASK - рдЕрдорд╛рдиреНрдп рдХрд╛рд░реНрдп рд╕реВрдЪрдХрд╛рдВрдХ;
NUSE_INVALID_RESUME - рдХрд╛рд░реНрдп рдмрд┐рдирд╛ рд╢рд░реНрдд рдирд┐рд▓рдВрдмрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдореЗрдВ рд░рд┐рдЬреНрдпреВрдореЗ рдЯрд╛рд╕реНрдХ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛рдПрдкреАрдЖрдИ рдлрд╝рдВрдХреНрд╢рди рдХреА рдореБрдЦреНрдп рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ:

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ,
NUSE_Wake_Task () рд╢реЗрдбреНрдпреВрд▓рд░ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЗрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рд╢реЗрдбреНрдпреВрд▓рд░ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ рдпрджрд┐ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╢реЗрдбреНрдпреВрд▓рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдирд╡реАрдиреАрдХреГрдд рдХрд╛рд░реНрдп рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдп рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЙрдЪреНрдЪ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╣реИред
рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрд╡рдзрд┐ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдХрд╛рд░реНрдп рдХреЛ рд░реЛрдХрдирд╛
рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдЖрд░рдЯреАрдУрдПрд╕ рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдп рдХреЛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╕рдордп рдХреЗ рд▓рд┐рдП рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдПрдкреАрдЖрдИ рдХреЙрд▓ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдореЗрдВ рд╕рдорд╛рди рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдХрд╛рд░реНрдпрд╛рд▓рдп рдХреЙрд▓ рд╣реИред
рд╕рдордп рдХреА рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрд╡рдзрд┐ рдХреЗ рд▓рд┐рдП рд╕рд╕реНрдкреЗрдВрдб рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВ рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдЖрд░рдЯреАрдУрдПрд╕рд╕реЗрд╡рд╛ рдХреЙрд▓ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк:
VOID NU_Sleep (UNSIGNED рдЯрд┐рдХ);рд╡рд┐рдХрд▓реНрдк:
рдЯрд┐рдХ - рд╕рдордп рдЕрд╡рдзрд┐ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдп рдХреЛ рдирд┐рд▓рдВрдмрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЗрдВ рдШрдбрд╝реА рдХреА
рдЯрд┐рдХ рдЯрд┐рдХ )ред
рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп:
рдирд╣реАрдВред
рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдордп рдЕрд╡рдзрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рд░реНрдп рдард╣рд░рд╛рд╡ рдХреЛ рдЪреБрдиреМрддреА рджреЗрдВ рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИрдпрд╣ рдПрдкреАрдЖрдИ рдХреЙрд▓ рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдЖрд░рдЯреАрдУрдПрд╕ рдПрдкреАрдЖрдИ рдХреА рдореБрдЦреНрдп рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред
рд╕реЗрд╡рд╛ рдХреЙрд▓ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк:
рд╢реВрдиреНрдп NUSE_Task_Sleep (U16 рдЯрд┐рдХ);рд╡рд┐рдХрд▓реНрдк:
рдЯрд┐рдХ - рд╕рдордп рдЕрд╡рдзрд┐ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдп рдХреЛ рдирд┐рд▓рдВрдмрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЗрдВ рдШрдбрд╝реА рдХреА
рдЯрд┐рдХ рдЯрд┐рдХ )ред
рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп:
рдирд╣реАрдВред
рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдореЗрдВ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрд╡рдзрд┐ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдХрд╛рд░реНрдп рдХреЗ рдирд┐рд▓рдВрдмрди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛рдПрдкреАрдЖрдИ рдлрд╝рдВрдХреНрд╢рди рдХреА рдореБрдЦреНрдп рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ:

рдпрд╣ рдХреЛрдб
NUSE_Task_Timeout_Counter [] рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдп рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рд╡рд┐рд▓рдВрдм рдореВрд▓реНрдп рдХреЛ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИред рдЙрд╕рдХреЗ рдмрд╛рдж, рдирд┐рд▓рдВрдмрди рд╕рдордп рдЕрд╡рдзрд┐ (
NUSE_SLEEP_SUSPEND ) рдХреЗ рд╕рд╛рде
NUSE_Suspend_Task () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд╛рд░реНрдп рд░реЛрдХрд╛ рдЧрдпрд╛ рд╣реИред
рдЯрд╛рдЗрдордЖрдЙрдЯ рдорд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд╛рд╕реНрддрд╡рд┐рдХ-рд╕рдордп рдШрдбрд╝реА рдХреЗ рдЕрд╡рд░реЛрдзрдХ рд╣реИрдВрдбрд▓рд░ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХреЛрдб рдиреАрдЪреЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рднрд╡рд┐рд╖реНрдп рдХреЗ рд▓реЗрдЦ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рдПрдЧреАред

рд╕реАрдкреАрдпреВ рдЬрд╛рд░реА
рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдкреНрд▓рд╕ рд░рд╛рдЙрдВрдб рд░реЙрдмрд┐рди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдПрдХ рд╣реА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХреЗ рд╕рд╛рде рддреИрдпрд╛рд░-рд╕реЗ-рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрд╕реЗрд╕рд░ рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рдПрдкреАрдЖрдИ рдХреЙрд▓ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдореЗрдВ рдмрд╣реБрдд рд╕рдорд╛рди рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдХрд╛рд░реНрдпрд╛рд▓рдп рдХреЙрд▓ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрд╕реЗ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╢реЗрдбреНрдпреВрд▓рд░ рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рд╣реА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╡рд╛рд▓реЗ рдХрдИ рдХрд╛рд░реНрдп рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИрдВред рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╢реЗрдбреНрдпреВрд▓рд░ рдХреЗ рд╕рд╛рде рдЗрд╕ рдПрдкреАрдЖрдИ рдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рддреНрд░реБрдЯрд┐ рд╣реЛрдЧреАред рд░рд╛рдЙрдВрдб рд░реЙрдмрд┐рди рдФрд░ рдЯрд╛рдЗрдо рд╕реНрд▓рд╛рдЗрд╕ рд╢реЗрдбреНрдпреВрд▓рд░реНрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рдпреВрдЯрд┐рд▓рд┐рдЯреА рдХреЙрд▓ рдХрд╛рдо рдХрд░рддреА рд╣реИ, рд░рди рдЯреВ рдХрдВрдкреНрд▓реАрд╢рди рд╢реЗрдбреНрдпреВрд▓рд░ рдХреЗ рд╕рд╛рде, рдпрд╣ рдПрдкреАрдЖрдИ рдХреЙрд▓ рдЕрдХреНрд╖рдо рд╣реИред
рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдЖрд░рдЯреАрдУрдПрд╕ рдкреНрд░реЛрд╕реЗрд╕рд░ рд░рд┐рд▓реАрдЬрд╝ рдХреЙрд▓рдпрд╣ рдПрдкреАрдЖрдИ рдХреЙрд▓ рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдкреНрд▓рд╕ рдПрдкреАрдЖрдИ рдХреА рдореБрдЦреНрдп рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред
рд╕реЗрд╡рд╛ рдХреЙрд▓ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк:
VOID NU_Relinquish (VOID);рд╡рд┐рдХрд▓реНрдк:
рдЕрдиреБрдкрд╕реНрдерд┐рдд рд╣реИрдВред
рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп:
рдирд╣реАрдВред
рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдкреНрд░реЛрд╕реЗрд╕рд░ рд░рд┐рд▓реАрдЬ рдХреЙрд▓рдпрд╣ рдПрдкреАрдЖрдИ рдХреЙрд▓ рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдкреНрд▓рд╕ рдПрдкреАрдЖрдИ рдХреА рдореБрдЦреНрдп рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред
рд╕реЗрд╡рд╛ рдХреЙрд▓ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк:
рд╢реВрдиреНрдп NUSE_Task_Relinquish (рд╢реВрдиреНрдп);рд╡рд┐рдХрд▓реНрдк:
рдЕрдиреБрдкрд╕реНрдерд┐рдд рд╣реИрдВред
рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп:
рдирд╣реАрдВред
рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдкреНрд░реЛрд╕реЗрд╕рд░ рд░рд┐рд▓реАрдЬ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдиAPI рдлрд╝рдВрдХреНрд╢рди рдХреА рдореБрдЦреНрдп рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛:

рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ, рдпрд╣ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди
NUSE_Reschedule () рд╢реЗрдбреНрдпреВрд▓рд░ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рд╢реЗрдбреНрдпреВрд▓рд░ рдХреЛ рдЕрдЧрд▓реЗ рдХрд╛рд░реНрдп рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реИред
рдЕрдЧрд▓реЗ рджреЛ рд▓реЗрдЦ рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдЖрд░рдЯреАрдУрдПрд╕ рдФрд░ рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд╛рд░реНрдп рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдЖрд░рдЯреАрдУрдПрд╕ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЙрд▓ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдВрдЧреЗред
рд▓реЗрдЦрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ: рдХреЙрд▓рд┐рди рд╡рд╛рд▓реНрд╕ рддреАрд╕ рд╡рд░реНрд╖реЛрдВ рд╕реЗ рдЗрд▓реЗрдХреНрдЯреНрд░реЙрдирд┐рдХреНрд╕ рдЙрджреНрдпреЛрдЧ рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЕрдкрдиреЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдордп рдХреЛ рдлрд░реНрдорд╡реЗрдпрд░ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рд╡рд╣ рдЕрдм рдореЗрдВрдЯрд░ рдПрдВрдмреЗрдбреЗрдб (рдореЗрдВрдЯрд░ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХрд╛ рдПрдХ рдкреНрд░рднрд╛рдЧ) рдореЗрдВ рдПрдХ рдлрд░реНрдорд╡реЗрдпрд░ рдЗрдВрдЬреАрдирд┐рдпрд░ рд╣реИред рдХреЙрд▓рд┐рди рд╡реЙрд▓реНрд╕ рдЕрдХреНрд╕рд░ рд╕рдореНрдореЗрд▓рдиреЛрдВ рдФрд░ рд╕реЗрдорд┐рдирд╛рд░реЛрдВ рдореЗрдВ рдмреЛрд▓рддреЗ рд╣реИрдВ, рдХрдИ рддрдХрдиреАрдХреА рд▓реЗрдЦреЛрдВ рдХреЗ рд▓реЗрдЦрдХ рдФрд░ рдлрд░реНрдорд╡реЗрдпрд░ рдкрд░ рджреЛ рдХрд┐рддрд╛рдмреЗрдВред рдмреНрд░рд┐рдЯреЗрди рдореЗрдВ рд░рд╣рддрд╛ рд╣реИред
рдХреЙрд▓рд┐рди рдХрд╛ рдкреЗрд╢реЗрд╡рд░
рдмреНрд▓реЙрдЧ , рдИ-рдореЗрд▓: colin_walls@mentor.comред
рдЕрдиреБрд╡рд╛рдж рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ: рд▓реЗрдЦреЛрдВ рдХреА рдпрд╣ рд╢реНрд░реГрдВрдЦрд▓рд╛ рджрд┐рд▓рдЪрд╕реНрдк рд▓рдЧ рд░рд╣реА рдереА рдХрд┐ рдХреБрдЫ рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рдкреБрд░рд╛рдиреЗ рд╡рд░реНрдгрд┐рдд рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рдордЭрдиреЗ рдпреЛрдЧреНрдп рднрд╛рд╖рд╛ рдореЗрдВ рд▓реЗрдЦрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдХреЗ рдУрдПрд╕ рдХреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЦрд░рд╛рдм рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдкрд╛рдардХ рдХрд╛ рдкрд░рд┐рдЪрдп рджреЗрддрд╛ рд╣реИред рдореИрдВ рдЦреБрдж
рд░реВрд╕реА рдЖрд░рдЯреАрдУрдПрд╕ рдХреЗ рд░рдЪрдирд╛рдХрд╛рд░реЛрдВ рдХреА рдЯреАрдо рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реВрдВ, рдЬрд┐рд╕реЗ рд╣рдо
рдореБрдлреНрдд рдореЗрдВ рдмрдирд╛рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рд░рдЦрддреЗ рд╣реИрдВ , рдФрд░ рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд╕рд╛рдЗрдХрд┐рд▓ рдиреМрд╕рд┐рдЦрд┐рдпрд╛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧреАред