
рдХреБрдЫ рджрд┐рди рдкрд╣рд▓реЗ рдореИрдВрдиреЗ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рдФрд░ рдлрд┐рд░ рдЕрдЪрд╛рдирдХ рдПрдЖрд░рдПрдо рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдУрдПрд╕ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рд┐рдЦрдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд▓реЗрдЦ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ред рдореИрдВрдиреЗ рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рдХрд┐рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рд╣реИрдмреЗ рдФрд░ рдЬреА + рджреЛрдиреЛрдВ рдкрд░ рдХрд╛рдлреА рджрд┐рд▓рдЪрд╕реНрдк рд╕рдореАрдХреНрд╖рд╛рдПрдВ рдорд┐рд▓реАрдВред
рдЖрдЬ рдореИрдВ рджреВрд╕рд░реА рдУрд░ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдмрд╛рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛, рдореИрдВ рдЗрд╕ рдмрд╛рдд рдХреА рдЪрд░реНрдЪрд╛ рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдмрдврд╝рддреА рдЬрдЯрд┐рд▓рддрд╛ рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдПрдЖрд░рдПрдо рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЛ рдХреИрд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд┐рдпрд╛ рдЬрд╛рдП, рдЬрдм рддрдХ рдХрд┐ рд╣рдо рдЕрдкрдирд╛ рдУрдПрд╕ рдирд╣реАрдВ рд▓рд┐рдЦрддреЗ рдпрд╛ рдЬрдм рддрдХ рдореИрдВ рдКрдм рдирд╣реАрдВ рдЬрд╛рддрд╛ред рдпрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдо Contiki, TinyOS, ChibiOS рдпрд╛ FreeRTOS рдореЗрдВ рдкрд┐рдХрд┐рдВрдЧ рдкрд░ рдХреВрджреЗрдВрдЧреЗ, рдЬреЛ рдЬрд╛рдирддреЗ рд╣реИрдВ, рдЗрддрдиреЗ рд╕рд╛рд░реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИрдВ (рдФрд░ TinyOS рдХреА рдЕрдкрдиреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рднреА рд╣реИ!)ред
рддреЛ рдХреНрдпреЛрдВ рдПрдЖрд░рдПрдо? 8-рдмрд┐рдЯ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рд╕рд╛рде рдлрд╝рд┐рдбрд▓рд┐рдВрдЧ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ, рдЬрд▓реНрдж рд╣реА рдХрд╖реНрдЯрдкреНрд░рдж рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдЖрд░рдПрдо рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╛рд╕ рдЙрдкрдХрд░рдг рд▓рдВрдмреЗ рдЕрдиреБрднрд╡ рдФрд░ рдХрд╛рдо рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕реБрдЦрдж рд╣реИрдВред рдЗрд╕реА рд╕рдордп, рдХрд┐рд╕реА рддрд░рд╣ рдХреЗ "рдореВрд▓реНрдпрд╛рдВрдХрди рдмреЛрд░реНрдб" рдкрд░ рдПрд▓рдИрдбреА рдХреЛ рдкрд▓рдХ рдЭрдкрдХрд╛рдирд╛ рд╢реБрд░реВ рдХрд░рдирд╛ рдЙрддрдирд╛ рд╣реА рд╕рд░рд▓ рд╣реИ рдЬрд┐рддрдирд╛ рдХрд┐ рдЕрд░рдбреВрдЗрдиреЛ рдкрд░ред
рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдореЗрдВ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рд╡рд┐рд╖рдпрд╛рдВрддрд░
рдПрдЖрд░рдПрдо рдПрдХ рдЕрджреНрднреБрдд рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЛ рдмрдврд╝рд╛рд╡рд╛ рджреЗ рд░рд╣рд╛ рд╣реИ рдЬреЛ рдЗрд╕реЗ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд▓рд╛рдЗрд╕реЗрдВрд╕ рджреЗрддрд╛ рд╣реИ, рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рдХрд▓реНрдкрдирд╛ рдХрд░рдирд╛ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдХрд┐ рдХрд┐рд╕ рдбрд┐рд╡рд╛рдЗрд╕ рдореЗрдВ рдЗрд╕ рдХрдВрдкрдиреА рдХреЗ рдЙрддреНрдкрд╛рджреЛрдВ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдирд╣реАрдВ рд╣реИред рдПрдЖрд░рдПрдо рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЖрдкрдХреЗ рд╕реНрдорд╛рд░реНрдЯрдлреЛрди рдореЗрдВ рдХрдИ рдХреЛрд░ рд╣реЛрдиреЗ рдХреА рдЧрд╛рд░рдВрдЯреА рд╣реИред рдПрдХ рдЖрдзреБрдирд┐рдХ рд▓реИрдкрдЯреЙрдк рдореЗрдВ рдХреБрдЫ рдФрд░ рд╣реИрдВ (рдФрд░ рдпрд╣ рд╕реАрдкреАрдпреВ рднреА рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдЫ рдкрд░рд┐рдзреАрдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдирд┐рдпрдВрддреНрд░рдХ рднреА рд╣реИ), рдХреБрдЫ рдФрд░ - рдПрдХ рдХрд╛рд░ рдореЗрдВред рд╡реЗ рдЕрдиреНрдп рдШрд░реЗрд▓реВ рдЪреАрдЬреЛрдВ рдореЗрдВ рднреА рд╣реИрдВ: рдорд╛рдЗрдХреНрд░реЛрд╡реЗрд╡ рдФрд░ рдЯреАрд╡реАред
рдпрд╣ рд▓рдЪреАрд▓рд╛рдкрди рдЗрд╕ рддрдереНрдп рд╕реЗ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рд╕рдмрд╕реЗ рдмреБрдирд┐рдпрд╛рджреА рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рдПрдЖрд░рдПрдо рдХреЛрд░ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред рдЕрдм рдЗрд╕ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреА рддреАрди рдХрд┐рд╕реНрдореЗрдВ рд╣реИрдВред
рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ "рд╕рд╛рдорд╛рдиреНрдп рдЙрджреНрджреЗрд╢реНрдп" рдЙрдкрдХрд░рдгреЛрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рд╕реНрдорд╛рд░реНрдЯрдлреЛрди рдпрд╛ рдиреЗрдЯрдмреБрдХ рдореЗрдВ рдореБрдЦреНрдп рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рд░реВрдк рдореЗрдВред рдпрд╣ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛ рд╕рдВрдкрдиреНрди рд╣реИ, рдПрдХ рдкреВрд░реНрдг рд╡рд┐рдХрд╕рд┐рдд MMU (рдореЗрдореЛрд░реА рдореИрдиреЗрдЬрдореЗрдВрдЯ рдореЙрдбреНрдпреВрд▓), рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдореЗрдВ рдЬрд╛рд╡рд╛ рдирд┐рд░реНрджреЗрд╢ рдмрд╛рдпрдЯреЗрдХреЛрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ DRM рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рднреА рд╣реИред
рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреНрд░реЛрдлрд╛рдЗрд▓ рдХрд╛ рд╕рдЯреАрдХ рд╡рд┐рдкрд░реАрдд рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ (рдЕрдЪрд╛рдирдХ!) рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдиреНрдпреВрдирддрдо рдмрд┐рдЬрд▓реА рдХреА рдЦрдкрдд рдФрд░ рдирд┐рдпрддрд╛рддреНрдордХ рд╡реНрдпрд╡рд╣рд╛рд░ рдпрд╣рд╛рдВ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИрдВред рдФрд░ рдЕрдВрдд рдореЗрдВ,
рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдкреНрд░реЛрдлрд╛рдЗрд▓ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд░реВрдк
рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдПрдХ рдЧрд╛рд░рдВрдЯреАрдХреГрдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдордп рд╣реЛрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдЗрди рд╕рднреА рдкреНрд░реЛрдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдПрдХ рдпрд╛ рдХрдИ рдХреЙрд░реНрдЯреЗрдХреНрд╕ рдХреЛрд░ рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкреНрд░рд╛рдкреНрдд рд╣реБрдЖ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреЙрд░реНрдЯреЗрдХреНрд╕-рдП 9 рдПрдкреНрд▓реАрдХреЗрд╢рди рдкреНрд░реЛрдлрд╛рдЗрд▓ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ рдФрд░ рдЖрдИрдлреЛрди 4 рдПрд╕ рдореЗрдВ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ, рдФрд░ рдХреЙрд░реНрдЯреЗрдХреНрд╕-рдПрдо 0 рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдкреНрд░реЛрдлрд╛рдЗрд▓ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред
рд▓реЛрд╣реЗ рдХреЗ рдЯреБрдХрдбрд╝реЗ!

рдПрдХ рд▓рдХреНрд╖реНрдп рдордВрдЪ рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдо рдХреЛрд░реНрдЯреЗрдХреНрд╕-рдПрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХреНрд░рдорд╢рдГ рд╕рдмрд╕реЗ рд╕рд░рд▓ рд╣реИ, рд╣рдореЗрдВ рдХрдо рдкреНрд░рд╢реНрдиреЛрдВ рдореЗрдВ рддрд▓реНрд▓реАрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдПрдХ рдкрд░реАрдХреНрд╖рдг рдЙрдкрдХрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВ рдЖрдкрдХреЛ LPC1114 - NXP MCU, рдПрдХ рд╕рд░реНрдХрд┐рдЯ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реВрдВ, рдЬрд┐рд╕ рдкрд░ рдЖрдк рдЕрдкрдиреЗ рдШреБрдЯрдиреЗ рдкрд░ рд╢рд╛рдмреНрджрд┐рдХ рд░реВрдк рд╕реЗ рдЗрдХрдЯреНрдард╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдирд╣реАрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЖрдкрдХреЛ рдХреЗрд╡рд▓ MCU рд╣реА рдЪрд╛рд╣рд┐рдП, 3.3 V FTDI рдХреЗрдмрд▓, рдХрдИ рдПрд▓ рдИ рдбреА рдФрд░ рдкреНрд░рддрд┐рд░реЛрдзрдХ)ред LPC1114 Cortex-M0 рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХрд╛ рд╕рдмрд╕реЗ рдЕрд▓рдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рд╣реЛрдЧрд╛ред

рдПрдХ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдо
mbed рдордВрдЪ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВрдЧреЗ, рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ,
LPC1768 рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдореЙрдбрд▓ рдХреЗ рд╕рд╛рде (рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЕрдВрджрд░ рдХреЛрд░реНрдЯреЗрдХреНрд╕-рдПрдо 3 рд╣реИ, рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рдкрд░рд┐рд╖реНрдХреГрдд)ред рд╡рд┐рдХрд▓реНрдк рдкрд╣рд▓реЗ рд╕реЗ рдЗрддрдирд╛ рдмрдЬрдЯреАрдп рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдХреЛ рдЪрд┐рдк рдкрд░ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдпрдерд╛рд╕рдВрднрд╡ рд╕рд░рд▓ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╣рд╛рдВ, рдФрд░ рдЖрдк рд╕реНрд╡рдпрдВ рдореИрдмреЗрдб рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЗ рд╕рд╛рде рдЦреЗрд▓ рд╕рдХрддреЗ рд╣реИрдВ (рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ: рдпрд╣ рдПрдХ рдСрдирд▓рд╛рдЗрди рдЖрдИрдбреАрдИ рд╣реИ рдФрд░ рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЖрдк рдЖрд░реНрджреБрдЗрдиреЛ рд╕реНрддрд░ рдкрд░ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ)ред
рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ
рдЖрдзреБрдирд┐рдХ рдПрдЖрд░рдПрдо рдХреА рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рд╡рд┐рд╢реЗрд╖рддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реА рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдмрд┐рдирд╛ рдХреЛрдбрд╛рдВрддрд░рдХ рдЖрд╡реЗрд╖рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХреЛрдбрд╛рдВрддрд░рдХ рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИ, рдХреЙрд░реНрдЯреЗрдХреНрд╕-рдПрдо 0 рдореЗрдВ рдХреЗрд╡рд▓ 56 рдХрдорд╛рдВрдб рд╣реИрдВ)ред рдпрджреНрдпрдкрд┐ C рдХрдорд╛рдВрдб рд╕реЗ рдХреБрдЫ рдХрдорд╛рдВрдб рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИрдВ, CMSIS - рдХреЙрд░реНрдЯреЗрдХреНрд╕ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕реНрдЯреИрдВрдбрд░реНрдб рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдПрдХ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдбреНрд░рд╛рдЗрд╡рд░ рд╣реИ рдЬреЛ рдЗрд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд╕рднреА рдмреБрдирд┐рдпрд╛рджреА рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИред
рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреИрд╕реЗ рд▓реЛрдб рд╣реЛрддрд╛ рд╣реИ? рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реНрдерд┐рддрд┐ рддрдм рд╣реЛрддреА рд╣реИ рдЬрдм рдпрд╣ рдХреЗрд╡рд▓ 0x00000000 рдкрддреЗ рд╕реЗ рдЖрджреЗрд╢реЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреБрдЫ рд╣рдж рддрдХ рдЕрдзрд┐рдХ рдмреБрджреНрдзрд┐рдорд╛рди рд╣реИ, рдФрд░ рдореЗрдореЛрд░реА рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдбреЗрдЯрд╛ рдкреНрд░рд╛рд░реВрдк рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддреН, рдмрд╛рдзрд╛ рд╡реИрдХреНрдЯрд░ рдХреА рдПрдХ рддрд╛рд▓рд┐рдХрд╛:

рдХрд╛рд░реНрдпрдХреНрд░рдо рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ: рдкреНрд░реЛрд╕реЗрд╕рд░ 0x00000000 рдкрд░ рдореВрд▓реНрдп рдкрдврд╝рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдПрд╕рдкреА рдХреЛ рд▓рд┐рдЦрддрд╛ рд╣реИ (
рдПрд╕рдкреА рд░рдЬрд┐рд╕реНрдЯрд░ рд╣реИ рдЬреЛ рд╕реНрдЯреИрдХ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ), рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдпрд╣ 0x00000004 рдкрд░ рдореВрд▓реНрдп рдкрдврд╝рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдкреАрд╕реА рдкрд░ рд▓рд┐рдЦрддрд╛ рд╣реИ (
рдкреАрд╕реА рдпрд╣ рд░рдЬрд┐рд╕реНрдЯрд░ рд╣реИ рдЬреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ) рд╡рд░реНрддрдорд╛рди рдирд┐рд░реНрджреЗрд╢ + 4 рдмрд╛рдЗрдЯреНрд╕)ред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдХреБрдЫ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрдирд╛ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдореЗрдореЛрд░реА рдореЗрдВ рдХрд╣реАрдВ рди рдХрд╣реАрдВ рдПрдХ рд╕реНрдЯреИрдХ рд╣реЛрддрд╛ рд╣реИ (рдпрд╛рдиреА, C рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рд╢рд░реНрддреЗрдВ)ред
рдкрд░реАрдХреНрд╖рдг рдЕрднреНрдпрд╛рд╕ рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдо рдПрд▓рдИрдбреА рдХреЛ рдмреНрд▓рд┐рдВрдХ рдХрд░реЗрдВрдЧреЗред Mbed рдореЗрдВ рд╣рдо рдЙрдирдореЗрдВ рд╕реЗ рдЪрд╛рд░ рд╣реИрдВ, LPC1114 рдХреЗ рд╕рд╛рде рд╕рд░реНрдХрд┐рдЯ рдореЗрдВ (рдмрд╛рдж рдореЗрдВ "рдмреЛрд░реНрдб" рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрджрд░реНрднрд┐рдд) рд╣рдо рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдПрд▓рдИрдбреА рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВред
рд╕реАрдзреЗ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рдПрдХ рдФрд░ рдмрд╛рдд рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдирд╛рдо рд╣реИ - рд╕реНрдореГрддрд┐ рдореЗрдВ рдХреНрдпрд╛ рд╕реНрдерд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЪреВрдБрдХрд┐ рд╣рдо рдХрд┐рд╕реА рддрд░рд╣ рдХреЗ "рдорд╛рдирдХ" OS рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд╕рдВрдХрд▓рдХ (рдпрд╛ рдмрд▓реНрдХрд┐, рд▓рд┐рдВрдХрд░) рдпрд╣ рдкрддрд╛ рдирд╣реАрдВ рд▓рдЧрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ рдПрдХ рд╕реНрдЯреИрдХ рдХрд╣рд╛рдБ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд╣рд╛рдБ рдХреЛрдб рд╕реНрд╡рдпрдВ, рдФрд░ рдХрд╣рд╛рдБ - рдПрдХ рдЧреБрдЪреНрдЫрд╛ред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ рд╣рдорд╛рд░реЗ рд▓рд┐рдП, рдХреЛрд░ рдХреЗ рдХреЛрд░рдЯреЗрдХреНрд╕ рдкрд░рд┐рд╡рд╛рд░ рдХреЗ рдкрд╛рд╕ рдПрдХ рдорд╛рдирдХреАрдХреГрдд рдореЗрдореЛрд░реА рдХрд╛рд░реНрдб рд╣реИ, рдЬреЛ рдЗрд╕ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рдмреАрдЪ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдкреЛрд░реНрдЯ рдХрд░рдирд╛ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИред рдмрд╛рд╣реНрдп рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рдкреНрд░реЛрд╕реЗрд╕рд░ рдкрд░ рдирд┐рд░реНрднрд░ рд░рд╣рддрд╛ рд╣реИред
Cortex-M0 рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реА рдХрд╛рд░реНрдб рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

(
Cortex тДв -M0 рдбрд┐рд╡рд╛рдЗрд╕реЗрд╕ рдЬреЗрдиреЗрд░рд┐рдХ рдпреВрдЬрд░ рдЧрд╛рдЗрдб рд╕реЗ рдЫрд╡рд┐)
рдХреЛрд░реНрдЯреЗрдХреНрд╕-рдПрдо 3 рдкрд░, рдпрд╣ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдЫ рд╣рдж рддрдХ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рд╣реИред рдпрд╣рд╛рдБ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ NXP рдХреА рдЕрдкрдиреА рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдЕрд▓рдЧ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдореЗрдВ рдореЗрдореЛрд░реА рдХрд╛рд░реНрдб рдХреА рдЬрд╛рдБрдЪ рдХрд░рддреЗ рд╣реИрдВ:

(
LPC111x / LPC11Cxx рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреБрд╕реНрддрд┐рдХрд╛ рд╕реЗ рдЫрд╡рд┐)
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, SRAM 0x10000000 рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ! рддреЛ, рдХреБрдЫ рдорд╛рдирдХ, рдЕрдиреНрдп рдорд╛рдирдХ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдЕрднреА рднреА рдкреНрд░рд▓реЗрдЦрди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЗрд╕ рдЬреНрдЮрд╛рди рдХреЗ рд╕рд╛рде, рд╣рдо рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП, рдПрдХ рдмрд╛рдзрд╛ рддрд╛рд▓рд┐рдХрд╛:
.cpu cortex-m0 .thumb .word _stack_base .word main .word hang .word hang .word hang .word hang .word hang .word _boot_checksum .word hang .word hang .word hang .word hang .word hang .word hang .word hang .word hang .word hang .thumb_func hang: b . .global hang
рдЗрд╕ рддрд╛рд▓рд┐рдХрд╛ рдХреЛ
boot.s
рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
boot.s
рдпрд╣рд╛рдВ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдХреЗрд╡рд▓ рдПрдХ рдХреЛрдбрд╛рдВрддрд░рдХ рд╕рдореНрдорд┐рд▓рд┐рдд рд╣реИ - рд╣реИрдВрдЧ рдлрд╝рдВрдХреНрд╢рди, рдЬреЛ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдВрддрд╣реАрди рд▓реВрдк рдХреА рд╡реНрдпрд╡рд╕реНрдерд╛ рдХрд░рддрд╛ рд╣реИред рд░реАрд╕реЗрдЯ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд╕рднреА рд╡реНрдпрд╡рдзрд╛рди, рдЗрд╕реЗ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдПрдХ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд╕реНрдерд┐рддрд┐ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкреНрд░реЛрд╕реЗрд╕рд░ рдмрд╕ рд▓рдЯрдХрд╛рдПрдЧрд╛, рдФрд░ рдХреЛрдб рдХреЗ рдПрдХ рдЕрд╕рдВрдЧрдд рдЯреБрдХрдбрд╝реЗ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдЬрд╛рдПрдЧрд╛ред
рддрд╛рд▓рд┐рдХрд╛ рдЕрдкрдиреЗ рдЖрдк рд▓рдВрдмреА рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣рдо рдЗрд╕реЗ рд░реАрд╕реЗрдЯ рд╡реЗрдХреНрдЯрд░ рдХреЗ рдмрд╛рдж рднреА рд╕рдорд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдмрд╛рдХреА рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред рд▓реЗрдХрд┐рди, рдХреЗрд╡рд▓ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдордиреЗ рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рд▓рдЧрднрдЧ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рднрд░ рджрд┐рдпрд╛ (рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╡реНрдпрд╡рдзрд╛рди рдХреЛ рдЫреЛрдбрд╝рдХрд░)ред
рдЕрдм рд╣рдо рдореБрдЦреНрдп рдХрд╛рд░реНрдп рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рд▓рд┐рдЦрддреЗ рд╣реИрдВ:
#if defined(__ARM_ARCH_6M__) #define GPIO_DIR_REG 0x50018000 #define GPIO_REG_VAL 0x50013FFC #define GPIO_PIN_NO (1<<8) /* 8- 8- */ #elif defined(__ARM_ARCH_7M__) /* LPC1768 */ #define GPIO_DIR_REG 0x2009C020 /* FIO1DIR GPIO 1 */ #define GPIO_REG_VAL 0x2009C034 /* FIO1PIN GPIO 1 */ #define GPIO_PIN_NO (1<<18) /* 18- 18- */ #else #error Unknown architecture #endif void wait() { volatile int i=0x20000; while(i>0) { --i; } } void main() { *((volatile unsigned int *)GPIO_DIR_REG) = GPIO_PIN_NO; while(1) { *((volatile unsigned int *)GPIO_REG_VAL) = GPIO_PIN_NO; wait(); *((volatile unsigned int *)GPIO_REG_VAL) = 0; wait(); } /* main() ** ! */ }
Mbed рдореЗрдВ, рдкрд╣рд▓рд╛ LED GPIO 1.18 рдкреЛрд░реНрдЯ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реИ, рдмреЛрд░реНрдб рдкрд░ рд╣рдордиреЗ LED рдХреЛ GPIO 1.8 рд╕реЗ рдЬреЛрдбрд╝рд╛ рд╣реИред рдПрдХ рд╣реА рдкрд┐рди рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрд╛рд░реНрдп рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдпреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ GPIO (рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рдпреЛрдЬрди I / O - рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рдпреЛрдЬрди I / рдЕрдиреНрдп рд▓рд╛рдЗрдиреНрд╕) рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред
рдХреЛрдб рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд╕рд░рд▓ рд╣реИ, рдпрджрд┐ рдЖрдк LPC-shny рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреБрд╕реНрддрд┐рдХрд╛ (
рдПрдХ рдФрд░
рджреВрд╕рд░рд╛ ) рдХреЛ рд╣рд╛рде рдореЗрдВ рд░рдЦрддреЗ рд╣реИрдВред рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо GPIO_DIR_REG рд░рдЬрд┐рд╕реНрдЯрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ GPIO рдСрдкрд░реЗрдЯрд┐рдВрдЧ рдореЛрдб рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрддреЗ рд╣реИрдВ (рд╣рдорд╛рд░реЗ рдкреНрд░реЛрд╕реЗрд╕рд░ рдкрд░ рд╡реЗ рд╡рд┐рднрд┐рдиреНрди рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рд╣реИрдВ, рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ LPC1768 GPIO рдХреЗ рд╕рд╛рде рдЕрдзрд┐рдХ рдХреБрд╢рд▓рддрд╛ рд╕реЗ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ), рдЬрд╣рд╛рдВ 1 рдЖрдЙрдЯрдкреБрдЯ рд╣реИ, 0 рдЗрдирдкреБрдЯ рд╣реИред рдлрд┐рд░ рд╣рдо рдПрдХ рдЕрдВрддрд╣реАрди рдЪрдХреНрд░ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдкреЛрд░реНрдЯ рдХреЛ рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ рдорд╛рди 0 рдФрд░ 1 (0 V рдФрд░ 3.3 V, рдХреНрд░рдорд╢рдГ) рд▓рд┐рдЦрддреЗ рд╣реИрдВред
"рдард╣рд░рд╛рд╡" рдлрд╝рдВрдХреНрд╢рди рдХреЗрд╡рд▓ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд▓рдВрдмреЗ рдЪрдХреНрд░ рдХреЛ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдХреЗ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ (
volatile int
рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдЗрд╕ рдЪрдХреНрд░ рдХреЛ рдкреВрд░реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИ)ред
рдЕрдВрдд рдореЗрдВ, рдпрд╣ рд╕рдм рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдПрдХ рд╕рд╛рде рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:
_stack_base = 0x10002000; _boot_checksum = 0 - (_stack_base + main + 1 + (hang + 1) * 5); MEMORY { rom(RX) : ORIGIN = 0x00000000, LENGTH = 0x8000 ram(WAIL) : ORIGIN = 0x10000000, LENGTH = 0x2000 } SECTIONS { .text : { *(.text*) } > rom .bss : { *(.bss*) } > ram }
рд▓рд┐рдВрдХрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЙрд╕реЗ рд╕рдордЭрд╛рддреА рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдлреНрд▓реИрд╢ рдХрд╣рд╛рдВ рд╣реИ, рд░реИрдо рдХрд╣рд╛рдВ рд╣реИ, рдЙрдирдХреЗ рдкрд╛рд╕ рдХреНрдпрд╛ рдЖрдХрд╛рд░ рд╣реИрдВ (рдпрд╣рд╛рдВ LPC1114 рдХреЗ рд▓рд┐рдП рдЖрдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ LPC1768 рдХреЗ рдкрд╛рд╕ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╣реИрдВ, рд╢рд┐рдлреНрдЯ рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рд╕рдорд╛рди рд╣реИрдВ)ред рдореЗрдореЛрд░реА рдХрд╛рд░реНрдб рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рд╕рдВрдХреЗрдд рджреЗрддреЗ рд╣реИрдВ рдХрд┐ рдХреМрди рд╕реЗ рд╕реЗрдЧрдореЗрдВрдЯ рдХреЛ рдХреЙрдкреА рдХрд░рдирд╛ рд╣реИ, .text (рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛрдб) рдлреНрд▓реИрд╢ рдореЗрдВ, .bs (рд╕реНрдЯреИрдЯрд┐рдХ рд╡реИрд░рд┐рдПрдмрд▓ рдЬреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрднреА рддрдХ рдирд╣реАрдВ рд╣реИ) - рдореЗрдореЛрд░реА рдореЗрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдо рджреЛ рдЕрдХреНрд╖рд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ boot.s: _stack_base - рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рд╣реЛрддрд╛ рд╣реИ рдФрд░ _boot_checksum (рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж
Zuy !) - рдмреВрдЯрд▓реЛрдбрд░ cxum рд▓рд┐рдЦрддрд╛ рд╣реИред рдЪреЗрдХ рд░рд╛рд╢рд┐ рдХреА рдЧрдгрдирд╛ рд╕реВрддреНрд░ рджреНрд╡рд╛рд░рд╛ рдХреА рдЬрд╛рддреА рд╣реИ: рдКрдкрд░ рдХреЗ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рдпреЛрдЧ рд╕реЗ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЛрдб (2 рдХреА рдкреНрд░рд╢рдВрд╕рд╛) (рдЬреИрд╕реЗ рдХрд┐ рд╕реНрдЯреИрдХ рдХрд╛ рдкрддрд╛, рдФрд░ рд╕рднреА рдЪреЗрдХ рдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдмрд╛рдзрд┐рдд рд╣реЛрддрд╛ рд╣реИ)ред рдпрджреНрдпрдкрд┐ рдлрд╝рд░реНрдорд╡реЗрдпрд░ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ (рдиреАрдЪреЗ рджреЗрдЦреЗрдВ) рд╕реНрд╡рдпрдВ рдЪреЗрдХрдмреЙрдХреНрд╕ рдХреЛ рдПрдХ рд╕рд╣реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрдп рдХрд░реЗрдЧреА, рдЕрдЧрд░ рд╣рдо рдХреЛрдб рдХреЛ рд╕реНрд╡рдпрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рдлреНрд▓реИрд╢ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдлрд┐рд░ рд╕реЗ рдмреВрдЯ рдирд╣реАрдВ рдХрд░ рдкрд╛рдПрдВрдЧреЗред
рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рддреАрди рдлрд╛рдЗрд▓реЗрдВ рд╣реИрдВ: boot.s, main.c, mem.ld, рдпрд╣ рд╕рдм рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдФрд░ рдЕрдВрдд рдореЗрдВ рдЗрд╕реЗ рдЪрд▓рд╛рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред рд╣рдо рдЬреАрд╕реАрд╕реА рдХреЛ рдПрдХ рдЙрдкрдХрд░рдг рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рдмрд╛рдж рдореЗрдВ, рд╢рд╛рдпрдж, рдореИрдВ рджрд┐рдЦрд╛рдКрдВрдЧрд╛ рдХрд┐ рдПрд▓рдПрд▓рд╡реАрдПрдо рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдХрд░реЗрдВред рдУрдПрд╕ рдПрдХреНрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛, рдореИрдВ рдЖрдкрдХреЛ рд▓рд┐рдиреЛрд░реЛ рд╕реЗ
рдЯреВрд▓рдЪреИрди рд▓реЗрдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ - рд╕реВрдЪреА рдХреЗ рдмрд╣реБрдд рдЕрдВрдд рдореЗрдВ: рдирдВрдЧреЗ-рдзрд╛рддреБ рдЬреАрд╕реАрд╕реА рдПрдЖрд░рдПрдо рдПрдВрдмреЗрдбреЗрдбред рдЕрдиреНрдп OS рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЖрдкрдХреЛ рдЯреВрд▓рдХрд┐рди рдХреЛ рд╡рд╣рд╛рдВ рд▓реЗ рдЬрд╛рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ :-) (рдЬрдм рддрдХ рдХрд┐ рдХреНрд░реЙрд╕рджреЗрд╡ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЗрдВрдЯреБрд╢рдирд┐рдХ рдХреЗ рд▓рд┐рдП рдФрд░ рдЬреАрд╕реАрд╕реА рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реЛрдЧрд╛)ред
arm-none-eabi-as boot.s -o boot.o arm-none-eabi-gcc -O2 -nostdlib -nostartfiles -ffreestanding -Wall -mthumb -mcpu=cortex-m0 -c main.c -o main-c0.o arm-none-eabi-gcc -O2 -nostdlib -nostartfiles -ffreestanding -Wall -mthumb -mcpu=cortex-m3 -c main.c -o main-c3.o arm-none-eabi-ld -o blink-c0.elf -T mem.ld boot.o main-c0.o arm-none-eabi-ld -o blink-c3.elf -T mem.ld boot.o main-c3.o arm-none-eabi-objdump -D blink-c0.elf > blink-c0.lst arm-none-eabi-objdump -D blink-c3.elf > blink-c3.lst arm-none-eabi-objcopy blink-c0.elf blink-c0.bin -O binary arm-none-eabi-objcopy blink-c3.elf blink-c3.bin -O binary
рдпрд╣рд╛рдВ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдмрд┐рдВрджреБ рдЬреАрд╕реАрд╕реА рдореЗрдВ рд╕рднреА рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕рднреА рдХреЛрдб рдЬреЛ рдЕрдВрддрд┐рдо рдмрд╛рдЗрдирд░реА рдореЗрдВ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рд╡рд╣ рдХреЛрдб рд╣реИ рдЬрд┐рд╕реЗ рд╣рдордиреЗ рдЦреБрдж рд▓рд┐рдЦрд╛ рдерд╛ред
рдкреНрд░рд╢реНрди: рд▓рд┐рдВрдХрд░ рдХреЛ рдХреИрд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рд░реБрдХрд╛рд╡рдЯ рддрд╛рд▓рд┐рдХрд╛ рдХрд╣рд╛рдВ рд░рдЦреА рдЬрд╛рдП? рдФрд░ рд╡рд╣ рдирд╣реАрдВ рдЬрд╛рдирддрд╛, рдпрд╣ рд╡рд╣рд╛рдВ рдирд╣реАрдВ рд▓рд┐рдЦрд╛ рд╣реИ :-)ред рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рд▓рд┐рдВрдХ рдХрд░рддрд╛ рд╣реИ, рд╢реВрдиреНрдп рдкрддреЗ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдлрд╛рдЗрд▓реЛрдВ рдХрд╛ рдХреНрд░рдо (рдмреВрдЯ.рдУ, рдлрд┐рд░ рдореБрдЦреНрдп-рд╕реА0.рдУ) рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ! рджреВрд╕рд░реЗ рддрд░реАрдХреЗ рд╕реЗ рд▓рд┐рдВрдХ рдХрд░рдиреЗ рдпрд╛ рдмреВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреЛ рдмрд╛рд░ рд▓рд┐рдВрдХ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ lst рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рддреБрд▓рдирд╛ рдХрд░реЗрдВред
рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рдЕрдВрддрд┐рдо рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ (lst рдлрд╝рд╛рдЗрд▓) рджреЗрдЦреЗрдВ рдпрд╛ рдмрд╛рдЗрдирд░реА рдХреЛ рдбрд┐рд╕реНрд╕реЗрдореНрдмрд▓рд░ рдореЗрдВ рдЫреЛрдбрд╝ рджреЗрдВред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдЧрд░ рдЖрдк ARM UAL рдирд╣реАрдВ рдмреЛрд▓рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдиреЗрддреНрд░рд╣реАрди рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХрдо рд╕реЗ рдХрдо рд░реБрдХрд╛рд╡рдЯ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╣реИ:


рдЖрдк рдПрдХ рдордЬреЗрджрд╛рд░ рдХреНрд╖рдг рдкрд░ рднреА рдзреНрдпрд╛рди рджреЗ рд╕рдХрддреЗ рд╣реИрдВ - рдЬрдм рдХреЛрд░реНрдЯреЗрдХреНрд╕-рдПрдо 3 рдХреЗ рддрд╣рдд рд╕рдВрдХрд▓рди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЬреАрд╕реАрд╕реА рдХреЙрд░реНрдЯреЗрдХреНрд╕-рдПрдо 0 рдХреЗ рддрд╣рдд рд╕рдВрд╕реНрдХрд░рдг рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдкреНрд░рддреАрдХреНрд╖рд╛ () рдлрд╝рдВрдХреНрд╢рди рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред рд╕рдЪ рд╣реИ, рдпрджрд┐ рдЖрдк рдЕрдиреБрдХреВрд▓рди рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдЙрд╕рдХреЗ рджрд┐рдорд╛рдЧ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдЧрд╛ред
рдЪрдордХрддреА!
рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЬреЛ рдХреБрдЫ рднреА рд╣реИ рд╡рд╣ рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдХреЛ рд╣рдорд╛рд░реЗ рдкрд░реАрдХреНрд╖рдг рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдкрд░ рдЕрдкрд▓реЛрдб рдХрд░рдирд╛ рд╣реИред рдПрдордмреЗрдб рдХреЗ рд╕рд╛рде, рд╕рдм рдХреБрдЫ рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЙрддрдирд╛ рд╕рд░рд▓ рд╣реИ, рдмрд╕ рд╡рд░реНрдЪреБрдЕрд▓ рдлреНрд▓реИрд╢ рдбреНрд░рд╛рдЗрд╡ рдкрд░
blink-c3.bin
рдХреЛ рдХреЙрдкреА рдХрд░реЗрдВ рдФрд░ рд░реАрд╕реЗрдЯ (рджрдмрд╛рдП рдЧрдП) рдкрд░ рд░реАрд╕реЗрдЯ рдХрд░реЗрдВред рдПрдХ рдмреЛрд░реНрдб рдХреЗ рд╕рд╛рде рд╕рдм рдХреБрдЫ рдереЛрдбрд╝рд╛ рдФрд░ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдмреВрдЯрд▓реЛрдбрд░ рдореЗрдВ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ GND рдФрд░ GPIO 0.1 рдХреЗ рдмреАрдЪ рдПрдХ рдЕрд╡рд░реЛрдзрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рджреВрд╕рд░реЗ, рдЖрдкрдХреЛ рд╕реАрдзреЗ рдлрд░реНрдорд╡реЗрдпрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЖрдк
рдлреНрд▓реИрд╢ рдореИрдЬрд┐рдХ (рд╡рд┐рди, рдУрдПрд╕ рдПрдХреНрд╕) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЖрдк рдХрдВрд╕реЛрд▓ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ -
lpc21isp :
lpc21isp.out -verify -bin /path/to/blink-c0.bin /dev/ftdi/tty/device 115200 12000
рдлрд░реНрдорд╡реЗрдпрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
- j5 рдФрд░ j7 (10 kOhm рдХрд░реЗрдЧрд╛) рдХреЗ рдмреАрдЪ рдПрдХ рдЕрд╡рд░реЛрдзрдХ рдбрд╛рд▓реЗрдВ;
- рдкреНрд░реЗрд╕ рд░реАрд╕реЗрдЯ;
- рд╣рдо lpc21isp рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ;
- рдЕрд╡рд░реЛрдзрдХ рдХреЛ рд╣рдЯрд╛ рджреЗрдВ;
- рдкреНрд░реЗрд╕ рдлрд┐рд░ рд╕реЗ рд░реАрд╕реЗрдЯ - рдЖрд╡реЗрджрди рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред
рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╡рд┐рднрд┐рдиреНрди рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдЙрджрд╛рд╣рд░рдг рдЪрд▓рд╛рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рд╣реИ, рддреЛ рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдЙрди рдкрд░ рдкрд▓рдХ рдХреА рдЧрддрд┐ рд╕рдорд╛рди рдирд╣реАрдВ рд╣реИред рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рд╡рд┐рднрд┐рдиреНрди рдЙрдкрдХрд░рдгреЛрдВ рдореЗрдВ рдХреНрд░рдорд╢рдГ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХреЛрд░ рдЖрд╡реГрддреНрддрд┐рдпреЛрдВ рд╣реИрдВ, рд╡реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рдордп рдкрд░
wait()
рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЕрдЧрд▓реЗ рднрд╛рдЧ рдореЗрдВ, рд╣рдо рджреЛрд▓рди рдореБрджреНрджреЛрдВ рдХрд╛ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЕрдзреНрдпрдпрди рдХрд░реЗрдВрдЧреЗ рдФрд░ рдПрдХ рд╕реНрдкрд╖реНрдЯ рдЙрд▓рдЯреА рдЧрд┐рдирддреА рдХрд░реЗрдВрдЧреЗред
рдкрд╛рда рдореЗрдВ рдореЗрд░реА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордп рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдкреАрдПрд╕рдПрдлрд╝реЗрдХреНрдЯрдо
рд╣рдмреНрд░рд╛рдпреБрдЬрд╝рд░ рдХрд╛ рдкреАрдПрд╕ рд╡рд┐рд╢реЗрд╖ рдзрдиреНрдпрд╡рд╛рдж :-)ред
PPS рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдирдХреЗ рдкрд╛рд╕ ARM- рдЖрдзрд╛рд░рд┐рдд рдкрд░реАрдХреНрд╖рдг рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╣реИ - рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд▓рд┐рдЦреЗрдВ - рдЬреЛ рдПрдХред рдореИрдВ рдЖрдЧреЗ рдХреЗ рд▓реЗрдЦреЛрдВ рдХреЗ рд▓рд┐рдП рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдмреЗрд╕ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред