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

рд╕рднреА рдЖрдзреБрдирд┐рдХ рдорд╛рдЗрдХреНрд░реЛрдкреНрд░реЛрд╕реЗрд╕рд░реЛрдВ рдФрд░ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░реНрд╕ рдореЗрдВ рдХрд┐рд╕реА рди рдХрд┐рд╕реА рддрд░рд╣ рдХрд╛ рд╡реНрдпрд╡рдзрд╛рди рд╣реЛрддрд╛ рд╣реИред рдпреЗ рддрдВрддреНрд░ рдХрдИ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд╢реНрдпрдХ рдЬрд╡рд╛рдмрджреЗрд╣реА рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВред рдЖрд░рдЯреАрдУрдПрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдмреЗрд╢рдХ, рдЬрд╡рд╛рдмрджреЗрд╣реА рдФрд░ рдкреВрд░реНрд╡рд╛рдиреБрдорд╛рдирд╢реАрд▓рддрд╛ рдореБрдЦреНрдп рд▓рдХреНрд╖реНрдп рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд╛рде рд╣реА рд╡реЗ рдПрдХ-рджреВрд╕рд░реЗ рдХреЗ рд╡рд┐рд░реЛрдзреА рд╣реИрдВред рдЗрдВрдЯрд░рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдХреЗ рдУрдПрд╕ рдХреА рдЕрдЦрдВрдбрддрд╛ рдХреЛ рдмрд╛рдзрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдФрд░ рдЗрд╕рдХреЗ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦреЛрдВ (# 4 рдФрд░ # 6) рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд░реБрдХрд╛рд╡рдЯ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреА рд░рдгрдиреАрддрд┐ рдХреЛ рджреЗрдЦреЗрдВрдЧреЗред рд╕рднреА рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рджреНрд╡рд╛рд░рд╛ рдЗрдВрдЯрд░рдкреНрдЯ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рдЙрдиреНрд╣реЗрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рд╡реЗ рд╕рд╛рдорд╛рдиреНрдп рддрд░реАрдХреЗ рд╕реЗ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдФрд░ рд╡реИрдХреНрдЯрд░ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╣реЛрддреЗ рд╣реИрдВред рдЙрдирдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХрд╛ рд╕рдордп рдореБрдЦреНрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдФрд░ рдЕрдиреБрд╕реВрдЪрдХ рдХреЗ рдХреЛрдб рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╕рдордп рд╕реЗ рдмрд╕ "рдЪреЛрд░реА" рд╣реИред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдпрд╣ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИ рдХрд┐ рд╕рднреА рдмрд╛рдзрд╛ рд╣реИрдВрдбрд▓рд░ рд╕рд░рд▓, рд▓рдШреБ рдФрд░ рддреЗрдЬ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред



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

рдирд┐рдпрдорд┐рдд рдФрд░ рдирд┐рдпрдВрддреНрд░рд┐рдд рд╡реНрдпрд╡рдзрд╛рди


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

I / O рдореИрдХреНрд░реЛрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдЗрдВрдЯрд░рдкреНрдЯ рд╣реИрдВрдбрд▓рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдорд╛рдирдХ рдпрд╛ рдкреНрд░рдмрдВрдзрд┐рдд рдореЛрдб рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд╕реНрдЯрд╛рдл рдореЗрдВ рдмрд╛рдзрд╛


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

рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдореЗрдВ рдПрдХ рд░реЗрдЧреБрд▓рд░ рдЗрдВрдЯрд░рдкреНрдЯ рд╣реИрдВрдбрд▓рд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ рдПрдирдмреНрд▓рд┐рд╢_рдЖрдИрдПрд╕рдЖрд░_рдПрдВрдЯрд░ () рдореИрдХреНрд░реЛ рдХреЛ рд╢реБрд░реВ рдореЗрдВ рдХреЙрд▓ рдХрд░рдирд╛ рдФрд░ рдЕрдВрдд рдореЗрдВ NUSE_NISR_Exit () рдХреЙрд▓ рдХрд░рдиреЗ рд╕рд╣рд┐рдд рдПрдХ рд░реЗрдЧреБрд▓рд░ рдЗрдВрдЯрд░рдкреНрдЯ рд╣реИрдВрдбрд▓рд░ рд▓рд┐рдЦрдирд╛ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рдпреЗ рдореИрдХреНрд░реЛрдЬрд╝ nuse_types рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВ ред h рдФрд░ рд╡реИрд╢реНрд╡рд┐рдХ рд╕рдВрд╕реНрдХрд░рдг NUSE_Task_State рдХреЛ NUSE_NISR_CONTEXT рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВред

рдирд┐рд░реНрджреЗрд╢рд┐рдд рд░реБрдХрд╛рд╡рдЯ


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

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

NUSE_MANAGED_ISR () рдореИрдХреНрд░реЛ рдХрд╛ рдЙрдкрдпреЛрдЧ nuse_types.h рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдПрдХ рдкреНрд░рдмрдВрдзрд┐рдд рд╡реНрдпрд╡рдзрд╛рди рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдореИрдХреНрд░реЛ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреНрд░рд┐рдпрд╛рдПрдВ рд╣реЛрддреА рд╣реИрдВ:

  • рдХрд╛рд░реНрдп рдХреЗ рд╕рдВрджрд░реНрдн рдХреЛ рдмрдирд╛рдП рд░рдЦрдирд╛;
  • NUSE_Task_State рдХреЛ NUSE_MISR_CONTEXT рдореЗрдВ рдЕрд╕рд╛рдЗрди рдХрд░рдирд╛ ;
  • рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдЖрдкреВрд░реНрддрд┐ рдмрд╛рдзрд┐рдд рд╣реИрдВрдбрд▓рд░ рдлрд╝рдВрдХреНрд╢рди рдХреЛрдб;
  • NUSE_Task_State рдХреЛ рдЙрд╕рдХреА рдкрд┐рдЫрд▓реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ ;
  • рдХрд╛рд░реНрдп рдХреЗ рд╕рдВрджрд░реНрдн рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред

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

рдПрдкреАрдЖрдИ рдмрд╛рдзрд╛ рд╣реИрдВрдбрд▓рд░ рд╕реЗ рдХрд╣рддрд╛ рд╣реИ


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

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

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

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдПрдкреАрдЖрдИ рдХреЙрд▓реЛрдВ рдХреЛ рд╣рдореЗрд╢рд╛ рдЕрдиреБрдорддрд┐ рджреА рдЬрд╛рддреА рд╣реИ:

NUSE_Task_Current() NUSE_Task_Check_Stack() NUSE_Task_Information() NUSE_Task_Count() NUSE_Partition_Pool_Information() NUSE_Partition_Pool_Count() NUSE_Mailbox_Information() NUSE_Mailbox_Count() NUSE_Queue_Information() NUSE_Queue_Count() NUSE_Pipe_Information() NUSE_Pipe_Count() NUSE_Semaphore_Information() NUSE_Semaphore_Count() NUSE_Event_Group_Information() NUSE_Event_Group_Count() NUSE_Signals_Send() NUSE_Timer_Control() NUSE_Timer_Get_Remaining() NUSE_Timer_Reset() NUSE_Timer_Information() NUSE_Timer_Count() NUSE_Clock_Set() NUSE_Clock_Retrieve() NUSE_Release_Information() 

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдХреЗрд╡рд▓ NUSE_Signals_Send () рдЙрдирдореЗрдВ рд╕реЗ рдЙрдкрдпреЛрдЧреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХрд╛рд░реНрдп рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рддрд░реАрдХрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

рдпрджрд┐ рд▓реЙрдХ рдЕрдХреНрд╖рдо рд╣реИ, рдЕрд░реНрдерд╛рдд, рдХрд╛рд░реНрдп рдХрдИ API рдХреЙрд▓ рджреНрд╡рд╛рд░рд╛ рддреИрдпрд╛рд░ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ, рддреЛ рдЕрддрд┐рд░рд┐рдХреНрдд API рдХреЙрд▓ рдЙрдкрд▓рдмреНрдз рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ:

 NUSE_Partition_Allocate() NUSE_Partition_Deallocate() NUSE_Mailbox_Send() NUSE_Mailbox_Receive() NUSE_Mailbox_Reset() NUSE_Queue_Send() NUSE_Queue_Receive() NUSE_Queue_Jam() NUSE_Queue_Reset() NUSE_Pipe_Send() NUSE_Pipe_Receive() NUSE_Pipe_Jam() NUSE_Pipe_Reset() NUSE_Semaphore_Obtain() NUSE_Semaphore_Release() NUSE_Semaphore_Reset() NUSE_Event_Group_Set() NUSE_Event_Group_Retrieve() 

рдХреБрдЫ API рдХреЙрд▓ рд╣рдореЗрд╢рд╛ рдорд╛рдирдХ рд╡реНрдпрд╡рдзрд╛рди рд╕рдВрдЪрд╛рд▓рдХреЛрдВ рдХреЗ рд▓рд┐рдП рджреБрд░реНрдЧрдо рд╣реЛрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЙрдиреНрд╣реЗрдВ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдПрдХ рдЕрдиреБрд╕реВрдЪрдХ рдХреЗ рдХрд╛рдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА:
 NUSE_Task_Suspend() NUSE_Task_Resume() NUSE_Task_Sleep() NUSE_Task_Relinquish() NUSE_Task_Reset() NUSE_Signals_Receive() 

рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╡рд╛рд▓реЗ рд╢реЗрдбреНрдпреВрд▓рд░ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХрд┐рд╕реА рднреА рд╢реЗрдбреНрдпреВрд▓рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп API рдкреНрд░рдмрдВрдзрд┐рдд рд╡реНрдпрд╡рдзрд╛рди рд╣реИрдВрдбрд▓рд░ рдпрд╛ рдорд╛рдирдХ рдЗрдВрдЯрд░рдкреНрдЯ рд╣реИрдВрдбрд▓рд░ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ

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

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

рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдЗрд╕ рддрд░рд╣ рдХреЗ рдХреЙрд▓ NUSE_NO_SUSPEND рдкреЙрдЬрд╝ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде рдХрд┐рдП рдЬрд╛рдиреЗ рдЪрд╛рд╣рд┐рдПред

рдЗрд╕реЗ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдПрдкреАрдЖрдИ рдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

 NUSE_Task_Current() NUSE_Task_Check_Stack() NUSE_Task_Information() NUSE_Task_Count() NUSE_Task_Suspend() NUSE_Task_Resume() NUSE_Task_Reset() NUSE_Partition_Allocate() NUSE_Partition_Deallocate() NUSE_Partition_Pool_Information() NUSE_Partition_Pool_Count() NUSE_Mailbox_Send() NUSE_Mailbox_Receive() NUSE_Mailbox_Reset() NUSE_Mailbox_Information() NUSE_Mailbox_Count() NUSE_Queue_Send() NUSE_Queue_Receive() NUSE_Queue_Jam() NUSE_Queue_Reset() NUSE_Queue_Information() NUSE_Queue_Count() NUSE_Pipe_Send() NUSE_Pipe_Receive() NUSE_Pipe_Jam() NUSE_Pipe_Reset() NUSE_Pipe_Information() NUSE_Pipe_Count() NUSE_Semaphore_Obtain() NUSE_Semaphore_Release() NUSE_Semaphore_Reset() NUSE_Semaphore_Information() NUSE_Semaphore_Count() NUSE_Event_Group_Set() NUSE_Event_Group_Retrieve() NUSE_Event_Group_Information() NUSE_Event_Group_Count() NUSE_Signals_Send() NUSE_Timer_Control() NUSE_Timer_Get_Remaining() NUSE_Timer_Reset() NUSE_Timer_Information() NUSE_Timer_Count() NUSE_Clock_Set() NUSE_Clock_Retrieve() NUSE_Release_Information() 

рдХреБрдЫ рдХреЙрд▓ рд╣рдореЗрд╢рд╛ рд╡рд░реНрдЬрд┐рдд рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рд╕реАрдзреЗ рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдп рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВ:
 NUSE_Task_Relinquish() NUSE_Signals_Receive() NUSE_Task_Sleep() 

рд░рд┐рдпрд▓ рдЯрд╛рдЗрдо рдХреНрд▓реЙрдХ рдЗрдВрдЯрд░рдкреНрдЯ рд╣реИрдВрдбрд▓рд░


рдиреНрдпреВрдХреНрд▓рд┐рдпрд░ рдПрд╕рдИ рдореЗрдВ рд░рд┐рдпрд▓ рдЯрд╛рдЗрдо рдХреНрд▓реЙрдХ (RTC) рдЗрдВрдЯрд░рдкреНрдЯ рд╣реИрдВрдбрд▓рд░ рдПрдХрдорд╛рддреНрд░ рдкреВрд░реНрдг рдЗрдВрдЯрд░рдкреНрдЯ рд╣реИрдВрдбрд▓рд░ рд╣реИред рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдореЗрдВ рд╕рдордп рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдПрдХ рдкреНрд░рдмрдВрдзрд┐рдд рдмрд╛рдзрд╛ рд╣реИрдВрдбрд▓рд░ рд▓рд┐рдЦрдиреЗ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рднреА рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред

рдЖрд░рдЯреАрд╕реА рдЗрдВрдЯрд░рдкреНрдЯ рд╣реИрдВрдбрд▓рд░ рдСрдкрд░реЗрд╢рди


RTC рдЗрдВрдЯрд░рдкреНрдЯ рд╣реИрдВрдбрд▓рд░ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬреЛ рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ ( # 27 ) рдореЗрдВ рд╕рд┐рд╕реНрдЯрдо рд╕рдордп рдХреЗ рд╡реНрдпрд╛рдкрдХ рд╡рд┐рд╖рдп рд╕реЗ рдирд┐рдкрдЯрд╛ рдерд╛ред рдЖрд╡реЗрджрди рдХреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡рд░реНрдгрд┐рдд рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИред

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреВрд░реНрдг RTC рдЗрдВрдЯрд░рдкреНрдЯ рд╣реИрдВрдбрд▓рд░ рдХреЛрдб рд╣реИред
 #if NUSE_TIMER_NUMBER != 0 { U8 timer; for (timer=0; timer<NUSE_TIMER_NUMBER; timer++) { if (NUSE_Timer_Status[timer]) { if (--NUSE_Timer_Value[timer] == 0) { NUSE_Timer_Expirations_Counter[timer]++; #if NUSE_TIMER_EXPIRATION_ROUTINE_SUPPORT || NUSE_INCLUDE_EVERYTHING if (NUSE_Timer_Expiration_Routine_Address[timer] != NULL) { ((PF1)NUSE_Timer_Expiration_Routine_Address[timer]) NUSE_Timer_Expiration_Routine_Parameter[timer]); } #endif /* reschedule? */ if (NUSE_Timer_Reschedule_Time[timer] != 0) { /* yes: set up time */ NUSE_Timer_Value[timer] = NUSE_Timer_Reschedule_Time[timer]; } else { /* no: disable */ NUSE_Timer_Status[timer] = FALSE; } } } } } #endif #if NUSE_SYSTEM_TIME_SUPPORT || NUSE_INCLUDE_EVERYTHING NUSE_Tick_Clock++; #endif #if NUSE_TASK_SLEEP || NUSE_INCLUDE_EVERYTHING { U8 task; for (task=0; task<NUSE_TASK_NUMBER; task++) { if (NUSE_Task_Timeout_Counter[task] != 0) { NUSE_Task_Timeout_Counter[task]--; if (NUSE_Task_Timeout_Counter[task] == 0) { NUSE_Wake_Task(task); } } } } #endif #if NUSE_SCHEDULER_TYPE == NUSE_TIME_SLICE_SCHEDULER if (--NUSE_Time_Slice_Ticks == 0) { NUSE_Reschedule(); } #endif 


рдЕрдЧрд▓рд╛, рд╣рдо RTC рдЗрдВрдЯрд░рдкреНрдЯ рд╣реИрдВрдбрд▓рд░ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рдЪрд╛рд░ рдореБрдЦреНрдп рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВред

рдЯрд╛рдЗрдорд░ (рдЯрд╛рдЗрдорд░)
рдпрджрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЯрд╛рдЗрдорд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдмрд╛рдзрд╛ рд╣реИрдВрдбрд▓рд░ рдкреНрд░рддреНрдпреЗрдХ рдЯрд╛рдЗрдорд░ рдХреЛ рдЗрд╕рдХреЗ рдХрд╛рдЙрдВрдЯрд░ рдХреЛ рдШрдЯрд╛рдХрд░ 1. рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓реВрдк рдореЗрдВ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдЯрд╛рдЗрдорд░ рдЧрд┐рдирддреА рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ (рдпрд╛рдиреА рдХрд╛рдЙрдВрдЯрд░ 0 рддрдХ рдкрд╣реБрдВрдЪрддрд╛ рд╣реИ), рддреЛ рджреЛ рдХреНрд░рд┐рдпрд╛рдПрдВ рд╕рдВрднрд╡ рд╣реИрдВ:

  • рдпрджрд┐ рдЯрд╛рдЗрдорд░ рдкреВрд░реНрдг рд╣реИрдВрдбрд▓рд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЯрд╛рдЗрдорд░ рдореЗрдВ рдПрдХ рд╕рд╣реА (рдЧреИрд░- NULL ) рдлрд╝рдВрдХреНрд╢рди рдкреЙрдЗрдВрдЯрд░ ( NUSE_Timer_Expiration_Routine_Address []] рдореЗрдВ рд╣реИ , рддреЛ рд╣реИрдВрдбрд▓рд░ рдХреЛ NUSE_Timer_Expiration_Routine_Parameter [] рдкрд░ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рд▓реЗрдХрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ;
  • рдпрджрд┐ рдЯрд╛рдЗрдорд░ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдЕрд░реНрдерд╛рдд, NUSE_Timer_Reschedule_Time [] рдПрдХ рдЧреИрд░-рд╢реВрдиреНрдп рдорд╛рди рд╣реИ), рдЗрд╕ рдорд╛рди рдХреЗ рд╕рд╛рде рдЯрд╛рдЗрдорд░ рдкреБрдирдГ рд▓реЛрдб рд╣реЛрддрд╛ рд╣реИред

рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЯрд╛рдЗрдорд░ рдХрд╛ рд╡рд░реНрдгрди рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ (# 28) рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рд╕рд┐рд╕реНрдЯрдо рдХреНрд▓реЙрдХ
рдпрджрд┐ рдПрдХ рд╕рд┐рд╕реНрдЯрдо рдЯрд╛рдЗрдорд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ NUSE_Tick_Cloc k рдХрд╛ рдорд╛рди рдХреЗрд╡рд▓ 1 рд╕реЗ рдмрдврд╝рддрд╛ рд╣реИред рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рд▓реЗрдЦ # 28 рдореЗрдВ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИред

рдПрдХ рдХрд╛рд░реНрдп рд╕реНрдердЧрд┐рдд рдХрд░реЗрдВ (рдХрд╛рд░реНрдп рдиреАрдВрдж)
рдпрджрд┐ рд░реБрдХрдиреЗ рд╡рд╛рд▓реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд╕рдХреНрд╖рдо рд╣реИ (рдЕрд░реНрдерд╛рдд, NUSE_Task_Sleep () API рдХреЙрд▓ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ), рдкреНрд░рддреНрдпреЗрдХ рдХрд╛рд░реНрдп рдХрд╛ рдЯрд╛рдЗрдордЖрдЙрдЯ рдХрд╛рдЙрдВрдЯрд░ ( NUSE_Task_Timeout_Counter [] рдореЗрдВ рдорд╛рди рдЪреЗрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рдпрд╣ рд╢реВрдиреНрдп рдХреЗ рдмрд░рд╛рдмрд░ рдирд╣реАрдВ рд╣реИ, рддреЛ 1. рд╕реЗ рдХрдо рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдпрд╣ рд╢реВрдиреНрдп рддрдХ рдкрд╣реБрдБрдЪрддрд╛ рд╣реИ, рддреЛ рдЗрд╕реА рдХрд╛рд░реНрдп рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред ред

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

рдирд┐рдпрдВрддреНрд░рд┐рдд рд░реБрдХрд╛рд╡рдЯ


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

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

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


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

рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рдФрд░ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рд╡реНрдпрд╡рдзрд╛рди рд╣реИрдВрдбрд▓рд░


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

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

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

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

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


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

рдорд╛рдирдХ рд╡реНрдпрд╡рдзрд╛рди рдХреЗ рд▓рд┐рдП, рдПрдкреАрдЖрдИ рдХреЙрд▓ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдп рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИ:

  • рдирд┐рдпрдВрддреНрд░рдг (рд╕рдХреНрд░рд┐рдпрдг / рдирд┐рд╖реНрдХреНрд░рд┐рдпрддрд╛) рд░реБрдХрд╛рд╡рдЯ (рд╕реНрдерд╛рдиреАрдп рдФрд░ рд╡рд┐рд╢реНрд╡ рд╕реНрддрд░ рдкрд░);
  • рдмрд╛рдзрд┐рдд рд╡реЗрдХреНрдЯрд░ рдХреА рд╕реНрдерд╛рдкрдирд╛ред

рдирд┐рдореНрди рд╕реНрддрд░ рдХреЗ рд╡реНрдпрд╡рдзрд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП:

  • рдХрд░реНрдиреЗрд▓ рдореЗрдВ рдПрдХ рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рдЗрдВрдЯрд░рдкреНрдЯ рд╣реИрдВрдбрд▓рд░ рдкрдВрдЬреАрдХреГрдд рдХрд░рдирд╛ред

рдЙрдЪреНрдЪ рд╕реНрддрд░ рдХреЗ рд╡реНрдпрд╡рдзрд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП:

  • рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рд░реБрдХрд╛рд╡рдЯреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг / рдирд┐рд╖реНрдХрд╛рд╕рди;
  • рдЙрдЪреНрдЪ рд╕реНрддрд░ рдХреА рдмрд╛рдзрд╛ рд╕рдХреНрд░рд┐рдпрдг;
  • рдЖрд╡реЗрджрди рдореЗрдВ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рд╡реНрдпрд╡рдзрд╛рдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ (рдлрд┐рд▓рд╣рд╛рд▓);
  • рд╕рднреА рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рд╡реНрдпрд╡рдзрд╛рдиреЛрдВ рдХреА рдЗрдХрд╛рдЗрдпреЛрдВ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдХреЗрдд рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛;
  • рд╡рд░реНрддрдорд╛рди рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рд╡реНрдпрд╡рдзрд╛рди рдХреА рдЗрдХрд╛рдЗрдпреЛрдВ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдХреЗрдд рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛;
  • рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рд╡реНрдпрд╡рдзрд╛рди рдХреА рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ред

рд╡реИрд╢реНрд╡рд┐рдХ рд╡реНрдпрд╡рдзрд╛рди рдирд┐рдпрдВрддреНрд░рдг

рдпрд╣ рдХреЙрд▓ рдХрд╛рд░реНрдп рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ рдмрд╛рдзрд┐рдд рдпрд╛ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░ рджреЗрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЗрд╕ рдХреЙрд▓ рджреНрд╡рд╛рд░рд╛ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЕрд╡рд░реЛрдз рддрдм рддрдХ рдмрдирд╛ рд░рд╣реЗрдЧрд╛ рдЬрдм рддрдХ рдХрд┐ рд╡рд╣ рдЗрд╕ рдХреЙрд▓ рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдХреНрд░рд┐рдп рди рд╣реЛ рдЬрд╛рдПред

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

 INT NU_Control_Interrupts (INT new_level); 

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

new_level - рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рд╡реНрдпрд╡рдзрд╛рди рд╕реНрддрд░ред рдпрд╣ рд╣рдореЗрд╢рд╛ рдорд╛рди NU_DISABLE_INTERRUPTS (рд╕рднреА рд╡реНрдпрд╡рдзрд╛рдиреЛрдВ рдХреЛ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░рддрд╛ рд╣реИ) рдФрд░ NU_ENABLE_INTERRUPTS (рд╕рднреА рд╡реНрдпрд╡рдзрд╛рдиреЛрдВ рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░рддрд╛ рд╣реИ) рд▓реЗ рд╕рдХрддрд╛ рд╣реИред рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЕрдиреНрдп рдореВрд▓реНрдп рдЙрдкрд▓рдмреНрдз рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

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

рдпрд╣ рд╕реЗрд╡рд╛ рдХреЙрд▓ рд╕рдХреНрд░рд┐рдп рд╡реНрдпрд╡рдзрд╛рди рдХреЗ рдкрд┐рдЫрд▓реЗ рд╕реНрддрд░ рдХреЛ рд▓реМрдЯрд╛рддрд╛ рд╣реИред

рд╕реНрдерд╛рдиреАрдп рд╡реНрдпрд╡рдзрд╛рди рдирд┐рдпрдВрддреНрд░рдг

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

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

 INT NU_Local_Control_Interrupts (INT new_level); 

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

new_level - рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рд╡реНрдпрд╡рдзрд╛рди рд╕реНрддрд░ред рдпрд╣ рд╣рдореЗрд╢рд╛ рдорд╛рди NU_DISABLE_INTERRUPTS (рд╕рднреА рд╡реНрдпрд╡рдзрд╛рдиреЛрдВ рдХреЛ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░рддрд╛ рд╣реИ) рдФрд░ NU_ENABLE_INTERRUPTS (рд╕рднреА рд╡реНрдпрд╡рдзрд╛рдиреЛрдВ рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░рддрд╛ рд╣реИ) рд▓реЗ рд╕рдХрддрд╛ рд╣реИред рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЕрдиреНрдп рдореВрд▓реНрдп рдЙрдкрд▓рдмреНрдз рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп:
рдпрд╣ рд╕реЗрд╡рд╛ рдХреЙрд▓ рд╕рдХреНрд░рд┐рдп рд╡реНрдпрд╡рдзрд╛рди рдХреЗ рдкрд┐рдЫрд▓реЗ рд╕реНрддрд░ рдХреЛ рд▓реМрдЯрд╛рддрд╛ рд╣реИред

рдмрд╛рдзрд┐рдд рд╡реЗрдХреНрдЯрд░ рдХреА рд╕реНрдерд╛рдкрдирд╛

рдпрд╣ рдУрд╡рд░рд╣реЗрдб рдмрд╛рдзрд╛ рд╣реИрдВрдбрд▓рд░ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рд╡реЗрдХреНрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдмрд╛рдзрд╛ рд╡реЗрдХреНрдЯрд░ рдХреЛ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред

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

 VOID *NU_Setup_Vector (INT vector, VOID *new); 

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

рд╡реЗрдХреНрдЯрд░ - рдЗрдВрдЯрд░рдкреНрдЯ рд╡реЗрдХреНрдЯрд░ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдкреНрдЯ рдкрдВрдЬреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛;
рдирдпрд╛ рд╡реЗрдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИрдВрдбрд▓рд░ рд╣реИред

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

рдпрд╣ рдпреВрдЯрд┐рд▓рд┐рдЯреА рдХреЙрд▓ рдкреЙрдЗрдВрдЯрд░ рд╣реИрдВрдбрд▓рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреЙрдЗрдВрдЯрд░ рд▓реМрдЯрд╛рддреА рд╣реИ рдЬреЛ рдкрд╣рд▓реЗ рдмрд╛рдзрд┐рдд рд╡реЗрдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП рдкрдВрдЬреАрдХреГрдд рд╣реИред

рд▓реЛ рд▓реЗрд╡рд▓ рдЗрдВрдЯрд░рдкреНрдЯ рд▓реЙрдЧрд┐рдВрдЧ

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

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

 STATUS NU_Register_LISR (INT vector, VOID (*lisr_entry) (INT), VOID (**old_lisr) (INT); 

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

рд╡реЗрдХреНрдЯрд░ - рдЗрдВрдЯрд░рдкреНрдЯ рд╡реЗрдХреНрдЯрд░ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдкреНрдЯ рдкрдВрдЬреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛;
lisr_entry - рд╡рд╣ рдлрд╝рдВрдХреНрд╢рди рдЬреЛ рд╡реЗрдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП рдкрдВрдЬреАрдХреГрдд рд╣реЛрдЧрд╛, NU_NULL рдорд╛рди рд╕рджрд┐рд╢ рдХреЛ рд╕рд╛рдлрд╝ рдХрд░реЗрдЧрд╛;
old_lisr рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реИ рдЬреЛ рдкрд╣рд▓реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╡реЗрдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП рдкрдВрдЬреАрдХреГрдд рд╣реИред

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

NU_SUCCESS - рдХреЙрд▓ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рдерд╛;
NU_INVALID_VECTOR - рдЕрдорд╛рдиреНрдп рд╡реЗрдХреНрдЯрд░;
NU_NOT_Rector - рдлрд┐рд▓рд╣рд╛рд▓ рд╡реЗрдХреНрдЯрд░ рдкрдВрдЬреАрдХреГрдд рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ l isr_entry рдореЗрдВ рдбреА-рдкрдВрдЬреАрдХрд░рдг рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛;
NO_MORE_LISRS - рдкрдВрдЬреАрдХреГрдд рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рд╡реНрдпрд╡рдзрд╛рди рд╕рдВрдЪрд╛рд▓рдХреЛрдВ рдХреА рдЕрдзрд┐рдХрддрдо рд╕рдВрдЦреНрдпрд╛ рддрдХ рдкрд╣реБрдБрдЪ рдЧрдпрд╛ рд╣реИред

рдПрдХ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдЗрдВрдЯрд░рдкреНрдЯ рд╣реИрдВрдбрд▓рд░ рдмрдирд╛рдирд╛
рдпрд╣ рдпреВрдЯрд┐рд▓рд┐рдЯреА рдХреЙрд▓ рдПрдХ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдЗрдВрдЯрд░рдкреНрдЯ рд╣реИрдВрдбрд▓рд░ рдмрдирд╛рддрд╛ рд╣реИред

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

 STATUS NU_Create_HISR (NU_HISR *hisr, CHAR *name, VOID (*hisr_entry) (VOID), OPTION priority, VOID *stack_pointer, UNSIGNED stack_size); 

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

herr - рдПрдХ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдЗрдВрдЯрд░рдкреНрдЯ рд╣реИрдВрдбрд▓рд░ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдЖрдкреВрд░реНрддрд┐ рдирд┐рдпрдВрддреНрд░рдг рдмреНрд▓реЙрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдХреЗрддрдХ;
рдирд╛рдо - рдПрдХ рд╕рдорд╛рдкреНрддрд┐ рд╢реВрдиреНрдп рдХреЗ рд╕рд╛рде рдПрдХ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдЗрдВрдЯрд░рдкреНрдЯ рд╣реИрдВрдбрд▓рд░ рдХреЗ рд▓рд┐рдП 7-рдЪрд░рд┐рддреНрд░ рдирд╛рдо рдХрд╛ рд╕реВрдЪрдХ;
Hisr_entry - рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рд╡реНрдпрд╡рдзрд╛рди рд╣реИрдВрдбрд▓рд░ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ;
рдкреНрд░рд╛рдердорд┐рдХрддрд╛ - рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдмрд╛рдзрд╛ рд╣реИрдВрдбрд▓рд░ (0-2) рдХреЗ рд▓рд┐рдП рддреАрди рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдПрдВ рд╣реИрдВ; рдкреНрд░рд╛рдердорд┐рдХрддрд╛ 0 рдЙрдЪреНрдЪрддрдо рд╣реИ;
stack_pointer - рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рд╡реНрдпрд╡рдзрд╛рди рд╣реИрдВрдбрд▓рд░ рдХреЗ рд╕реНрдЯреИрдХ рдХреНрд╖реЗрддреНрд░ рдХреЗ рд▓рд┐рдП рд╕реВрдЪрдХ;
stack_size - рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рд╡реНрдпрд╡рдзрд╛рди рд╣реИрдВрдбрд▓рд░ рдХреЗ рдвреЗрд░ рдореЗрдВ рдмрд╛рдЗрдЯреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ред

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

NU_SUCCESS - рдХреЙрд▓ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рдерд╛;
NU_INVALID_HISR - рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рд╡реНрдпрд╡рдзрд╛рди рд╣реИрдВрдбрд▓рд░ ( NULL ) рдХреА рдирд┐рдпрдВрддреНрд░рдг рдЗрдХрд╛рдИ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд╢рдХреНрдд рд╕реВрдЪрдХ рдпрд╛ рдирд┐рдпрдВрддреНрд░рдг рдЗрдХрд╛рдИ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрдкрдпреЛрдЧ рдореЗрдВ рд╣реИ;
NU_INVALID_ENTRY - рдПрдХ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдмрд╛рдзрд╛ рд╣реИрдВрдбрд▓рд░ ( NULL ) рдХреЗ рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд╢рдХреНрдд рд╕реВрдЪрдХ;
NU_INVALID_PRIORITY - рдПрдХ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рд╡реНрдпрд╡рдзрд╛рди рд╣реИрдВрдбрд▓рд░ рдХреЗ рд▓рд┐рдП рдЧрд▓рдд рдкреНрд░рд╛рдердорд┐рдХрддрд╛;
NU_INVALID_MEMORY - рдЕрдорд╛рдиреНрдп рд╕реНрдЯреИрдХ рдкреЙрдЗрдВрдЯрд░;
NU_INVALID_SIZE - рд╕реНрдЯреИрдХ рдХрд╛ рдЖрдХрд╛рд░ рдмрд╣реБрдд рдЫреЛрдЯрд╛ рд╣реИред

рдПрдХ рдЙрдЪреНрдЪ рд╕реНрддрд░реАрдп рдмрд╛рдзрд╛ рд╣реИрдВрдбрд▓рд░ рдХреЛ рдирд┐рдХрд╛рд▓рдирд╛
рдпрд╣ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЙрд▓ рдкрд╣рд▓реЗ рдмрдирд╛рдП рдЧрдП рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдЗрдВрдЯрд░рдкреНрдЯ рд╣реИрдВрдбрд▓рд░ рдХреЛ рд╣рдЯрд╛ рджреЗрддреА рд╣реИред

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

 STATUS NU_Delete_HISR (NU_HISR *hisr); 

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

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

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

NU_SUCCESS - рдХреЙрд▓ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рдерд╛;
NU_INVALID_HISR - рдПрдХ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рд╡реНрдпрд╡рдзрд╛рди рд╣реИрдВрдбрд▓рд░ рдореЗрдВ рдЕрдорд╛рдиреНрдп рд╕реВрдЪрдХред

рдПрдХ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рд╡реНрдпрд╡рдзрд╛рди рд╣реИрдВрдбрд▓рд░ рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░рдирд╛

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

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

 STATUS NU_Activate_HISR (NU_HISR *hisr); 

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

herr рдПрдХ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рд╡реНрдпрд╡рдзрд╛рди рд╣реИрдВрдбрд▓рд░ рдХреЗ рдирд┐рдпрдВрддреНрд░рдг рдмреНрд▓реЙрдХ рдХрд╛ рдПрдХ рд╕рдВрдХреЗрддрдХ рд╣реИред
рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп:
NU_SUCCESS - рдХреЙрд▓ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рдерд╛;
NU_INVALID_HISR - рдПрдХ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рд╡реНрдпрд╡рдзрд╛рди рд╣реИрдВрдбрд▓рд░ рдХреА рдирд┐рдпрдВрддреНрд░рдг рдЗрдХрд╛рдИ рдХреЗ рд▓рд┐рдП рдЕрдорд╛рдиреНрдп рд╕реВрдЪрдХред

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

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

 UNSIGNED NU_Established_HISRs(VOID); 

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

рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп:
рдпрд╣ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЙрд▓ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдЗрдВрдЯрд░рдкреНрдЯ рд╣реИрдВрдбрд▓рд░ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд▓реМрдЯрд╛рддрд╛ рд╣реИред

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

рдпрд╣ рд╕реЗрд╡рд╛ рдХреЙрд▓ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рд╕рднреА рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рд╡реНрдпрд╡рдзрд╛рди рд╕рдВрдЪрд╛рд▓рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреНрд░рдорд┐рдХ рд╕реВрдЪреА рдмрдирд╛рддрд╛ рд╣реИред

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

 UNSIGNED NU_HISR_Pointers(NU_HISR **pointer_list, UNSIGNED maximum_pointers); 

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

pointer_list - рд╕рдВрдХреЗрдд рдХреА рдПрдХ рд╕рд░рдгреА рдХреЗ рд▓рд┐рдП рд╕реВрдЪрдХ NU_HISR ; рдпрд╣ рд╕рд░рдгреА рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреЗ рд╕рд╛рде рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдЗрдВрдЯрд░рдкреНрдЯ рд╣реИрдВрдбрд▓рд░ рд╕реЗ рднрд░реА рдЬрд╛рдПрдЧреА;
max_pointers - NU_HISR рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреА рдЕрдзрд┐рдХрддрдо рд╕рдВрдЦреНрдпрд╛ рдЬреЛ рдХрд┐ рд╕рд░рдгреА рдореЗрдВ рд░рдЦреА рдЬрд╛ рд╕рдХрддреА рд╣реИ; рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рдкреЙрдЗрдВрдЯрд░_рд▓рд┐рд╕реНрдЯ рд╕рд░рдгреА рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрддрд╛ рд╣реИред

рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп:
рдпрд╣ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЙрд▓ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╕рдХреНрд░рд┐рдп рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рд╡реНрдпрд╡рдзрд╛рди рд╕рдВрдЪрд╛рд▓рдХреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд▓реМрдЯрд╛рддрд╛ рд╣реИред

рд╡рд░реНрддрдорд╛рди рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рд╡реНрдпрд╡рдзрд╛рди рд╣реИрдВрдбрд▓рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдХреЗрддрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
рдпрд╣ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЙрд▓ рдкреЙрдЗрдВрдЯрд░ рдХреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдЗрдВрдЯрд░рдкреНрдЯ рд╣реИрдВрдбрд▓рд░ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИред

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

 NU_HISR *NU_Current_HISR_Pointer(VOID); 

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

рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп:
рдпрд╣ рд╕реЗрд╡рд╛ рдХреЙрд▓ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рд╡реНрдпрд╡рдзрд╛рди рд╣реИрдВрдбрд▓рд░ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреЙрдЗрдВрдЯрд░ рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдХреЛрдИ рдЧреИрд░-рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рд╡реНрдпрд╡рдзрд╛рди рд╣реИрдВрдбрд▓рд░ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ, рддреЛ NU_NULL рд╡рд╛рдкрд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

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

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

 STATUS NU_HISR_Information(NU_HISR *hisr, char *name, UNSIGNED *scheduled_count, DATA_ELEMENT *priority, VOID **stack_base, UNSIGNED *stack_size, UNSIGNED *minimum_stack); 

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

herr - рдПрдХ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рд╡реНрдпрд╡рдзрд╛рди рд╣реИрдВрдбрд▓рд░ рдХрд╛ рд╕реВрдЪрдХ;
рдирд╛рдо - рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рд╡реНрдпрд╡рдзрд╛рди рд╣реИрдВрдбрд▓рд░ рдХреЗ рдирд╛рдо рдХреЗ рд▓рд┐рдП 8-рд╡рд░реНрдг рдХреНрд╖реЗрддреНрд░ рдХрд╛ рд╕реВрдЪрдХ, рд╕рдорд╛рдкреНрддрд┐ рд╢реВрдиреНрдп рд╕рд╣рд┐рдд;
рд╢реЗрдбреНрдпреВрд▓_рдХрд╛рдЙрдВрдЯ - рдХреБрд▓ рд╕реНрддрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдЪрд░ рдХреЗ рд▓рд┐рдП рд╕реВрдЪрдХ рдпрд╣ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдЗрдВрдЯрд░рдкреНрдЯ рд╣реИрдВрдбрд▓рд░ рд╢реЗрдбреНрдпреВрд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛;
рдкреНрд░рд╛рдердорд┐рдХрддрд╛ - рдПрдХ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рд░реБрдХрд╛рд╡рдЯ рд╣реИрдВрдбрд▓рд░ рдХреА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдЪрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реВрдЪрдХ;
stack_base - рдкреЙрдЗрдВрдЯрд░ рдХреЛ рдореВрд▓ рдкреЙрдЗрдВрдЯрд░ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреЙрдЗрдВрдЯрд░ рдХреЛ рдкреЙрдЗрдВрдЯрд░; рдпрд╣ рд╡рд╣реА рдкреЙрдЗрдВрдЯрд░ рд╣реИ рдЬреЛ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдЗрдВрдЯрд░рдкреНрдЯ рд╣реИрдВрдбрд▓рд░ рдмрдирд╛рддреЗ рд╕рдордп рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛;
stack_size - рдПрдХ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдЗрдВрдЯрд░рдкреНрдЯ рд╣реИрдВрдбрд▓рд░ рдХреЗ рдХреБрд▓ рд╕реНрдЯреИрдХ рдЖрдХрд╛рд░ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЪрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реВрдЪрдХ;
рдиреНрдпреВрдирддрдо_рд╕реНрдЯреИрдХ - рдПрдХ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдЕрдВрддрд░рд╛рд▓ рд╣реИрдВрдбрд▓рд░ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди рдЙрдкрд▓рдмреНрдз рд╕реНрдЯреИрдХ рд╕реНрдерд╛рди рдХреА рдиреНрдпреВрдирддрдо рдорд╛рддреНрд░рд╛ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЪрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реВрдЪрдХред

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

NU_SUCCESS - рдХреЙрд▓ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рдерд╛;
NU_INVALID_HISR - рдПрдХ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдмрд╛рдзрд╛ рд╣реИрдВрдбрд▓рд░ рдореЗрдВ рдЕрдорд╛рдиреНрдп рд╕реВрдЪрдХред

рдПрдкреАрдЖрдИ рдмрд╛рдзрд┐рдд рд╣реИрдВрдбрд▓рд░ рд╕реЗ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ


рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рд╡реНрдпрд╡рдзрд╛рди рд╕рдВрдЪрд╛рд▓рдХреЛрдВ рд╕реЗ API рдХреЙрд▓ рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рд╡реНрдпрд╡рдзрд╛рди
рд╣реИрдВрдбрд▓рд░ рдХреЗрд╡рд▓ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ RTOS рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИ:

 NU_Activate_HISR() NU_Local_Control_Interrupts() NU_Current_HISR_Pointer() NU_Current_Task_Pointer() NU_Retrieve_Clock() 

рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рд╡реНрдпрд╡рдзрд╛рди рд╕рдВрдЪрд╛рд▓рдХреЛрдВ рд╕реЗ API рд╕реЗрд╡рд╛ рдХреЙрд▓
рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рд╡реНрдпрд╡рдзрд╛рди рд╕рдВрдЪрд╛рд▓рдХреЛрдВ рдХреЗ рдкрд╛рд╕ рдЕрдзрд┐рдХрд╛рдВрд╢ рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдЖрд░рдЯреАрдУрдПрд╕ рдХрд╛рд░реНрдпреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рд╣реЛрддреА рд╣реИ, рд╕реНрд╡-рдард╣рд░рд╛рд╡ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЫреЛрдбрд╝рдХрд░, рдЪреВрдВрдХрд┐ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдЗрдВрдЯрд░рдкреНрдЯ рд╣реИрдВрдбрд▓рд░ рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдЖрд░рдЯреАрдУрдПрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдирд┐рд▓рдВрдмрд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдкреИрд░рд╛рдореАрдЯрд░ рд╣рдореЗрд╢рд╛ NU_NO_SUSPEND рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЗрд╕ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХрд╛ рдЕрдЧрд▓рд╛ рд▓реЗрдЦ рдиреНрдпреВрдХреНрд▓рд┐рдпрд╕ рдПрд╕рдИ рдХреЗ рдЖрд░рдВрдн рдФрд░ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдХрд╡рд░ рдХрд░реЗрдЧрд╛ред

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

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


All Articles