рд╢реБрдн рджреЛрдкрд╣рд░, рдкреНрд░рд┐рдп Khabrovitesред рдореЗрд░реЗ рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦреЛрдВ рдореЗрдВ (
STM32F1xx - рдПрдХ рд╕рд╛рде arduinodependence рдХрд╛ рдЗрд▓рд╛рдЬ ,
STM32F1xx - LCD рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ arduinodependence рдХрд╛ рдирд┐рд░рдВрддрд░ рдЙрдкрдЪрд╛рд░ ) рдореИрдВрдиреЗ рдирдП 32-рдмрд┐рдЯ STM32F1xx рдореЗрдВ 8-рдмрд┐рдЯ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рд╕реЗ рд╕рдВрдХреНрд░рдордг рдХреЗ рдореБрджреНрджреЛрдВ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред
рдЙрдирдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдореИрдВрдиреЗ рдЕрдкрдиреЗ рд▓рд┐рдП "рд╣рд╛рде рд╕реЗ" рдЙрдкрдХрд░рдг рдЪреБрдирд╛ - рдпрд╛рдиреА, рдореИрдВрдиреЗ рдЕрдкрдиреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдбрд┐рдмрдЧрд┐рдВрдЧ рдмреЛрд░реНрдб, рдкреНрд░реЛрдЧреНрд░рд╛рдорд░, рдЖрдИрдбреАрдИ рдЦреЛрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рдЖрдкрдХреЗ рд╕рд╛рде рдЗрд╕ рд╕рдВрдмрдВрдз рдореЗрдВ рдХрдИ рд╡рд┐рдЪрд╛рд░ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рд╕рд╛рде рд╣реА рдЪрдпрдирд┐рдд рдлреНрд░реАрдЖрд░рдЯреАрдУрдПрд╕ рд░реАрдпрд▓-рдЯрд╛рдЗрдо рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдЖрдИрдбреАрдИ рдореЗрдВ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред
рд▓реЛрд╣рд╛
рдкрд░рдВрдкрд░рд╛рдЧрдд рд░реВрдк рд╕реЗ, рдЖрдЗрдП рд▓реЛрд╣реЗ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВред
рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦреЛрдВ рдореЗрдВ, рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдореВрд▓
STM32VLDISCOVERY рдмреЛрд░реНрдб рдерд╛ред
рдмреЗрд╢рдХ, рд╢реБрд▓реНрдХ рдЕрдЪреНрдЫрд╛ рд╣реИ, рдФрд░ рдЗрд╕ рддрдереНрдп рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХреА рдХреАрдордд рдХреЗрд╡рд▓ 300 рд░реВрдмрд▓ рд╣реИред рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░реНрд╕ рдХреЗ рдЗрд╕ рдкрд░рд┐рд╡рд╛рд░ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рдЙрдкрдХрд░рдгред рд▓реЗрдХрд┐рдиред
рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдбрд┐рдмрдЧрд┐рдВрдЧ рдмреЛрд░реНрдб рдЪреБрдирддреЗ рд╕рдордп, рдЖрдк рд╣рдореЗрд╢рд╛ рдорд╛рддреНрд░рд╛ рдФрд░ рдЧреБрдгрд╡рддреНрддрд╛ рдХрд╛ рд╕рдВрддреБрд▓рди рдмрдирд╛рдП рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдпрд╛рдиреА рдПрдХ рдУрд░, рдЖрдкрдХреЗ рдкрд╛рд╕ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рднреА рдЪреАрдЬреЗрдВ рд╣реИрдВ, рджреВрд╕рд░реА рдУрд░, рдЖрдк рдмреЛрд░реНрдб рдХреЛ рдПрдХ рд╡рд┐рд╢рд╛рд▓ рдФрд░ рдорд╣рдВрдЧреЗ рд░рд╛рдХреНрд╖рд╕ рдореЗрдВ рдмрджрд▓рдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВред STM32VLDISCOVERY рдореЗрдВ, рд╕рдВрддреБрд▓рди рд╕рд╕реНрддреЗрдкрди рдФрд░ рдЕрддрд┐рд╕реВрдХреНрд╖реНрдорд╡рд╛рдж рдХреЗ рд▓рд┐рдП рдкрдХреНрд╖рдкрд╛рддреА рд╣реИред
рдИ-рдмреЗ рдкрд░ рдЪрдврд╝рддреЗ рд╣реБрдП, рдореИрдВрдиреЗ рдЕрдкрдиреЗ рд▓рд┐рдП рдФрд░ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдкрд╛рдпрд╛, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдмреЛрд░реНрдб, рдЬреЛ рдореИрдВ рдЖрдкрдХреЗ рдзреНрдпрд╛рди рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реВрдВред рдпрд╣рд╛рдБ рдпрд╣ рд╣реИ:
рдорд┐рдиреА STM32
46 рдбреЙрд▓рд░ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдкреЗрд╢рдХрд╢ рдХреА рдЬрд╛рддреА рд╣реИ:
- STM32F103VE рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░, рдЬрд┐рд╕рдореЗрдВ 512 рдХрд┐рд▓реЛрдмрд╛рдЗрдЯреНрд╕ рдлреНрд▓реИрд╢ рдФрд░ 64 рдХрд┐рд▓реЛрдмрд╛рдЗрдЯреНрд╕ рд░реИрдо, USB, SDIO рдСрди рдмреЛрд░реНрдб (рдпрд╛рдиреА, рдпрд╣ SPI рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рд░реНрдб рд╕реЗ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рддреЗрдЬрд╝ рд╣реЛрдЧрд╛)ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЪреВрдВрдХрд┐ 100-рд▓реЗрдЧ рд╕рдВрд╕реНрдХрд░рдг рдмреЛрд░реНрдб рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдореЗрдВ FSMC рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдореЗрдореЛрд░реА рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдмрд╛рд╣рд░реА рдкрд┐рди рд╣реИрдВред FSMC рдПрдХ рдлреНрд▓реЗрдХреНрд╕рд┐рдмрд▓ рд╕реНрдЯреИрдЯрд┐рдХ рдореЗрдореЛрд░реА рдХрдВрдЯреНрд░реЛрд▓рд░ рд╣реИ, рдЬреЛ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╕реНрдЯреИрдЯрд┐рдХ рдореЗрдореЛрд░реА рдХрдВрдЯреНрд░реЛрд▓рд░ рд╣реИ, рдЬрд┐рд╕рдХреА рд╢реБрд░реБрдЖрдд, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, SRAM рдФрд░ рдирд╛рдЗрд╕ рдлреНрд▓реИрд╢ рдбреНрд░рд╛рдЗрд╡ рд╕реЗ рд╣реЛрддреА рд╣реИред рдЗрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдФрд░ рдореЗрдореЛрд░реА рдХреЛ рдХрдВрдЯреНрд░реЛрд▓ рдкрд┐рдВрд╕ рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ, рд╣рдореЗрдВ рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рдПрдбреНрд░реЗрд╕ рд╕реНрдкреЗрд╕ рдореЗрдВ рдореИрдк рдХреА рдЧрдИ рдореЗрдореЛрд░реА рдорд┐рд▓ рдЬрд╛рддреА рд╣реИред рдпрд╣реА рд╣реИ, рдЕрдм рд╕реЗ, рдЗрд╕рдХреЗ рд╕рд╛рде рд╕рднреА рдЗрдВрдЯрд░реИрдХреНрд╢рди рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдкрд╛рд░рджрд░реНрд╢реА рд╣реЛрдВрдЧреЗ рдФрд░ рд░реИрдо рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рд▓реЗрдЦрди рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрдВрдЧреЗред
- 320x240 рдХреЗ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдХреЗ рд╕рд╛рде рдХрд▓рд░ рдЯреАрдПрдлрдЯреА-рдбрд┐рд╕реНрдкреНрд▓реЗ рдФрд░ рдкреНрд░реА-рдЗрдВрд╕реНрдЯреЙрд▓ рдкреНрд░рддрд┐рд░реЛрдзрдХ рдЯрдЪ-рд╕реНрдХреНрд░реАрдиред рдбрд┐рд╕реНрдкреНрд▓реЗ рдХреЛ рдмреЛрд░реНрдб рдкрд░ рдПрдХ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдпрджрд┐ рд╡рд╛рдВрдЫрд┐рдд рд╣реИ, рддреЛ рдЖрдк рдЙрди рд░реИрдХ рдХреЛ рдЕрдирд╕рдХреНрд░рд┐рдХреНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдирд╕реЗ рдпрд╣ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдмрд┐рдирд╛ рдмреЛрд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдбрд┐рд╕реНрдкреНрд▓реЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдбрд┐рд╕реНрдкреНрд▓реЗ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдЕрдкрдиреА рдмреИрдХрд▓рд╛рдЗрдЯ рдХреЛ рдкрд╛рд╡рд░ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмреВрд╕реНрдЯрд░ рдХрдиреНрд╡рд░реНрдЯрд░ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИ, рд╕рд╛рде рд╣реА рдПрдХ рдЯрдЪ рд╕реНрдХреНрд░реАрди рдХрдВрдЯреНрд░реЛрд▓рд░ рднреА рд╣реИ рдЬреЛ SPI рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХрдиреЗрдХреНрдЯрд░ рдЙрдкрд░реЛрдХреНрдд рдПрдлрдПрд╕рдПрдорд╕реА рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ, рдЬреЛ рдЗрд╕рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХреЛ рдХрдИ рдЧреБрдирд╛ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╣реИ рдХрд┐ рдкреНрд░рджрд░реНрд╢рди рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдореЗрдВ рдПрдХ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреИрд╕реА рджрд┐рдЦрддреА рд╣реИ, рдФрд░ рдлрд┐рд░ рдбреАрдПрдордП рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдЗрд╕рдХреА рд╕реНрдореГрддрд┐ рдореЗрдВ:
#define LCDRegister 0x60000000)) #define LCDMemory 0x60020000))
рдЕрдВрддрд┐рдо рдкрдВрдХреНрддрд┐ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдХрд╛рд░реНрдпрдХреНрд░рдо рдкрд░ рдирд┐рдпрдВрддреНрд░рдг рд╡рд╛рдкрд╕ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддрд╛рдХрд┐ рдЖрдк рддреБрд░рдВрдд рдЕрдЧрд▓реЗ рдлреНрд░реЗрдо рдХреА рдЧрдгрдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХреЗрдВ, рдЬрдмрдХрд┐ рдкрд╣рд▓рд╛ рдбреАрдПрдордП рд╕реЗ рдЖрдЙрдЯрдкреБрдЯ рд╣реИред
- STMki рдПрд╕рдбреАрдЖрдИрдУ рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рдирд┐рдпрдВрддреНрд░рдг рдкрд┐рди рд╕реЗ рдЬреБрдбрд╝рд╛ рдПрдХ рдорд╛рдЗрдХреНрд░реЛ-рдПрд╕рдбреА рд╕реНрд▓реЙрдЯред рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд╕рд╛рде рд╕реНрдерд┐рддрд┐ рд╕рдорд╛рди рд╣реИ - рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдореЗрдореЛрд░реА рдХрд╛рд░реНрдб рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддреНрд╡рд░рд┐рдд рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рддрд░реАрдХрд╛ рд╣реИ, рдЬреЛ рдПрд╕рдкреАрдЖрдИ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рддреЗрдЬ рд╣реИред
- рдпреВрдПрд╕рдмреА рдХрдиреЗрдХреНрдЯрд░ рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рд╕рд░реНрдХрд┐рдЯрд░реАред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рдпреВрдПрд╕рдмреА рд╣реЛрд╕реНрдЯ рдкреБрд▓-рдЕрдк рд░реЛрдХрдиреЗрд╡рд╛рд▓рд╛ рджреНрд╡рд╛рд░рд╛ рдмрд╕ рдкрд░ рдПрдХ рдЙрдкрдХрд░рдг рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рддрджрдиреБрд╕рд╛рд░, рдХрд┐рд╕реА рднреА рдХрд╛рд░реНрдп рдХреЛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рддрдм рдХреЗрд╡рд▓ рдореЗрдЬрдмрд╛рди рдХреЛ рд╕рдВрдХреЗрдд рджреЗрдВ "рдореИрдВ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реВрдВ!" рдЖрдкрдХреЛ рдПрдХ рдЯреНрд░рд╛рдВрдЬрд┐рд╕реНрдЯрд░ рд╕реНрд╡рд┐рдЪ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреБрд▓-рдЕрдк рд░реЛрдХрдиреЗрд╡рд╛рд▓рд╛ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдмреЛрд░реНрдб рдкрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдирд┐рдпрдВрддреНрд░рдг рдЯреНрд░рд╛рдВрдЬрд┐рд╕реНрдЯрд░ GPIO рдкрд┐рди рдореЗрдВ рд╕реЗ рдПрдХ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реИ, рдкреБрд▓-рдЕрдк рдкреНрд░рддрд┐рд░реЛрдзреЛрдВ рдХреЛ рдлреБрд▓-рд╕реНрдкреАрдб рдпреВрдПрд╕рдмреА рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред - рдЕрдкреНрд░рдпреБрдХреНрдд рдкрд┐рдВрд╕ рдПрдХ рджреЛ-рдкрдВрдХреНрддрд┐ рдЪрд╛рд▓реАрд╕-рдкрд┐рди рдХрдиреЗрдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП рдЖрдЙрдЯрдкреБрдЯ рд╣реИрдВ, рджреВрд╕рд░рд╛ рдХрдиреЗрдХреНрдЯрд░ рдПрдХ рдбрд┐рд╕реНрдкреНрд▓реЗ рдХрдиреЗрдХреНрдЯрд░ рд╣реИ, рддреАрд╕рд░рд╛ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХрдиреЗрдХреНрдЯрд░, рдЬреЗ-рд▓рд┐рдВрдХ рд╕рдВрдЧрдд рд╣реИред
- рдЕрдЪреНрдЫреЗ рдмреЛрдирд╕ рдореЗрдВ рд╕реЗ - рдмреЛрд░реНрдб рдореЗрдВ рдЖрд░рдЯреАрд╕реА рдХреА рдЖрдкреВрд░реНрддрд┐ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдмреИрдЯрд░реА рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдиреЗрдХреНрдЯрд░, рджреЛ рдореАрдЯрд░ рдПрд╕рдкреАрдЖрдИ рдлреНрд▓реИрд╢ рдбреНрд░рд╛рдЗрд╡, рдПрдХ рдирд┐рдпрдВрддреНрд░рд┐рдд рдПрд▓рдИрдбреА, рдПрдХ рдмрдЯрди, рдпреВрдПрд╕рдмреА рдкрд╛рд╡рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕реНрдЯреЗрдмрд▓рд╛рдЗрдЬрд░ рдФрд░ рдПрдХ рдХреЙрдо рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП рдХрдиреЗрдХреНрдЯрд░ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдПрдХ рдХрдиреЗрдХреНрдЯрд░ рднреА рд╣реЛрддрд╛ рд╣реИред
рдЙрддреНрддрд░рд╛рд░реНрджреНрдз, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ - рдкреВрд░реЗ рдмреЛрд░реНрдб рдореЗрдВ рд╕рдмрд╕реЗ рд╢рд╛рдирджрд╛рд░ рд╣рд┐рд╕реНрд╕рд╛, рдХреЗрд╡рд▓ рдЬрдЧрд╣ рд▓реЗ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдареАрдХ рд╣реИ, рдЗрд╕реЗ рд░рд╣рдиреЗ рджреЛред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рдЕрд▓рдЧ рдЕрдиреБрд░реЛрдз рдкрд░, $ 28 рдХреЗ рд▓рд┐рдП, рд╡рд┐рдХреНрд░реЗрддрд╛ рдмреЛрд░реНрдб рд╕реЗ рдПрдХ рдЬреЗ-рд▓рд┐рдВрдХ-рд╕рдВрдЧрдд рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рд╕рдВрд▓рдЧреНрди рдХрд░реЗрдЧрд╛ (рдФрд░ рдмрд╕, рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реЗрдЧрд░ рдЬреЗ-рд▓рд┐рдВрдХ рдХреНрд▓реЛрди, рдмреЗрд╢рд░реНрдореА рд╕реЗ рдЦреБрдж рдХреЛ рдХреЗрдмрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдЫрд┐рдкрд╛рдиреЗ), рдПрдХ рдХреЗрдмрд▓ рдХреЗ рд╕рд╛рде рдЬреЛ рдмреЛрд░реНрдб рдкрд░ рдХрдиреЗрдХреНрдЯрд░ рдХреЗ рд╕рд╛рде рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдВрдЧрдд рд╣реИред
рдЙрдкрд░реЛрдХреНрдд рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдореИрдВ рдЗрд╕ рдмреЛрд░реНрдб рдХреЛ рдЙрд╕ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдорд╛рдирддрд╛ рд╣реВрдВ рдЬрд┐рд╕рдиреЗ STM32F1xx рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХрд╛ рдЕрдзреНрдпрдпрди рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред
рдореБрд▓рд╛рдпрдо
рдЕрдм IDE рдХреЗ рд▓рд┐рдПред рд╢реБрд░реВ рдореЗрдВ, рдореИрдВрдиреЗ рдХреЗрдЗрд▓ uVision рдХреЛ рдЪреБрдирд╛, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдПрдХ рдмрд╛рд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд┐рдпрд╛ рдерд╛ред
рдЦреИрд░, рдореИрдВ рдХреНрдпрд╛ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ - рдореИрдВрдиреЗ рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рдореЗрд▓ рдореЗрдВ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдЖрдк рдЗрд╕рдХреЗ рд╕рд╛рде рд╕рд╛рдордВрдЬрд╕реНрдп рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди, рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ, рдЖрдИрдбрд┐рдпрд╛ рд╡рд╣рд╛рдВ рднрдпрд╛рдирдХ рд╣реИред рдпрд╣ рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, IAR IDEA рдХреЗ рд░реВрдк рдореЗрдВ рднреА рднрдпрд╛рдирдХ рд╣реИред
рдЖрдИрдПрдЖрд░ рдФрд░ рдХреЗрдЗрд▓ рдХреЛ рд╕рдВрдХрд▓рдХ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдорд╛рдиреНрдпрддрд╛ рдкреНрд░рд╛рдкреНрдд рдиреЗрддрд╛ рд╣реИрдВ, рдпрд╣ рдЙрдирд╕реЗ рджреВрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЕрднреА рднреА рд╕рдордЭ рдирд╣реАрдВ рдкрд╛ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдРрд╕реЗ рд╕рдВрдХрд▓рдХ рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг, рд╡реЗ рдЕрдкрдиреА рдЖрдИрдбреАрдИ рдЦреАрдВрдЪрддреЗ рд░рд╣рддреЗ рд╣реИрдВ, рдЬреЛ 2002 рдХреЗ рд╕реНрддрд░ рдкрд░ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдЕрдЯрдХреЗ рд╣реБрдП рд╣реИрдВред рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВ рдЯреЗрдХреНрд╕рд╛рд╕ рдЗрдВрд╕реНрдЯреНрд░реВрдореЗрдВрдЯреНрд╕ рдХрд╛ рд╣рд╡рд╛рд▓рд╛ рджреЗ рд╕рдХрддрд╛ рд╣реВрдВ - рд╡реЗ рд╕рдВрдХрд▓рдХ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрдкрдиреА рдЦреБрдж рдХреА рдЖрдИрдбреАрдИ рдХрд░рддреЗ рдереЗред рдлрд┐рд░ рд╡реЗ рдЗрд╕рд╕реЗ рдердХ рдЧрдП, рдЙрдиреНрд╣реЛрдВрдиреЗ рдПрдХреНрд▓рд┐рдкреНрд╕ рд▓рд┐рдпрд╛, рдЗрд╕реЗ рд╕рдорд╛рдкреНрдд рдХрд┐рдпрд╛, рдЗрд╕реЗ рдЕрдкрдиреЗ рдХрдВрдкрд╛рдЗрд▓рд░ рдФрд░ рдкреНрд░реЛрдлрд╛рдЗрд▓рд░ рдХреЗ рд▓рд┐рдП рдЦрд░рд╛рдм рдХрд░ рджрд┐рдпрд╛, рдФрд░ рдПрдХ рдорд╣рд╛рди рдЙрддреНрдкрд╛рдж рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ред рдХреНрдпреЛрдВ рдХреЗрдЗрд▓ рдФрд░ рдЖрдИрдПрдЖрд░ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рд░рд╣рд╕реНрдп рдмрдирд╛ рд╣реБрдЖ рд╣реИ, рд▓реЗрдХрд┐рди рдореЗрд░реА рд░рд╛рдп рдореЗрдВ рдЙрдирдХреА рдЖрдИрдбреАрдИ рдЙрддрдиреА рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ рд╣реИ рдЬрд┐рддрдиреА рд╡реЗ рд╣реЛ рд╕рдХрддреА рд╣реИред рдХрд╖реНрдЯрдкреНрд░рдж рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ рдирд╣реАрдВ рд╣реИ, рдХреЛрдб рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреА рдкреВрд░реНрдг рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐, рдФрд░ рд╕рдмрд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдХреЛрдб рдиреЗрд╡рд┐рдЧреЗрд╢рди рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, uVision рдЕрдХреНрд╕рд░ рдореЗрд░реЗ рд▓рд┐рдП рдЧрд┐рд░ рдЧрдпрд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рд╢реНрд░реЗрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдбреНрд░рд╛рдЗрд╡рд░ рдХреЛ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЬреИрд╕рд╛ рдХрд┐ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдореИрдВрдиреЗ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдХреА рддрд▓рд╛рд╢ рд╢реБрд░реВ рдХреА рдФрд░ рдЗрд╕реЗ
CooCox IDE рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рдпрд╛ред

рдпрд╣ рдПрдХ рд╕реНрд╡рддрдВрддреНрд░ рд╡рд┐рдХрд╛рд╕ рдХрд╛ рд╡рд╛рддрд╛рд╡рд░рдг рд╣реИ, рдЬреЛ рдЧреНрд░рд╣рдг рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ, рдЬреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЬреАрд╕реАрд╕реА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдлрд╛рдпрджреЗ рдореЗрдВ рд╕реЗ, рдореИрдВ рдЧреНрд░рд╣рдг рдХреЗ рд╕рднреА рд▓рд╛рднреЛрдВ рдкрд░ рдзреНрдпрд╛рди рджреЗрддрд╛ рд╣реВрдВ - рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдиреЗрд╡рд┐рдЧреЗрд╢рди, рдХреЛрдб рдкреВрд░рд╛ рдХрд░рдирд╛, рдЖрджрд┐ред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреНрд░реЛрд╕реЗрд╕рд░ рдмрд╛рд╣реНрдп рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рджрд░реНрд╢рдХ рдмреЛрд▓реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдореБрдЭреЗ рдпрд╣ рдХреЗрд▓реЛрд╡рд╕реНрдХреА рд╕реЗ рдЕрдзрд┐рдХ рдкрд╕рдВрдж рдЖрдпрд╛ред рдПрдХ рдШрдЯрдХ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд░рдЦрдирд╛ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ - рдмрд╕ рдЗрд╕реЗ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╕рдордп, рд╣рдо рдкреНрд░реЛрд╕реЗрд╕рд░ рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рд╣рдореЗрдВ рд╕реВрдЪреА рд╕реЗ рдПрдХ рд╡рд┐рдЬрд╝рд╛рд░реНрдб рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд╛рд╣рд┐рдП, рдлрд┐рд░ рдЙрди рдорд╛рдирдХ рдкреЗрд░рд┐рдлреЗрд░рд▓ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдо рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдФрд░ рд╡реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реИрдВ (рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ) рд▓реЗрдЦ рдХреЗ рдЕрдЧрд▓реЗ рднрд╛рдЧ рдореЗрдВ рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ)ред рдЖрдк рдЗрд╕ SPL рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рддреБрд░рдВрдд рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдХреЙрд╕ рдХреЙрдХреНрд╕реЙрдХреНрд╕ рдЖрдИрдбреАрдИ рднреА рдЧреНрд░рд╣рдг рд╕реЗ рдЕрд╡рд╢реЛрд╖рд┐рдд рд╣реЛ рдЧрдпрд╛, рдЬрд┐рд╕рдореЗрдВ рднрд╛рд░реАрдкрди рд╢рд╛рдорд┐рд▓ рд╣реИ - рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рд▓рдЧрднрдЧ 180 рдореАрдЯрд░ рд░реИрдо рдХреА рдЦрдкрдд рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ 800 рдореЗрдЧрд╛рдмрд╛рдЗрдЯ рдбрд┐рд╕реНрдХ рд╕реНрдерд╛рди рд╣реЛрддрд╛ рд╣реИред
рдЗрд╕реА рдЬреЗ-рд▓рд┐рдВрдХ-рдХреЙрдо рдХреЗ рд╕рд╛рде рдПрдХ рдФрд░ рдиреБрдХрд╕рд╛рди рдЙрд╕рдХрд╛ рдХрд╛рдо рд╣реИред рдбрд┐рдмрдЧрд┐рдВрдЧ рдЬреЗ-рд▓рд┐рдВрдХ рдХреЗ рд░рдЪрдирд╛рдХрд╛рд░реЛрдВ рдХреЗ рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдПрдХ рдорд╛рдирдХ рдЬреАрдбреАрдмреА рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдкрд░реНрдпрд╛рд╡рд░рдг рд╣рд░ рдмрд╛рд░ рдЬрдм рдЖрдк рдбрд┐рдмрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЙрд╕реА рдореЗрд▓ рдХреЗ рд╡рд┐рдкрд░реАрдд (рдЬреЛ рдЖрдорддреМрд░ рдкрд░ рдЗрд╕рдХреЗ рдбреАрдПрд▓рдПрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ) рдЗрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рддрд╛ рд╣реИред
рдЗрд╕рд▓рд┐рдП, Cale рдореЗрдВ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреА рд╢реБрд░реБрдЖрдд рдПрдХ рджреВрд╕рд░реЗ, CoCCox рдореЗрдВ - рд▓рдЧрднрдЧ 20 рд╕реЗрдХрдВрдб рдореЗрдВ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИред рд╢рд╛рдпрдж рдЗрд╕реЗ рдХрд┐рд╕реА рддрд░рд╣ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рджреНрд╡рд╛рд░рд╛ рддрдп рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдРрд╕реА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдЕрднреА рддрдХ рдирд╣реАрдВ рджреЗрдЦреА рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЕрдЧрд░ рдХреЛрдИ рдореБрдЭрд╕реЗ рдХрд╣рддрд╛ рд╣реИ рддреЛ рдореИрдВ рдЖрднрд╛рд░реА рд░рд╣реВрдВрдЧрд╛ред
рдлрд┐рд░ рднреА, рдореИрдВ рдЕрднреА рднреА CooCox рдкрд░ рдмрд╕ рдЧрдпрд╛ рд╣реВрдВ - рдпрджрд┐ рдЖрдк рдХреЗрдЗрд▓ рдпрд╛ рдЖрдИрдПрдЖрд░ рд╕реЗ рдЖрдИрдбреАрдИ рд╕реЗ рдЦреБрд╢ рдирд╣реАрдВ рд╣реИрдВ, рдпрд╛ рдпрджрд┐ рдЖрдк рдЯреВрдЯреЗ рд╣реБрдП рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдЦреБрд▓реЗ рд╕реНрд░реЛрдд рдХреЛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ - рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╣рд┐рдЪрдХрд┐рдЪрд╛рд╣рдЯ рдХреЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВред
CooCox рдФрд░ FreeRTOS
FreeRTOS рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдХреБрдЫ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рд╣рдм рдкрд░ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд▓реЗрдЦреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ:
FreeRTOS: рдкрд░рд┐рдЪрдп )
рдореИрдВрдиреЗ рдЗрд╕ рддрдХрдиреАрдХ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдФрд░ рдЕрдкрдиреЗ рд╢рд╕реНрддреНрд░рд╛рдЧрд╛рд░ рдХреЗ рдФрдЬрд╛рд░реЛрдВ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рднреА рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдЦрд╛рд╕рдХрд░ рдЬрдм рд╕реЗ рдлреНрд░реАрдЯреНрд░реЙрд╕ рдХрд┐рд╕реА рднреА рдПрдЪрдПрдПрд▓ (рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдПрдмреНрд╕реНрдЯреНрд░реЗрдХреНрд╢рди рд▓реЗрдпрд░, рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдПрдмреНрд╕реНрдЯреНрд░рдХреНрд╢рди рд▓реЗрдпрд░, рдбреНрд░рд╛рдЗрд╡рд░) рдХреЛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдХреЗрд╡рд▓ рдЯрд╛рд╕реНрдХ рдореИрдиреЗрдЬрдореЗрдВрдЯ рдЯреВрд▓, рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝реЗрд╢рди рдФрд░ рдЗрдВрдЯрд░-рдкреНрд░реЛрд╕реЗрд╕ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЗрдВрдЯрд░реИрдХреНрд╢рди, рдЗрд╕рд▓рд┐рдП рдХрдИ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдпрд╣ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрдЧрд╛ред
рдЖрдЗрдП рд╣рдо рдЕрдкрдиреЗ рдорд┐рдиреА-рдПрд╕рдЯреАрдПрдо 32 рдмреЛрд░реНрдб рдкрд░ CooCox IDE рдХреЗ рд╕рд╛рде FreeRTOS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рд▓ рдкреЛрд░реНрдЯрд┐рдВрдЧ (рдХреЛрд░реНрдЯреЗрдХреНрд╕ рдПрдо 3 рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд▓рд┐рдП рд╢реЗрдбрдпреВрд▓рд░ рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд╢реНрдпрдХ рдХреЛрдб рдХреЛ рдкреЛрд░реНрдЯ рдХрд░рдирд╛) рдПрдХ рд▓рдВрдмреЗ рд╕рдордп рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рд╣рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдХреЛрдСрдХреНрд╕ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдбрд┐рдЬрд╛рдЗрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рд╣рдо FreeRTOS рд╕реНрд░реЛрдд рдХреЛ рдЙрдирдХреА рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕рд╛рдЗрдЯ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдХреЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред
рдпрд╣рд╛рдБ рдПрдХ рд╕реАрдзрд╛ рд▓рд┐рдВрдХ рд╣реИ:
http://sourceforge.net/projects/freertos/files/ ред
рдЗрд╕ рдмреАрдЪ, CooCox рдореЗрдВ рдПрдХ рдирдпрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ, рдореИрдВрдиреЗ рдЗрд╕реЗ FreeRTOS-Mini рдХрд╣рд╛ред

рд╣рдо рд╡рд┐рдЬрд╝рд╛рд░реНрдб рдореЗрдВ рдирд┐рд░реНрдорд╛рддрд╛ рдПрд╕рдЯреА рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ, рдЪрд┐рдкреНрд╕ рдХреА рд╕реВрдЪреА рдореЗрдВ - рдЬрд┐рд╕ рдЪрд┐рдк рдкрд░ рдбрд┐рдмрдЧ рдмреЛрд░реНрдб рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╡рд╣ STM32F103VE рд╣реИред


рдЙрд╕рдХреЗ рдмрд╛рдж, рдПрд╕рдкреАрдПрд▓ рдХреЗ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЛрдВ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдШрдЯрдХреЛрдВ рдХреЗ рднрдВрдбрд╛рд░ рдХрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╡рд┐рдВрдбреЛ рд╣рдорд╛рд░реЗ рд╕рд╛рдордиреЗ рдЦреБрд▓рддрд╛ рд╣реИред

рд╣рдо рд╡рд╣рд╛рдВ CMSIS рдХреЛрд░ рдФрд░ CMSIS рдмреВрдЯ рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ - рдпрд╣ CMSIS рдХреЛрд░ рдФрд░ рд╕реНрдЯрд╛рд░реНрдЯ рдХреЛрдб рд╣реИ, рдЬреЛ рдореБрдЦреНрдп () рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдФрд░ рдЦреАрдВрдЪрддрд╛ рд╣реИред
рд╡реИрд╕реЗ, рдзреНрдпрд╛рди рджреЗрдВ - CooCox рдореЗрдВ рдкреНрд░рд╛рд░рдВрдн рдХреЛрдб рдкреВрд░реА рддрд░рд╣ рд╕реЗ C рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдПрдХ рднреА asm line рдирд╣реАрдВред
Cmsis_boot \ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк \ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк_stm32f10x_hd.c рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЭреВрда - рдЗрд╕ рдкрде рдХреЛ рдпрд╛рдж рд░рдЦреЗрдВ, рд╣рдореЗрдВ рд╡рд╣рд╛рдВ рдХреБрдЫ рдареАрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдЙрд╕реА рд╕рдордп, рд╣рдо рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ GPIO рдореЙрдбреНрдпреВрд▓ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ FreeRTOS рдкрд░реАрдХреНрд╖рдг рдХрд╛рд░реНрдп рдореЗрдВ рдХреБрдЫ рдХрд░рдирд╛ рд╣реИред рдпрд╣ рдореЙрдбреНрдпреВрд▓ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдирд┐рд░реНрднрд░ рдЖрд░рд╕реАрд╕реА рдХреЛ рдЦреАрдВрдЪрддрд╛ рд╣реИ, рдЬреЛ рдмреНрд▓реЙрдХ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред
рдЕрдм рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдП рдЧрдП рдлреНрд░реАрдЖрд░рдЯреАрдУрдПрд╕ рд╕реНрд░реЛрддреЛрдВ рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдПрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдорд╛рд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде рдкреВрд░реЗ рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдХреЙрдкреА рдХрд░реЗрдВред рдЗрд╕рдХреЗ рдмрд╛рдж, рд╣рдо рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЛ рдирд┐рдХрд╛рд▓рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рддреЛ, рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдбреЗрдореЛ рдлрд╝реЛрд▓реНрдбрд░ рдХреА рд╕рд╛рдордЧреНрд░реА рддреБрд░рдВрдд рдореЗрд░реЗ рдЪрд╛рдХреВ рдХреЗ рдиреАрдЪреЗ рдЪрд▓реА рдЧрдИ - рд╡рд┐рднрд┐рдиреНрди рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдбреЗрдореЛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╣реИрдВ, рдЖрдкрдХреЛ рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ рд╕рдВрдкреВрд░реНрдг рдлрд╝реЛрд▓реНрдбрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЫреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ STM32F103 рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред FreeRTOS рдХрд░реНрдиреЗрд▓ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рд╣реИ, рдЬреЛ рдХрд┐рд╕реА рднреА рдЙрдкрдпреБрдХреНрдд рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗ рд▓реА рдЬрд╛ рд╕рдХрддреА рд╣реИ, рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдЬреЛ рд╣рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдЧреА, рдЖрдЗрдП рдпрд╣рд╛рдВ рд╕реЗ рдХрд╣рддреЗ рд╣реИрдВ:
Demo \ CORTEX_STM32F103_Primer_GCC \ FreeRTOSConfig.hрдЖрдк рдЗрд╕реЗ рд╕рдорд╛рд╡реЗрд╢ рдХреЗ рдХрд┐рд╕реА рднреА рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдХреЙрдкреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдЗрд╕реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдореВрд▓ рдореЗрдВ, рдореБрдЦреНрдп.
c рдХреЗ рдмрдЧрд▓ рдореЗрдВ рд░рдЦрддрд╛ рд╣реВрдВ
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛,
рд╕реНрд░реЛрдд \ рдкреЛрд░реНрдЯреЗрдмрд▓ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдХрдИ рдЙрдк-рдлрд╝реЛрд▓реНрдбрд░ рд╣реИрдВ рдЬрд╣рд╛рдВ рдХреЛрдб рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рдВрдХрд▓рдХ рдФрд░ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╣рдо
рд╕реНрд░реЛрдд \ рдкреЛрд░реНрдЯреЗрдмрд▓ \ GCC \ ARM_CM3 рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЬрд╛рддреЗ рд╣реИрдВ , рдЗрд╕реЗ рджреЛ рд╕реНрддрд░реЛрдВ рдкрд░ рдХреЙрдкреА рдХрд░рддреЗ рд╣реИрдВ,
рд╕реНрд░реЛрдд \ рдкреЛрд░реНрдЯреЗрдмрд▓ рдореЗрдВ ред рд╣рдо
рд╕реНрд░реЛрдд \ рдкреЛрд░реНрдЯреЗрдмрд▓ \ рдореЗрдордореИрдВрдЧ рдлрд╝реЛрд▓реНрдбрд░ рдкрд░ рдзреНрдпрд╛рди рджреЗрддреЗ рд╣реИрдВ - рд╣рдореЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рднреА рд╣реЛрдЧреАред рдЗрд╕рд▓рд┐рдП, рд╣рдо
рд╕реНрд░реЛрдд \ рдкреЛрд░реНрдЯреЗрдмрд▓ \ рдореЗрдордореИрдВрдЧ рдФрд░ рд╣реМрд╕рд▓реЗ рд╕реЗ
рдХреЙрдкреА рдХрд┐рдП рдЧрдП рд╕реНрд░реЛрдд \ рдкреЛрд░реНрдЯреЗрдмрд▓ \ ARM_CM3 рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╕рдм рдХреБрдЫ рд╣рдЯрд╛ рджреЗрддреЗ рд╣реИрдВ
рдЙрд╕рдХреЗ рдмрд╛рдж, CooCox рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдореЗрдВ рд░рд╛рдЗрдЯ-рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ, Add Linked Folder рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рд╣рдорд╛рд░реЗ рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рддреИрдпрд╛рд░ FreeRTOS рд╕реНрд░реЛрддреЛрдВ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝реЗрдВред рдЕрдВрдд рдореЗрдВ, рдЖрдкрдХреЛ рдпрд╣ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЯреНрд░реА рдорд┐рд▓рдирд╛ рдЪрд╛рд╣рд┐рдП:

рдЕрдм рд╣рдо рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдЪрд▓реЛ рдХрд░реНрдиреЗрд▓ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рд╡рд╣рд╛рдВ рд╕реЗ рд╣рдореЗрдВ рдкреБрд░рд╛рдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ рдЬреБрдбрд╝реА рдХреЗрд╡рд▓ рдХреБрдЫ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА - рдмрд╛рдИрдВ, рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╕рдорд╛рд╡реЗрд╢рдиред
#include "stm32f10x_lib.h"
рдмрд╛рдХреА рд╕рдм рдХреБрдЫ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рдЫреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк FreeRTOS рдХрд░реНрдиреЗрд▓ рдХреЛ рдЯреНрдпреВрди рдХрд░рдиреЗ рдкрд░ рд▓реЗрдЦ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рд╡рд┐рдХрд▓реНрдк рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рдо рдЕрднреА рдЗрд╕рд╕реЗ рдирд┐рдкрдЯреЗрдВрдЧреЗ рдирд╣реАрдВред
рдЕрдм рд╣рдо рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдХреЛрдб (
cmsis_boot \ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк \ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк_stm32f10x_hd.c ) рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣реИрдВ: рд▓рд╛рдЗрдиреЗрдВ рдвреВрдВрдвреЗрдВ:
extern int main(void); extern void SystemInit(void); void Default_Reset_Handler(void); static void Default_Handler(void);
рдореЗрд░реЗ рдкрд╛рд╕ рдпреЗ рд▓рд╛рдЗрдиреЗрдВ 114-122 рд╣реИрдВ, рдФрд░ рдЙрдирдХреЗ рдмрд╛рдж рдирд┐рдореНрди рдХреЛрдб рдЬреЛрдбрд╝реЗрдВ:
extern void xPortPendSVHandler( void ) __attribute__ (( naked )); extern void xPortSysTickHandler( void ); extern void vPortSVCHandler( void ) __attribute__ (( naked ));
рдпреЗ рдХрд░реНрдиреЗрд▓ рдЗрдВрдЯрд░рдкреНрдЯ рд╣реИрдВрдбрд▓рд░ рд╣реИрдВ, рдЬреЛ port.c. рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдШреЛрд╖рд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВ рдЕрдм рд╣рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдмрд╛рдзрд╛ рд╡реЗрдХреНрдЯрд░ рдореЗрдВ рд░рдЯрдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдиреАрдЪреЗ рдЬрд╛рддрд╛ рд╣реИ (рд▓рд╛рдЗрдиреЗрдВ 129-209):
__attribute__ ((section(".isr_vector"))) void (* const g_pfnVectors[])(void) = { (void *)&pulStack[STACK_SIZE-1], Reset_Handler, NMI_Handler, HardFault_Handler, MemManage_Handler, BusFault_Handler, UsageFault_Handler, 0,0,0,0, vPortSVCHandler, DebugMon_Handler, 0, xPortPendSVHandler, xPortSysTickHandler,
рддрджрдиреБрд╕рд╛рд░, рд╣рдо рд╡реЗрдХреНрдЯрд░ рдХреЛ рдЙрдкрд░реЛрдХреНрдд рдХреЛрдб рдореЗрдВ рд▓рд┐рдЦреЗ рдЕрдиреБрд╕рд╛рд░ рдмрджрд▓рддреЗ рд╣реИрдВ,
рдХреНрд░рдорд╢рдГ SVCall рд╣реИрдВрдбрд▓рд░ ,
PendSV рд╣реИрдВрдбрд▓рд░ ,
SysTick рд╣реИрдВрдбрд▓рд░ рдХреЗ рд╕рд╛рде
vPortSVCHandler ,
xPortPendSVandler рдФрд░
xPortSysTickHandler рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рд▓рд╛рдЗрдиреЛрдВ рдХреА рдЬрдЧрд╣ред
рдпреБрдкреАрдбреА:рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдореБрдЭреЗ рд╕реНрдЯрд╛рд░реНрдЯ рдлрд╛рдЗрд▓ рдЪреБрдирдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдмрд╕ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЗ рд╕рд╛рде рд╣реИрдВрдбрд▓рд░ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░реЗрдВ: #define vPortSVCHandler SVC_Handler #define xPortPendSVHandler PendSV_Handler #define vPortSVCHandler SVC_Handler #define xPortSysTickHandler SysTick_Handler
рдЙрд╕рдХреЗ рдмрд╛рдж, рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЯреНрд░реА рдореЗрдВ
Source \ MemMang рдлрд╝реЛрд▓реНрдбрд░ рдЦреЛрд▓реЗрдВ, рдФрд░ рдореЗрдореЛрд░рд┐рдпрд▓ рдкреНрд░рдмрдВрдзрди рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рдЬреЛ рд╣рдореЗрдВ рд╕реВрдЯ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдпрд╣рд╛рдБ рдФрд░ рдкрдврд╝реЗрдВ:
рдлреНрд░реАрдЖрд░рдЯреАрдУрдПрд╕ рдореЗрдореЛрд░реА рдореИрдиреЗрдЬрдореЗрдВрдЯ ред
рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдлрд╝рд╛рдЗрд▓ рдирдВрдмрд░ 1 рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрди рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рд▓реАрдХреГрдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ, рд▓реЗрдХрд┐рди рдбреАрд▓рдХреНрд▓реЛрдХреЗрд╢рди рдХреЗ рдмрд┐рдирд╛, рдлрд╝рд╛рдЗрд▓ рдирдВрдмрд░ 2 рдПрдХ рдЕрдзрд┐рдХ рдЙрдиреНрдирдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ рдЬреЛ рдореЗрдореЛрд░реА рдбреАрд▓рдХреНрд▓реЗрд╡реЗрд╢рди рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдФрд░ рдирдВрдмрд░ 3 рдПрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдПрдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдЬрд┐рд╕рдореЗрдВ рдЖрдкрдХреЛ рдореЙрд▓реЙрдХ рдФрд░ рдореБрдлреНрдд рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдореИрдВрдиреЗ рджреВрд╕рд░рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЪреБрдирд╛, рд╢реЗрд╖ рджреЛ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЯреНрд░реА рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдкрд░ рд░рд╛рдЗрдЯ-рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рдФрд░
рдмрд┐рд▓реНрдб рд╕реЗ рдмрд╣рд┐рд╖реНрдХреГрдд рдХрд╛ рдЪрдпрди рдХрд░рдХреЗ рд╕рдВрдХрд▓рди рд╕реЗ рдмрд╛рд╣рд░ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИред
рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рд░рд╣рддрд╛ рд╣реИ - main.c рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓реЗрдВ, рдПрд╕рдкреАрдПрд▓ рд╕реЗ рдЬреЛ рдХреБрдЫ рднреА рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЙрд╕рдореЗрдВ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░реЗрдВ:
#include "stm32f10x.h" #include "stm32f10x_gpio.h" #include "stm32f10x_rcc.h"
FreeRTOS рд╕реЗ рдирд┐рд╖реНрдХрд░реНрд╖:
#include "FreeRTOS.h" #include "task.h" #include "queue.h"
рд╣рдо рдЗрд╕ рд░реВрдк рдореЗрдВ рд╕рд┐рдлрд╛рд░рд┐рд╢реЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╢реЗрдбреНрдпреВрд▓рд░ рдХреЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдмреБрд▓рд╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХрд╛рд░реНрдп рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рддреЗ рд╣реИрдВ:
static void prvSetupHardware( void );
рдФрд░ рдлрд╝рдВрдХреНрд╢рди рдЬреЛ рд╣рдорд╛рд░реЗ рдкрд░реАрдХреНрд╖рдг рдХрд╛рд░реНрдп рдХреА рднреВрдорд┐рдХрд╛ рдирд┐рднрд╛рдПрдЧрд╛, рдЬреИрд╕реЗ:
static void prvLedBlink( void *pvParameters );
рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
void prvSetupHardware() { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOB, &GPIO_InitStructure); } void prvLedBlink( void *pvParameters ) { GPIO_SetBits(GPIOB,GPIO_Pin_5); while(1); }
рдкрд░реАрдХреНрд╖рдг рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдХреБрдЫ рднреА рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рд▓рд┐рдЦрд╛ рдерд╛, рдХрд╛рд░реНрдп рдмрд╕ рдмреЛрд░реНрдб рдкрд░ рдПрд▓рдИрдбреА рдХреЛ рд░реЛрд╢рдиреА рджреЗрддрд╛ рд╣реИред
рдореБрдЦреНрдп () рдлрд╝рдВрдХреНрд╢рди рд╕реНрд╡рдпрдВ рд░рд╣рддрд╛ рд╣реИ, рдЬреЛ рдХрд╛рд░реНрдп рдФрд░ рд╢реЗрдбреНрдпреВрд▓рд░ рд╢реБрд░реВ рдХрд░реЗрдЧрд╛:
int main(void) { prvSetupHardware(); xTaskCreate(prvLedBlink,(signed char*)"LED",configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY + 1, NULL); vTaskStartScheduler(); while(1); }
рд╡рд╣ рдореВрд▓ рд░реВрдк рд╕реЗ рдпрд╣ рд╣реИред рдпрд╣ рдбрд┐рдмрдЧ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИ - рдЗрд╕рдХреЗ рд▓рд┐рдП, рдбрд┐рдмрдЧрд░ рдЯреИрдм рдореЗрдВ "рдбреАрдмрдЧ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ, рд╣рдорд╛рд░реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ (рдЬреЗ-рд▓рд┐рдВрдХ) рдФрд░ рдЬреЗрдЯреАрдЬреА рдкреЛрд░реНрдЯ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред
рд╣рдо рд░рди рдЯреВ рдореЗрди рдкрд░ рдЯрд┐рдХ рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдХреЛрдб рдореЗрдВ рдлрд╝реНрд▓реЙрдВрдбрд░ рди рд╣реЛ, рд▓рд╛рдЗрди рдореЗрдВ GDBServer cmdline рдЯреВрд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд╕рд╛рде рдЖрдиреЗ рд╡рд╛рд▓реЗ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдХреЗ рд▓рд┐рдП рдкрде рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ (рдЖрдк рдЗрд╕реЗ
рд╕реЗрдЧрд░ рд╡реЗрдмрд╕рд╛рдЗрдЯ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ), рдореЗрд░реЗ рдкрд╛рд╕ рдореЗрд░рд╛
C: \ SEGGER \ JLinkARM_V440b \ JLinkGDBServerCL.exe рд╣реИредрд▓рд╛рдЧреВ рд╣реЛрдиреЗ рдФрд░ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред
рдЕрдм рд╣рдо рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдбрд┐рдмрдЧ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ - рдпрджрд┐ рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдПрдкреНрд▓реЗрдЯ рдФрд░ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдмрд╛рдж, рдПрд▓рдИрдбреА рдХреЛ рдкреНрд░рдХрд╛рд╢ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдирд┐рд╖реНрдХрд░реНрд╖
рдбреЗрд╡рд▓рдкрд░ рдЯреВрд▓ рдХрд╛ рд╕рд╣реА рд╡рд┐рдХрд▓реНрдк рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдирдИ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпреЛрдВ рдХрд╛ рд╕рдмрд╕реЗ рддреЗрдЬрд╝ рдФрд░ рд╕рдмрд╕реЗ рдЖрд░рд╛рдорджрд╛рдпрдХ рд╡рд┐рдХрд╛рд╕ рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛ред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдорд┐рдиреА-рдПрд╕рдЯреАрдПрдо 32 рдФрд░ рдХреЛрдУрдХреНрд╕ рдЖрдИрдбреАрдИ рдбрд┐рдмрдЧрд┐рдВрдЧ рдмреЛрд░реНрдбреЛрдВ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдХреЗ, рдореИрдВрдиреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдирдП рдЯреВрд▓ рдкрд░ рдХрд░реАрдм рд╕реЗ рджреЗрдЦрдиреЗ рдореЗрдВ рдорджрдж рдХреАред рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП, FreeRTOS рдирд┐рд╕реНрд╕рдВрджреЗрд╣ рдПрдХ рдмрд╣реБрдд рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЙрдкрдХрд░рдг рд╣реИ, рдФрд░, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдПрдореНрдмреЗрдбреЗрдб рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдлрд░реНрдорд╡реЗрдпрд░ "рд╣реЗрдб-рдСрди" рд╕реЗ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рдХрджрдо рд╣реИред
рд╕рдВрджрд░реНрдн
рдИрдмреЗ рдкреГрд╖реНрда рдЬрд╣рд╛рдВ рдЖрдк рдбрд┐рдмрдЧ рдмреЛрд░реНрдб рдЦрд░реАрдж рд╕рдХрддреЗ рд╣реИрдВрдЖрдзрд┐рдХрд╛рд░рд┐рдХ CooCox рд╡реЗрдмрд╕рд╛рдЗрдЯFreeRTOS рдХреА рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕рд╛рдЗрдЯрд░реВрд╕реА рдлреНрд░реАрдЖрд░рдЯреАрдУрдПрд╕ рдореИрдиреБрдЕрд▓