RTOS рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреВрд░реА рд╕рдЪреНрдЪрд╛рдИред рдЕрдиреБрдЪреНрдЫреЗрдж # 21 рдореЗрд▓рдмреЙрдХреНрд╕: рдкрд░рд┐рдЪрдп рдФрд░ рдмреБрдирд┐рдпрд╛рджреА рд╕реЗрд╡рд╛рдПрдВ



рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦреЛрдВ (# 5) рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рдореЗрд▓рдмреЙрдХреНрд╕ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╡реЗ рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рджреВрд╕рд░реА рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рд╕рд┐рдЧреНрдирд▓-рдЯреВ-рд╕рд┐рдЧреНрдирд▓ рдЗрдВрдЯрд░-рдЯрд╛рд╕реНрдХрд┐рдВрдЧ рд╕рдВрдЪрд╛рд░ рд╡рд┐рдзрд┐ рд╣реИрдВ рдФрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдмреАрдЪ рд╕рд░рд▓ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдо-рд▓рд╛рдЧрдд рдФрд░ рд▓рдЪреАрд▓рд╛ рддрд░реАрдХрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред

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

рдореЗрд▓рдмреЙрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛


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

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

рдореЗрд▓рдмреЙрдХреНрд╕ рдФрд░ рдХрддрд╛рд░


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

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

рднрд╡рд┐рд╖реНрдп рдХреЗ рд▓реЗрдЦреЛрдВ рдореЗрдВ рдХрддрд╛рд░реЛрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рдПрдЧреАред

рдореЗрд▓рдмреЙрдХреНрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ


рдореЗрд▓рдмреЙрдХреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛


рдЕрдзрд┐рдХрд╛рдВрд╢ рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде, рдореЗрд▓рдмреЙрдХреНрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореБрдЦреНрдп рд░реВрдк рд╕реЗ #Dfine рдирд┐рд░реНрджреЗрд╢реЛрдВ рджреНрд╡рд╛рд░рд╛ nuse_config.h рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдореБрдЦреНрдп рдкреИрд░рд╛рдореАрдЯрд░ NUSE_MAILBOX_NUMBER рд╣реИ , рдЬреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдореЗрд▓рдмреЙрдХреНрд╕реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рд╢реВрдиреНрдп рд╣реИ (рдЕрд░реНрдерд╛рдд, рдХреЛрдИ рдореЗрд▓рдмреЙрдХреНрд╕ рдирд╣реАрдВ рд╣реИрдВ) рдФрд░ 16 рддрдХ рдорд╛рди рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред рдПрдХ рдЧрд▓рдд рдорд╛рди рд╕рдВрдХрд▓рди рдХреЗ рджреМрд░рд╛рди рдПрдХ рддреНрд░реБрдЯрд┐ рдХрд╛ рдХрд╛рд░рдг рдмрдиреЗрдЧрд╛, рдЬрд┐рд╕реЗ nuse_config_check.h рдореЗрдВ рдЪреЗрдХ рдХрд░рдХреЗ рдЙрддреНрдкрдиреНрди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рдпрд╣ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИ nuse_config.c рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд ), рдЬреЛ # рдирд┐рд░реНрджреЗрд╢ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░реЗрдЧрд╛ред

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

рдПрдкреАрдЖрдИ рдХреЙрд▓ рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░реЗрдВ


рдирд╛рднрд┐рдХ рдПрд╕рдИ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдПрдкреАрдЖрдИ рдлрд╝рдВрдХреНрд╢рди (рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЙрд▓) рдХреЛ nuse_config.h рдлрд╝рд╛рдЗрд▓ рдореЗрдВ #define рдирд┐рд░реНрджреЗрд╢ рджреНрд╡рд╛рд░рд╛ рд╕рдХреНрд░рд┐рдп рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдореЗрд▓рдмреЙрдХреНрд╕ рдХреЗ рд▓рд┐рдП, рдпреЗ рдирд┐рд░реНрджреЗрд╢ рд╣реИрдВ:

NUSE_MAILBOX_SEND NUSE_MAILBOX_RECEIVE NUSE_MAILBOX_RESET NUSE_MAILBOX_INFORMATION NUSE_MAILBOX_COUNT 

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

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд nuse_config.h рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдХреЛрдб рдХрд╛ рдПрдХ рднрд╛рдЧ рд╣реИред

 /* Number of mailboxes in the system - 0-16 */ #define NUSE_MAILBOX_NUMBER 0 /* Service call enablers: */ #define NUSE_MAILBOX_SEND FALSE #define NUSE_MAILBOX_RECEIVE FALSE #define NUSE_MAILBOX_RESET FALSE #define NUSE_MAILBOX_INFORMATION FALSE #define NUSE_MAILBOX_COUNT FALSE 

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

рдореЗрд▓рдмреЙрдХреНрд╕ рд╕реЗрд╡рд╛ рдХреЙрд▓


рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдЖрд░рдЯреАрдУрдПрд╕ рдиреМ рд╕реЗрд╡рд╛ рдХреЙрд▓ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдореЗрд▓рдмреЙрдХреНрд╕реЗрдЬрд╝ рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ:

  • рдореЗрд▓рдмреЙрдХреНрд╕ рдореЗрдВ рд╕рдВрджреЗрд╢ рднреЗрдЬрдирд╛ред рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ NUSE_Mailbox_Send () рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
  • рдПрдХ рдореЗрд▓рдмреЙрдХреНрд╕ рд╕реЗ рдПрдХ рд╕рдВрджреЗрд╢ рдкрдврд╝рдирд╛ред рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ NUSE_Mailbox_Receive () рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред
  • рд╕рднреА рдирд┐рд▓рдВрдмрд┐рдд рдХрд╛рд░реНрдпреЛрдВ (рд░реАрд╕реЗрдЯ) рдХреА рд░рд┐рд╣рд╛рдИ рдХреЗ рд╕рд╛рде рдЕрдкреНрд░рдпреБрдХреНрдд рд░рд╛рдЬреНрдп рдХреЗ рд▓рд┐рдП рдПрдХ рдореЗрд▓рдмреЙрдХреНрд╕ рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ред рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдореЗрдВ, NUSE_Mailbox_Reset () рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ред
  • рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдореЗрд▓рдмреЙрдХреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░рдирд╛ред рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдХреЛ NUSE_Mailbox_Information () рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
  • рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП рдореЗрд▓рдмреЙрдХреНрд╕реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдореЗрдВ, NUSE_Mailbox_Count () рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ред
  • рдПрдХ рдирдпрд╛ рдореЗрд▓рдмреЙрдХреНрд╕ (рдирд┐рд░реНрдорд╛рдг) рдЬреЛрдбрд╝рдирд╛ред рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдХреЛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
  • рдПрдХ рдореЗрд▓рдмреЙрдХреНрд╕ рд╣рдЯрд╛рдПрдБред рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдХреЛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
  • рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рднреА рдореЗрд▓рдмреЙрдХреНтАНрд╕ рдкрд░ рдкреЙрдЗрдВрдЯрд░реНрд╕ рд▓реМрдЯрд╛рдПрдВред рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдХреЛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
  • рдореЗрд▓рдмреЙрдХреНрд╕ рдкрд░ рдкреНрд░рд╕рд╛рд░рд┐рдд рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрджреЗрд╢ рднреЗрдЬрдирд╛ (рдкреНрд░рд╕рд╛рд░рдг)ред рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдХреЛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрд╡рд╛ рдХреЙрд▓ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред

рдореЗрд▓рдмреЙрдХреНрд╕ рдкрдврд╝реЗрдВ рдФрд░ рд╕реЗрд╡рд╛ рдХреЙрд▓ рд▓рд┐рдЦреЗрдВ


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

рдореЗрд▓рдмреЙрдХреНрд╕ рдХреЛ рд▓рд┐рдЦреЗрдВ


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

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

рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдЖрд░рдЯреАрдУрдПрд╕ рдореЗрдВ рдПрдХ рдореЗрд▓рдмреЙрдХреНрд╕ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдХрд░реЗрдВ
рд╕реЗрд╡рд╛ рдХреЙрд▓ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк:
STATUS NU_Send_To_Mailbox (NU_MAILBOX * рдореЗрд▓рдмреЙрдХреНрд╕, VOID * рд╕рдВрджреЗрд╢, UNSIGNED рд╕рд╕реНрдкреЗрдВрдб);

рд╡рд┐рдХрд▓реНрдк:
рдореЗрд▓рдмреЙрдХреНрд╕ - рдореЗрд▓рдмреЙрдХреНрд╕ рдХреЗ рд▓рд┐рдП рд╕реВрдЪрдХ;
рд╕рдВрджреЗрд╢ - рднреЗрдЬреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рдВрджреЗрд╢ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреЙрдЗрдВрдЯрд░, рдЬрд┐рд╕рдореЗрдВ рдЯрд╛рдЗрдк рдХрд┐рдП рдЧрдП рдЪрд╛рд░ рдкреНрд░рдХрд╛рд░ рдХреЗ рддрддреНрд╡ рд╣реЛрддреЗ рд╣реИрдВ;
рд╕рд╕реНрдкреЗрдВрдб - рдХрд╛рд░реНрдп рдХреЗ рдирд┐рд▓рдВрдмрди рдХрд╛ рд╡рд┐рдирд┐рд░реНрджреЗрд╢, рдорд╛рди NU_NO_SUSPEND , NU_SUSPEND рдпрд╛ рдЯрд╛рдЗрдордЖрдЙрдЯ рдорд╛рди рд▓реЗ рд╕рдХрддрд╛ рд╣реИред

рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп:
NU_SUCCESS - рдХреЙрд▓ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рдерд╛;
NU_INVALID_MAILBOX - рдЕрдорд╛рдиреНрдп рдореЗрд▓рдмреЙрдХреНрд╕ рд╕реВрдЪрдХ;
NU_INVALID_POINTER - рдПрдХ рд╕рдВрджреЗрд╢ ( NULL ) рдХреЗ рд▓рд┐рдП рдЕрд╢рдХреНрдд рд╕реВрдЪрдХ;
NU_INVALID_SUSPEND - рдЧреИрд░-рдХрд╛рд░реНрдп-рд╕рдВрдмрдВрдзрд┐рдд рдереНрд░реЗрдб рд╕реЗ рдирд┐рд▓рдВрдмрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕;
NU_MAILBOX_FULL - рдореЗрд▓рдмреЙрдХреНрд╕ рднрд░рд╛ рд╣реБрдЖ рд╣реИ, рд▓реЗрдХрд┐рди рдирд┐рд▓рдВрдмрди рдХрд╛ рдкреНрд░рдХрд╛рд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИ;
NU_TIMEOUT - рдореЗрд▓рдмреЙрдХреНрд╕ рдЕрднреА рднреА рднрд░рд╛ рд╣реБрдЖ рд╣реИ, рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЕрд╡рдзрд┐ рдХреЗ рд▓рд┐рдП рдирд┐рд▓рдВрдмрди рдХреЗ рдмрд╛рдж рднреА;
NU_MAILBOX_DELETED - рдХрд╛рд░реНрдп рд╕реНрдердЧрд┐рдд рд╣реЛрдиреЗ рдкрд░ рдореЗрд▓рдмреЙрдХреНрд╕ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛;
NU_MAILBOX_WAS_RESET - рдХрд╛рд░реНрдп рд╕реНрдердЧрд┐рдд рд╣реЛрдиреЗ рдХреЗ рджреМрд░рд╛рди рдореЗрд▓рдмреЙрдХреНрд╕ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

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

рд╕реЗрд╡рд╛ рдХреЙрд▓ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк:
рд╕реНрдерд┐рддрд┐ NUSE_Mailbox_Send (NUSE_MAILBOX рдореЗрд▓рдмреЙрдХреНрд╕, ADDR * рд╕рдВрджреЗрд╢, U8 рдирд┐рд▓рдВрдмрд┐рдд);

рд╡рд┐рдХрд▓реНрдк:
рдореЗрд▓рдмреЙрдХреНрд╕ - рдореЗрд▓рдмреЙрдХреНрд╕ рд╕реВрдЪрдХрд╛рдВрдХ (рдЖрдИрдбреА);
рд╕рдВрджреЗрд╢ - рднреЗрдЬреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рдВрджреЗрд╢ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реВрдЪрдХ; рдпрд╣ ADDR рдкреНрд░рдХрд╛рд░ рдХрд╛ рдПрдХ рдЪрд░ рд╣реИ;
рдирд┐рд▓рдВрдмрди - рдХрд╛рд░реНрдп рдХреЗ рдирд┐рд▓рдВрдмрди рдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛, NUSE_NO_SUSPEND рдпрд╛ NUSE_SUSPEND рдорд╛рди рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред

рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп:
NUSE_SUCCESS - рдХреЙрд▓ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рдерд╛;
NUSE_INVALID_MAILBOX - рдЕрдорд╛рдиреНрдп рдореЗрд▓рдмреЙрдХреНрд╕ рд╕реВрдЪрдХрд╛рдВрдХ;
NUSE_INVALID_POINTER - рдПрдХ рд╕рдВрджреЗрд╢ ( NULL ) рдХреЗ рд▓рд┐рдП рдЕрд╢рдХреНрдд рд╕реВрдЪрдХ;
NUSE_INVALID_SUSPEND - рдПрдХ рдЕрд╕рдВрдмрдВрдзрд┐рдд рдзрд╛рдЧреЗ рд╕реЗ рдирд┐рд▓рдВрдмрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдпрд╛ рдЬрдм рдПрдкреАрдЖрдИ рдХреЙрд▓ рдЕрд╡рд░реБрджреНрдз рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдирд┐рд╖реНрдХреНрд░рд┐рдп рд╣реИ;
NUSE_MAILBOX_FULL - рдореЗрд▓рдмреЙрдХреНрд╕ рднрд░рд╛ рд╣реБрдЖ рд╣реИ, рд▓реЗрдХрд┐рди рдирд┐рд▓рдВрдмрди рдХрд╛ рдкреНрд░рдХрд╛рд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИ;
NUSE_MAILBOX_WAS_RESET - рдХрд╛рд░реНрдп рд╕реНрдердЧрд┐рдд рд╣реЛрдиреЗ рдкрд░ рдореЗрд▓рдмреЙрдХреНрд╕ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

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

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

 if (NUSE_Mailbox_Status[mailbox]) /* mailbox full */ { return_value = NUSE_MAILBOX_FULL; } else /* mailbox empty */ { NUSE_Mailbox_Data[mailbox] = *message; NUSE_Mailbox_Status[mailbox] = TRUE; return_value = NUSE_SUCCESS; } 

рд╕рдВрджреЗрд╢ рд╕рдВрдмрдВрдзрд┐рдд рддрддреНрд╡ NUSE_Mailbox_Data [] рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИ, рдФрд░ рдореЗрд▓рдмреЙрдХреНрд╕ рдХреЛ рдЙрдкрдпреЛрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдпрджрд┐ рдХрд╛рд░реНрдп рд▓реЙрдХрд┐рдВрдЧ рд╕рдХреНрд░рд┐рдп рд╣реИ, рддреЛ рдХреЛрдб рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ:

 do { if (!NUSE_Mailbox_Status[mailbox]) /* mailbox empty */ { NUSE_Mailbox_Data[mailbox] = *message; NUSE_Mailbox_Status[mailbox] = TRUE; if (NUSE_Mailbox_Blocking_Count[mailbox] != 0) { U8 index; /* check whether a task is blocked */ /* on this mailbox */ NUSE_Mailbox_Blocking_Count[mailbox]--; for (index=0; index<NUSE_TASK_NUMBER; index++) { if ((LONIB(NUSE_Task_Status[index]) == NUSE_MAILBOX_SUSPEND) && (HINIB(NUSE_Task_Status[index]) == mailbox)) { NUSE_Task_Blocking_Return[index] = NUSE_SUCCESS; NUSE_Wake_Task(index); break; } } } return_value = NUSE_SUCCESS; suspend = NUSE_NO_SUSPEND; } else /* mailbox full */ { if (suspend == NUSE_NO_SUSPEND) { return_value = NUSE_MAILBOX_FULL; } else { /* block task */ NUSE_Mailbox_Blocking_Count[mailbox]++; NUSE_Suspend_Task(NUSE_Task_Active, (mailbox << 4) | NUSE_MAILBOX_SUSPEND); return_value = NUSE_Task_Blocking_Return[NUSE_Task_Active]; if (return_value != NUSE_SUCCESS) { suspend = NUSE_NO_SUSPEND; } } } } while (suspend == NUSE_SUSPEND); 

рдХреБрдЫ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рд╕рд╣рд╛рдпрдХ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

рдХреЛрдб рдПрдХ рдбреВ ... рд▓реВрдк рдореЗрдВ рд╕рдВрд▓рдЧреНрди рд╣реИ, рдЬреЛ рд╕рд╕реНрдкреЗрдВрдб рдкреИрд░рд╛рдореАрдЯрд░ NUSE_SUSPEND рд╣реИ, рдЬрдмрдХрд┐ рдЪрд▓рддрд╛ рд╣реИред

рдпрджрд┐ рдореЗрд▓рдмреЙрдХреНрд╕ рдЦрд╛рд▓реА рд╣реИ, рддреЛ рд╕рдВрджреЗрд╢ рд░рд┐рдХреЙрд░реНрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрд▓рдмреЙрдХреНрд╕ рдХреА рд╕реНрдерд┐рддрд┐ рдмрджрд▓ рдЬрд╛рддреА рд╣реИ рдХрд┐ рдпрд╣ рднрд░рд╛ рд╣реБрдЖ рд╣реИред рдЗрд╕ рдореЗрд▓рдмреЙрдХреНрд╕ рдкрд░ рд░реБрдХреЗ рд╣реБрдП рдХрд╛рд░реНрдпреЛрдВ (рдЬреЛ рдкрдврд╝рдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ) рдХреЗ рд▓рд┐рдП рдЪреЗрдХред рдпрджрд┐ рдРрд╕реЗ рдХрд╛рд░реНрдп рд╣реИрдВ, рддреЛ рдЙрдирдореЗрдВ рд╕реЗ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рдирд┐рд▓рдВрдмрд┐рдд рдЪрд░ NUSE_NO_SUSPEND рдкрд░ рд╕реЗрдЯ рд╣реИ, рдФрд░ API рдХреЙрд▓ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ NUSE_SUCCESS рдХреЛ рд╡рд╛рдкрд╕ рдХрд░ рджреЗрддрд╛ рд╣реИред

рдпрджрд┐ рдореЗрд▓рдмреЙрдХреНрд╕ рдкреВрд░реНрдг рд╣реИ рдФрд░ рдирд┐рд▓рдВрдмрд┐рдд NUSE_NO_SUSPEND рд╣реИ , рддреЛ API рдХреЙрд▓ NUSE_MAILBOX_FULL рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧреА ред рдпрджрд┐ рдирд┐рд▓рдВрдмрд┐рдд NUSE_SUSPEND рд╣реИ , рддреЛ рдХрд╛рд░реНрдп рд░реБрдХ рдЬрд╛рддрд╛ рд╣реИред рдлрд╝рдВрдХреНрд╢рди рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рдХрд╛рд░реНрдп рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ), рдпрджрд┐ рд░рд┐рдЯрд░реНрди рдорд╛рди NUSE_SUCCESS рд╣реИ (рдЬреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХрд╛рд░реНрдп рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рд╣реЛ рдЧрдпрд╛ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рд╕рдВрджреЗрд╢ рдкрдврд╝рд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдпрд╣ рдирд╣реАрдВ рдХрд┐ рдореЗрд▓рдмреЙрдХреНрд╕ рд░реАрд╕реЗрдЯ рд╣реЛ рдЧрдпрд╛ рдерд╛), рдЪрдХреНрд░ рд╢реБрд░реВ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред

рдореЗрд▓рдмреЙрдХреНрд╕ рдкрдврд╝реЗрдВ


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

рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдЖрд░рдЯреАрдУрдПрд╕ рдореЗрдВ рдореЗрд▓рдмреЙрдХреНрд╕ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдХрд░реЗрдВ
рд╕реЗрд╡рд╛ рдХреЙрд▓ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк:
STATUS NU_Receive_From_Mailbox (NU_MAILBOX * рдореЗрд▓рдмреЙрдХреНрд╕, VOID * рд╕рдВрджреЗрд╢, UNSIGNED рд╕рд╕реНрдкреЗрдВрдб);

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

рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп:
NU_SUCCESS - рдХреЙрд▓ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рдерд╛;
NU_INVALID_MAILBOX - рдЕрдорд╛рдиреНрдп рдореЗрд▓рдмреЙрдХреНрд╕ рд╕реВрдЪрдХ;
NU_INVALID_POINTER - рдПрдХ рд╕рдВрджреЗрд╢ ( NULL ) рдХреЗ рд▓рд┐рдП рдЕрд╢рдХреНрдд рд╕реВрдЪрдХ;
NU_INVALID_SUSPEND - рдПрдХ рдЧрд▓рдд рд╕реНрдЯреНрд░реАрдо рд╕реЗ рдирд┐рд▓рдВрдмрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ (рд╕реНрдЯреНрд░реАрдо рдХреЗ рдХрд╛рд░реНрдп рд╕реЗ рд╕рдВрдмрджреНрдз рдирд╣реАрдВ);
NU_MAILBOX_EMPTY - рдореЗрд▓рдмреЙрдХреНрд╕ рдЦрд╛рд▓реА рд╣реИ, рдФрд░ рдирд┐рд▓рдВрдмрди рдХрд╛ рдкреНрд░рдХрд╛рд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛;
NU_TIMEOUT - рдореЗрд▓рдмреЙрдХреНрд╕ рдЕрднреА рднреА рдЦрд╛рд▓реА рд╣реИ, рднрд▓реЗ рд╣реА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЯрд╛рдЗрдордЖрдЙрдЯ рдорд╛рди рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдп рд░реЛрдХ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛ;
NU_MAILBOX_DELETED - рдХрд╛рд░реНрдп рд╕реНрдердЧрд┐рдд рд╣реЛрдиреЗ рдкрд░ рдореЗрд▓рдмреЙрдХреНрд╕ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛;
NU_MAILBOX_WAS_RESET - рдХрд╛рд░реНрдп рд╕реНрдердЧрд┐рдд рд╣реЛрдиреЗ рдХреЗ рджреМрд░рд╛рди рдореЗрд▓рдмреЙрдХреНрд╕ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

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

рд╕реЗрд╡рд╛ рдХреЙрд▓ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк:
рд╕реНрдерд┐рддрд┐ NUSE_Mailbox_Reive (NUSE_MAILBOX рдореЗрд▓рдмреЙрдХреНрд╕, ADDR * рд╕рдВрджреЗрд╢, U8 рдирд┐рд▓рдВрдмрд┐рдд);

рд╡рд┐рдХрд▓реНрдк:
рдореЗрд▓рдмреЙрдХреНрд╕ - рдореЗрд▓рдмреЙрдХреНрд╕ рд╕реВрдЪрдХрд╛рдВрдХ (рдЖрдИрдбреА);
рд╕рдВрджреЗрд╢ - рдкреНрд░рд╛рдкреНрдд рд╕рдВрджреЗрд╢ рдХреЗ рднрдВрдбрд╛рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдХреЗрддрдХ, рдкреНрд░рдХрд╛рд░ ADDR рдХрд╛ рдПрдХ рдЪрд░ рд╣реИ;
рдирд┐рд▓рдВрдмрди - рдХрд╛рд░реНрдп рдХреЗ рдирд┐рд▓рдВрдмрди рдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛, NUSE_NO_SUSPEND рдпрд╛ NUSE_SUSPEND рдорд╛рди рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред

рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп:
NUSE_SUCCESS - рдХреЙрд▓ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рдерд╛;
NUSE_INVALID_MAILBOX - рдЕрдорд╛рдиреНрдп рдореЗрд▓рдмреЙрдХреНрд╕ рд╕реВрдЪрдХрд╛рдВрдХ;
NUSE_INDALID_POINTER - рдПрдХ рд╕рдВрджреЗрд╢ ( NULL ) рдХреЗ рд▓рд┐рдП рдЕрд╢рдХреНрдд рд╕реВрдЪрдХ;
NUSE_INVALID_SUSPEND - рдПрдХ рдЧрд▓рдд рд╕реНрдЯреНрд░реАрдо рд╕реЗ рдпрд╛ рдЬрдм рдПрдкреАрдЖрдИ рдХреЙрд▓ рдмреНрд▓реЙрдХ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ;
NUSE_MAILBOX_EMPTY - рдореЗрд▓рдмреЙрдХреНрд╕ рдЦрд╛рд▓реА рд╣реИ, рдФрд░ рдХрд╛рд░реНрдп рдирд┐рд▓рдВрдмрди рдХрд╛ рдкреНрд░рдХрд╛рд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИ;
NUSE_MAILBOX_WAS_RESET - рдХрд╛рд░реНрдп рд╕реНрдердЧрд┐рдд рд╣реЛрдиреЗ рдкрд░ рдореЗрд▓рдмреЙрдХреНрд╕ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

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

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

 if (!NUSE_Mailbox_Status[mailbox]) /* mailbox empty */ { return_value = NUSE_MAILBOX_EMPTY; } else { /* mailbox full */ *message = NUSE_Mailbox_Data[mailbox]; NUSE_Mailbox_Status[mailbox] = FALSE; return_value = NUSE_SUCCESS; } 

рд╕рдВрджреЗрд╢ рдЗрд╕реА NUSE_Mailbox_Data [] рддрддреНрд╡ рд╕реЗ рдкрдврд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдореЗрд▓рдмреЙрдХреНрд╕ рдХреЛ рд░рд┐рдХреНрдд рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдпрджрд┐ рдХрд╛рд░реНрдп рд▓реЙрдХрд┐рдВрдЧ рд╕рдХреНрд░рд┐рдп рд╣реИ, рддреЛ рдХреЛрдб рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ:

 do { if (NUSE_Mailbox_Status[mailbox]) /* mailbox full */ { *message = NUSE_Mailbox_Data[mailbox]; NUSE_Mailbox_Status[mailbox] = FALSE; if (NUSE_Mailbox_Blocking_Count[mailbox] != 0) { U8 index; /* check whether a task is blocked */ /* on this mailbox */ NUSE_Mailbox_Blocking_Count[mailbox]--; for (index=0; index<NUSE_TASK_NUMBER; index++) { if ((LONIB(NUSE_Task_Status[index]) == NUSE_MAILBOX_SUSPEND) && (HINIB(NUSE_Task_Status[index]) == mailbox)) { NUSE_Task_Blocking_Return[index] = NUSE_SUCCESS; NUSE_Wake_Task(index); break; } } } return_value = NUSE_SUCCESS; suspend = NUSE_NO_SUSPEND; } else /* mailbox empty */ { if (suspend == NUSE_NO_SUSPEND) { return_value = NUSE_MAILBOX_EMPTY; } else { /* block task */ NUSE_Mailbox_Blocking_Count[mailbox]++; NUSE_Suspend_Task(NUSE_Task_Active, (mailbox << 4) | NUSE_MAILBOX_SUSPEND); return_value = NUSE_Task_Blocking_Return[NUSE_Task_Active]; if (return_value != NUSE_SUCCESS) { suspend = NUSE_NO_SUSPEND; } } } } while (suspend == NUSE_SUSPEND); 

рдХреБрдЫ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рд╕рд╣рд╛рдпрдХ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

рдХреЛрдб рдПрдХ рдбреВ ... рд▓реВрдк рдореЗрдВ рд╕рдВрд▓рдЧреНрди рд╣реИ, рдЬреЛ рд╕рд╕реНрдкреЗрдВрдб рдкреИрд░рд╛рдореАрдЯрд░ NUSE_SUSPEND рд╣реИ, рдЬрдмрдХрд┐ рдЪрд▓рддрд╛ рд╣реИред

рдпрджрд┐ рдореЗрд▓рдмреЙрдХреНрд╕ рднрд░рд╛ рд╣реБрдЖ рд╣реИ, рддреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рд╕рдВрджреЗрд╢ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдЦрд╛рд▓реА рд╣реИ рдХрд┐ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрд▓рдмреЙрдХреНрд╕ рдХреА рд╕реНрдерд┐рддрд┐ рдмрджрд▓ рдЬрд╛рддреА рд╣реИред рдЗрд╕ рдореЗрд▓рдмреЙрдХреНрд╕ рдкрд░ рд░реБрдХреЗ рд╣реБрдП рдХрд╛рд░реНрдпреЛрдВ (рдЬреЛ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ) рдХреЗ рд▓рд┐рдП рдЪреЗрдХред рдпрджрд┐ рдРрд╕реЗ рдХрд╛рд░реНрдп рд╣реИрдВ, рддреЛ рдЙрдирдореЗрдВ рд╕реЗ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рдирд┐рд▓рдВрдмрд┐рдд рдЪрд░ NUSE_NO_SUSPEND рдкрд░ рд╕реЗрдЯ рд╣реИ, рдФрд░ API рдХреЙрд▓ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ NUSE_SUCCESS рдХреЛ рд╡рд╛рдкрд╕ рдХрд░ рджреЗрддрд╛ рд╣реИред

рдпрджрд┐ рдореЗрд▓рдмреЙрдХреНрд╕ рдЦрд╛рд▓реА рд╣реИ рдФрд░ рдирд┐рд▓рдВрдмрд┐рдд рдкреИрд░рд╛рдореАрдЯрд░ NUSE_NO_SUSPEND рд╣реИ , рддреЛ API рдХреЙрд▓ NUSE_MAILBOX_EMPTY рджреЗрддрд╛ рд╣реИред рдпрджрд┐ рдирд┐рд▓рдВрдмрд┐рдд NUSE_SUSPEND рд╣реИ , рддреЛ рдХрд╛рд░реНрдп рд░реБрдХ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐, рдХреЙрд▓ рдХреЗ рдЕрдВрдд рдореЗрдВ, рд░рд┐рдЯрд░реНрди рдорд╛рди NUSE_SUCCESS рд╣реИ , рдЬреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХрд╛рд░реНрдп рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рд╕рдВрджреЗрд╢ рднреЗрдЬрд╛ рдЧрдпрд╛ рдерд╛ (рдФрд░ рдореЗрд▓рдмреЙрдХреНрд╕ рд░реАрд╕реЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛), рдЪрдХреНрд░ рд╢реБрд░реВ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред

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

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

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


All Articles