{"id":367776,"date":"2024-05-21T03:28:11","date_gmt":"2024-05-21T03:28:11","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=367776"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=367776","title":{"rendered":"<span>ToolChain: \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0441\u0431\u043e\u0440\u043a\u0438 \u043f\u0440\u043e\u0448\u0438\u0432\u043e\u043a \u0434\u043b\u044f \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432 Artery \u0438\u0437 Makefile<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/1cf\/b92\/6bd\/1cfb926bd561302e30c50facc2aa91d3.png\" width=\"1037\" height=\"541\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/1cf\/b92\/6bd\/1cfb926bd561302e30c50facc2aa91d3.png\"\/><\/figure>\n<p>\u041d\u0430\u0441\u0442\u0430\u043b\u043e \u0432\u0440\u0435\u043c\u044f \u043e\u0441\u0432\u043e\u0438\u0442\u044c \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0435 \u0441\u0435\u043c\u0435\u0439\u0441\u0442\u0432\u043e \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432. \u041e\u0442\u00a0\u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Artery Technology. <\/p>\n<p>\u042d\u0442\u043e \u0443\u0436\u0435 11\u0442\u043e\u0435 \u043f\u043e \u0441\u0447\u0435\u0442\u0443 \u0441\u0435\u043c\u0435\u0439\u0441\u0442\u0432\u043e \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432 \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u043c\u043d\u0435 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f. \u0417\u0430 \u0441\u043f\u0438\u043d\u043e\u0439 \u0443\u0436\u0435 \u043e\u0442\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u0435 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 AVR (ATtiny, ATmega), ARM Cortex-M3(MDR32), ARM Cortex-M4(STM32, CC2650), ARM Cortex-M33(nRF5340), PowerPC (SPC58), Tensilica Xtensa (ESP32), 16bit(MSP430), 8bit(STM8), ARM7(LPC21xx), \u041cicroBlaze. \u041d\u0435 \u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u043b\u0441\u044f \u0435\u0449\u0451 \u0442\u043e\u043b\u044c\u043a\u043e \u0441 PIC \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430\u043c\u0438.<\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0432\u043e\u0442 \u043d\u0430\u0434\u043e \u0437\u0430\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c MCU \u043e\u0442 Artery (\u0430 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e AT32F435ZMT7). \u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Artery Technology \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0441 2016 \u0433\u043e\u0434\u0430 \u0438 \u0443\u0436\u0435 \u0432\u043e\u0437\u0432\u0435\u043b\u0430 \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u0443\u044e \u044d\u043a\u043e\u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0434\u043b\u044f \u0441\u0432\u043e\u0435\u0433\u043e \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430. \u0415\u0441\u0442\u044c \u0444\u0438\u0440\u043c\u0435\u043d\u043d\u044b\u0435 \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u044b\u0435 \u043f\u043b\u0430\u0442\u044b, \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430\u0442\u043e\u0440\u044b. \u0415\u0441\u0442\u044c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f, \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u043a\u043e\u0434\u044b MCAL, \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u043a\u043e\u0434\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u0438 \u0434\u0430\u0436\u0435 \u043a\u043e\u0434\u043e\u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u044b!<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/1a9\/3d8\/f51\/1a93d8f51d8259463470f87e30d999aa.png\" alt=\"\u0412\u043e\u0442 \u0442\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 AT32F435ZMT7 \u0432 \u043d\u0430\u0442\u0443\u0440\u0435\" title=\"\u0412\u043e\u0442 \u0442\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 AT32F435ZMT7 \u0432 \u043d\u0430\u0442\u0443\u0440\u0435\" width=\"732\" height=\"728\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/1a9\/3d8\/f51\/1a93d8f51d8259463470f87e30d999aa.png\"\/><\/p>\n<div><figcaption>\u0412\u043e\u0442 \u0442\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 AT32F435ZMT7 \u0432 \u043d\u0430\u0442\u0443\u0440\u0435<\/figcaption><\/div>\n<\/figure>\n<p>\u0417\u0430\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0438\u0437-\u043f\u043e\u0434 IDE- \u044d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e. \u041f\u043e\u0434 \u0441\u0438\u043b\u0443 \u0434\u0430\u0436\u0435 \u0448\u043a\u043e\u043b\u044c\u043d\u0438\u043a\u0443. \u0421\u043b\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0438\u0437 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432 \u0441\u0431\u043e\u0440\u043a\u0438. \u0412 \u0438\u0434\u0435\u0430\u043b\u0435 \u0438\u0437 <strong>makefile<\/strong>(\u043e\u0432). \u0417\u0430\u0447\u0435\u043c \u044d\u0442\u043e \u043d\u0430\u0434\u043e? \u0415\u0441\u043b\u0438 \u043e\u0442\u0432\u0435\u0447\u0430\u0442\u044c \u043a\u043e\u0440\u043e\u0442\u043a\u043e, \u0442\u043e \u0441\u0431\u043e\u0440\u043a\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u0438\u0437 make \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432 (\u0438\u043b\u0438 CMake) \u043b\u0438\u043a\u0432\u0438\u0434\u0438\u0440\u0443\u0435\u0442 \u0434\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u043e\u0432 \u0438, \u043a\u0430\u043a \u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0435, \u0441\u043f\u043e\u0441\u043e\u0431\u0441\u0442\u0432\u0443\u0435\u0442 \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u044e \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u043f\u0435\u0440\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u0434\u043e\u0432\u043e\u0439 \u0431\u0430\u0437\u044b.<\/p>\n<h3>\u041f\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0437\u0430\u0434\u0430\u0447\u0438<\/h3>\n<p>\u041d\u0430\u0443\u0447\u0438\u0442\u044c\u0441\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 <strong>AT32F435ZMT7<\/strong> \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Artery Technology. <\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b96\/15e\/c69\/b9615ec69155171c64dc017aae2d7a5d.png\" width=\"542\" height=\"315\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b96\/15e\/c69\/b9615ec69155171c64dc017aae2d7a5d.png\"\/><\/figure>\n<p>\u041d\u0430\u0443\u0447\u0438\u0442\u044c\u0441\u044f \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c <u>\u0434\u0435\u0442\u0435\u0440\u043c\u0438\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435<\/u> \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0435 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0421\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u043e\u043c GCC, \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442\u044b \u0438\u0437 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u0432\u0440\u0443\u0447\u043d\u0443\u044e Makefile(\u043b\u043e\u0432). <\/p>\n<p>\u0421\u043e\u0431\u0440\u0430\u0442\u044c \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0443 \u0441 \u0447\u0430\u0441\u0442\u043e\u0442\u043e\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 100MHz \u0441\u043e c\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044e\u0449\u0438\u043c \u0440\u0430\u0437 \u0432 1ms \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u043c \u0442\u0430\u0439\u043c\u0435\u0440\u043e\u043c SysTick, \u043c\u0438\u0433\u0430\u044e\u0449\u0438\u043c \u0440\u0430\u0437 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443 heart-beat LED(\u043e\u043c) \u0438 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 CLI \u043f\u043e\u0432\u0435\u0440\u0445 UART \u043d\u0430 \u0431\u0438\u0442\u043e\u0432\u043e\u0439 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 460800 Bit\/s.<\/p>\n<p>\u0422\u043e \u0435\u0441\u0442\u044c, \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u0442\u044c \u0442\u043e \u0441\u0430\u043c\u043e\u0435 \u0431\u0430\u0437\u043e\u0432\u043e\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e-\u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u043e\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0430\u044f \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u0430\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0438 \u043e\u0442\u043b\u0430\u0434\u043a\u0430 \u043a\u0430\u043a\u043e\u0433\u043e \u0431\u044b \u0442\u043e \u043d\u0438 \u0431\u044b\u043b\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0435 Artery.<\/p>\n<p>\u0413\u043e\u0432\u043e\u0440\u044f \u043c\u0435\u0442\u0430\u0444\u043e\u0440\u0438\u0447\u043d\u043e, \u043d\u0430\u0434\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c <strong>\u043a\u043e\u0440\u043e\u0431\u043e\u0447\u043a\u0443<\/strong> \u0434\u043b\u044f \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f.<\/p>\n<p>\u0422\u043e \u0435\u0441\u0442\u044c, \u0434\u043e\u0432\u0435\u0441\u0442\u0438 \u043f\u0440\u043e\u0435\u043a\u0442 \u0434\u043e <strong>\u043e\u0440\u0442\u043e\u0434\u043e\u043a\u0441\u0430\u043b\u044c\u043d\u043e \u043a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0444\u043e\u0440\u043c\u044b <\/strong>(Makefile, GCC, GDB, NoRTOS,  HeartBeat-LED, UART-CLI, NVRAM). <\/p>\n<p>\u0412\u043e\u0442 \u0441 \u044d\u0442\u0438\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u043e\u0438\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c.<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/c4a\/ff2\/e5c\/c4aff2e5c1389916d4f9e3866ab4eb20.png\" width=\"490\" height=\"592\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c4a\/ff2\/e5c\/c4aff2e5c1389916d4f9e3866ab4eb20.png\"\/><\/figure>\n<p><strong>\u0427\u0442\u043e \u043d\u0430\u0434\u043e \u0438\u0437 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438?<\/strong><\/p>\n<p>\u0414\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 AT32F435ZMT7 \u0412\u0430\u043c \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0448\u0435\u0440\u0441\u0442\u0438\u0442\u044c \u0432\u043e\u0442 \u044d\u0442\u0443 \u0441\u0442\u043e\u043f\u043a\u0443 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432.<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"50\" width=\"50\">\n<p align=\"left\"><strong>\u2116<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"345\" width=\"345\">\n<p align=\"left\"><strong>\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"97\" width=\"97\">\n<p align=\"left\"><strong>Ver<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"105\" width=\"105\">\n<p align=\"left\"><strong>pages<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>Vendor<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"50\" width=\"50\">\n<p align=\"left\">1<\/p>\n<\/td>\n<td data-colwidth=\"345\" width=\"345\">\n<p align=\"left\">Eclipse with GCC<\/p>\n<\/td>\n<td data-colwidth=\"97\" width=\"97\">\n<p align=\"left\">2.0.0<\/p>\n<\/td>\n<td data-colwidth=\"105\" width=\"105\">\n<p align=\"left\">23<\/p>\n<\/td>\n<td>\n<p align=\"left\">Artery<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"50\" width=\"50\">\n<p align=\"left\">7<\/p>\n<\/td>\n<td data-colwidth=\"345\" width=\"345\">\n<p align=\"left\">Cortex-M4 Technical Reference Manual<\/p>\n<\/td>\n<td data-colwidth=\"97\" width=\"97\">\n<p align=\"left\">r0p1<\/p>\n<\/td>\n<td data-colwidth=\"105\" width=\"105\">\n<p align=\"left\">121<\/p>\n<\/td>\n<td>\n<p align=\"left\">ARM<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"50\" width=\"50\">\n<p align=\"left\">2<\/p>\n<\/td>\n<td data-colwidth=\"345\" width=\"345\">\n<p align=\"left\">AT32F435\/437 Series Datasheet<\/p>\n<\/td>\n<td data-colwidth=\"97\" width=\"97\">\n<p align=\"left\">2.11<\/p>\n<\/td>\n<td data-colwidth=\"105\" width=\"105\">\n<p align=\"left\">120<\/p>\n<\/td>\n<td>\n<p align=\"left\">Artery<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"50\" width=\"50\">\n<p align=\"left\">3<\/p>\n<\/td>\n<td data-colwidth=\"345\" width=\"345\">\n<p align=\"left\">AT32F435\/437 Series Reference Manual<\/p>\n<\/td>\n<td data-colwidth=\"97\" width=\"97\">\n<p align=\"left\">2.05<\/p>\n<\/td>\n<td data-colwidth=\"105\" width=\"105\">\n<p align=\"left\">714<\/p>\n<\/td>\n<td>\n<p align=\"left\">Artery<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"50\" width=\"50\">\n<p align=\"left\">4<\/p>\n<\/td>\n<td data-colwidth=\"345\" width=\"345\">\n<p align=\"left\">AT-Link User Manual<\/p>\n<\/td>\n<td data-colwidth=\"97\" width=\"97\">\n<p align=\"left\">2.1.2<\/p>\n<\/td>\n<td data-colwidth=\"105\" width=\"105\">\n<p align=\"left\">38<\/p>\n<\/td>\n<td>\n<p align=\"left\">Artery<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"50\" width=\"50\">\n<p align=\"left\">5<\/p>\n<\/td>\n<td data-colwidth=\"345\" width=\"345\">\n<p align=\"left\">ICP Programmer Manual<\/p>\n<\/td>\n<td data-colwidth=\"97\" width=\"97\">\n<p align=\"left\">2.07<\/p>\n<\/td>\n<td data-colwidth=\"105\" width=\"105\">\n<p align=\"left\">50<\/p>\n<\/td>\n<td>\n<p align=\"left\">Artery<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"50\" width=\"50\">\n<p align=\"left\">6<\/p>\n<\/td>\n<td data-colwidth=\"345\" width=\"345\">\n<p align=\"left\">AT-Link Console User Manual<\/p>\n<\/td>\n<td data-colwidth=\"97\" width=\"97\">\n<p align=\"left\">2.08<\/p>\n<\/td>\n<td data-colwidth=\"105\" width=\"105\">\n<p align=\"left\">15<\/p>\n<\/td>\n<td>\n<p align=\"left\">Artery<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p><strong>\u0427\u0442\u043e \u043d\u0430\u0434\u043e \u0438\u0437 \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u044f?<\/strong><\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"63\" width=\"63\">\n<p align=\"left\"><strong>\u2116<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"309\" width=\"309\">\n<p align=\"left\"><strong>\u041e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u0435<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>\u041d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"63\" width=\"63\">\n<p align=\"left\">1<\/p>\n<\/td>\n<td data-colwidth=\"309\" width=\"309\">\n<p align=\"left\">\u042d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u0430\u044f \u043f\u043b\u0430\u0442\u0430 (PCB) \u0441 Artery MCU<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0422\u043e, \u0447\u0442\u043e \u043c\u044b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u0443\u0435\u043c<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"63\" width=\"63\">\n<p align=\"left\">2<\/p>\n<\/td>\n<td data-colwidth=\"309\" width=\"309\">\n<p align=\"left\">\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430\u0442\u043e\u0440\u0430 AT-Link+<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u0435\u0440\u0435\u0445\u043e\u0434\u043d\u0438\u043a \u0441 USB \u043d\u0430 SWD<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"63\" width=\"63\">\n<p align=\"left\">3<\/p>\n<\/td>\n<td data-colwidth=\"309\" width=\"309\">\n<p align=\"left\">\u041a\u0430\u0431\u0435\u043b\u044c USB-USB-C<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u044c NetTop \u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430\u0442\u043e\u0440<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"63\" width=\"63\">\n<p align=\"left\">4<\/p>\n<\/td>\n<td data-colwidth=\"309\" width=\"309\">\n<p align=\"left\">\u041f\u0435\u0440\u0435\u043c\u044b\u0447\u043a\u0438 \u0433\u043d\u0435\u0437\u0434\u043e-\u0433\u043d\u0435\u0437\u0434\u043e<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430\u0442\u043e\u0440 \u0438 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u0443\u044e \u043f\u043b\u0430\u0442\u0443<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"63\" width=\"63\">\n<p align=\"left\">5<\/p>\n<\/td>\n<td data-colwidth=\"309\" width=\"309\">\n<p align=\"left\">NetTop c Windows10<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0414\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 ToolChain(\u0430) cross \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>\u0424\u0430\u0437\u0430 1: \u0423c\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0422\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0433\u043e \u0420\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0430 Eclipse <\/h3>\n<p>\u042f \u043d\u0435 \u043d\u0430\u0441\u0442\u0430\u0438\u0432\u0430\u044e \u043d\u0430 Eclipse. \u041a\u043e\u0433\u0434\u0430 \u0432\u044b \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442\u0435 \u0438\u0437 make \u0442\u043e \u0432\u0430\u043c \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u043a\u0430\u043a\u043e\u0439 \u0442\u0430\u043c \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0439 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440. \u041b\u0438\u0447\u043d\u043e \u043c\u043d\u0435 \u0438\u043c\u043f\u043e\u043d\u0438\u0440\u0443\u0435\u0442 \u0435\u0433\u043e \u043f\u043e\u0434\u0441\u0432\u0435\u0442\u043a\u0430 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0430 \u0432 Eclipse \u0438 \u0433\u043e\u0440\u044f\u0447\u0438\u0435 \u043a\u043b\u0430\u0432\u0438\u0448\u0438. \u0422\u0430\u043a\u0436\u0435 \u043f\u0435\u0440\u0435\u0434 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u043e\u0439 Eclipse \u043d\u0430\u0434\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0443\u044e \u043c\u0430\u0448\u0438\u043d\u0443 Java \u0434\u043b\u044f \u0432\u0430\u0448\u0435\u0433\u043e PC. \u0421\u0430\u043c Eclipse IDE for C\/C++ Developers \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c <a href=\"https:\/\/www.eclipse.org\/downloads\/packages\/release\/2023-12\/r\/eclipse-ide-cc-developers\" rel=\"noopener noreferrer nofollow\"><u>\u043e\u0442\u0441\u044e\u0434\u0430<\/u><\/a>.<\/p>\n<p>\u041c\u043d\u0435 Eclipse \u043d\u0443\u0436\u0435\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u0430\u043a \u043f\u0435\u0447\u0430\u0442\u0430\u044e\u0449\u0430\u044f \u043c\u0430\u0448\u0438\u043d\u043a\u0430. \u042f \u0434\u0430\u0436\u0435 \u043d\u0435 \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u044e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u043b\u0430\u0433\u0438\u043d\u044b Eclipse.<\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 Eclipse \u0436\u0435\u043b\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u0440\u0430\u0437\u0443 \u0437\u0430\u0439\u0442\u0438 \u0432 Window->Preferences->General->Editors->Text Editors \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0435\u043d\u0438\u044f \u043f\u043e \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u043c\u0443 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0443.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/24a\/a07\/f72\/24aa07f727f564e4ee1eea12614ea807.png\" width=\"1530\" height=\"1010\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/24a\/a07\/f72\/24aa07f727f564e4ee1eea12614ea807.png\"\/><\/figure>\n<p>\u0421\u0440\u0430\u0437\u0443 \u0445\u043e\u0447\u0443 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0432 \u044d\u0442\u043e\u043c \u0442\u0435\u043a\u0441\u0442\u0435 \u044f \u0431\u0443\u0434\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c Eclipse \u0431\u0435\u0437 \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432 \u0434\u043b\u044f ARM GCC, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u043c\u0435\u0435\u0442 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c makefile(\u044b)<\/p>\n<p>\u0415\u0449\u0451 Eclipse \u043c\u043d\u0435 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u0434\u043b\u044f \u043f\u043e\u0448\u0430\u0433\u043e\u0432\u043e\u0439 \u043e\u0442\u043b\u0430\u0434\u043a\u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430, \u0442\u0430\u043a \u043a\u0430\u043a Eclipse  \u0441\u043f\u043e\u0441\u043e\u0431\u0435\u043d \u0430\u0441\u0441\u043e\u0446\u0438\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0441 GDB \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u043c. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043f\u0440\u043e \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c <a href=\"https:\/\/habr.com\/ru\/articles\/682498\/\" rel=\"noopener noreferrer nofollow\"><u>\u0442\u0443\u0442<\/u><\/a>.<\/p>\n<h3>\u0424\u0430\u0437\u0430 2: \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 GCC<\/h3>\n<p>\u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 GCC \u044d\u0442\u043e \u043a\u043e\u043d\u0441\u043e\u043b\u044c\u043d\u0430\u044f \u0443\u0442\u0438\u043b\u0438\u0442\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442 \u043a\u043e\u0434 \u043d\u0430 \u0421\u0438 \u0432 \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0439 \u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u043a\u043e\u0434 \u0434\u043b\u044f \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u043c\u0438\u043a\u0440\u043e\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430. \u041c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 2016 \u0433\u043e\u0434\u0430 <a href=\"https:\/\/launchpad.net\/gcc-arm-embedded\/+download\" rel=\"noopener noreferrer nofollow\"><u>\u0442\u0443\u0442<\/u><\/a>.<\/p>\n<p>\u0418\u043b\u0438 \u043b\u0443\u0447\u0448\u0435 \u0432\u0437\u044f\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u043d\u043e\u0432\u044b\u0439 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0441 <a href=\"https:\/\/developer.arm.com\/downloads\/-\/gnu-rm#:~:text=The%20GNU%20Arm%20Embedded%20Toolchain,Arm%20Cortex-R%20processor%20families\" rel=\"noopener noreferrer nofollow\"><u>\u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u0430\u0439\u0442\u0430 ARM<\/u><\/a>.<\/p>\n<p>\u041e\u0434\u043d\u0430\u043a\u043e \u0442\u0430\u043c \u0432\u0430\u043c \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0441\u0430\u0439\u0442\u0435, \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u0442\u044c \u043b\u043e\u0433\u0438\u043d \u0438 \u043f\u0430\u0440\u043e\u043b\u044c.<\/p>\n<p>\u0412\u0435\u0440\u043e\u044f\u0442\u043d\u043e, \u0447\u0442\u043e \u0443 \u0412\u0430\u0441 \u043d\u0430 LapTop(\u0435) \u0443\u0436\u0435 \u0434\u0430\u0432\u043d\u044b\u043c-\u0434\u0430\u0432\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d GCC \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0434\u043b\u044f ARM \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043e\u0432. \u0412\u0435\u0440\u043e\u044f\u0442\u043d\u043e, \u0447\u0442\u043e \u0412\u044b \u0443\u0436\u0435 \u0438 \u0440\u0430\u043d\u044c\u0448\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u043c\u0438\u043a\u0440\u043e\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u044b ARM Cortex-M \u043e\u0442 \u0442\u0430\u043a\u0438\u0445 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u0439 \u043a\u0430\u043a STM32, Nordic Semiconductor, \u041f\u041a\u041a \u041c\u0438\u043b\u0430\u043d\u0434\u0440, \u0410\u041e \u041d\u041f\u0426 \u042d\u041b\u0412\u0418\u0421, \u041d\u0418\u0418\u042d\u0422 \u0438\u043b\u0438 TI. \u0418 \u0443 \u0412\u0430\u0441 \u0443\u0436\u0435 \u043d\u0430 \u0436\u0435\u0441\u0442\u043a\u043e\u043c \u0434\u0438\u0441\u043a\u0435 \u043e\u0441\u0442\u0430\u043b\u0441\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 arm-none-eabi-gcc. \u0427\u0442\u043e\u0431\u044b \u044d\u0442\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043d\u0430\u0434\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u044c cmd \u0438 \u043d\u0430\u0431\u0440\u0430\u0442\u044c: <\/p>\n<p><strong>arm-none-eabi-gcc \u2013v<\/strong><\/p>\n<pre><code class=\"xml\">C:\\Users\\user>arm-none-eabi-gcc -v Using built-in specs. COLLECT_GCC=arm-none-eabi-gcc COLLECT_LTO_WRAPPER=c:\/program\\ files\\ (x86)\/gnu\\ arm\\ embedded\\ toolchain\/10\\ 2021.10\/bin\/..\/lib\/gcc\/arm-none-eabi\/10.3.1\/lto-wrapper.exe Target: arm-none-eabi Configured with: \/mnt\/workspace\/workspace\/GCC-10-pipeline\/jenkins-GCC-10-pipeline-338_20211018_1634516203\/src\/gcc\/configure --build=x86_64-linux-gnu --host=i686-w64-mingw32 --target=arm-none-eabi --prefix=\/mnt\/workspace\/workspace\/GCC-10-pipeline\/jenkins-GCC-10-pipeline-338_20211018_1634516203\/install-mingw --libexecdir=\/mnt\/workspace\/workspace\/GCC-10-pipeline\/jenkins-GCC-10-pipeline-338_20211018_1634516203\/install-mingw\/lib --infodir=\/mnt\/workspace\/workspace\/GCC-10-pipeline\/jenkins-GCC-10-pipeline-338_20211018_1634516203\/install-mingw\/share\/doc\/gcc-arm-none-eabi\/info --mandir=\/mnt\/workspace\/workspace\/GCC-10-pipeline\/jenkins-GCC-10-pipeline-338_20211018_1634516203\/install-mingw\/share\/doc\/gcc-arm-none-eabi\/man --htmldir=\/mnt\/workspace\/workspace\/GCC-10-pipeline\/jenkins-GCC-10-pipeline-338_20211018_1634516203\/install-mingw\/share\/doc\/gcc-arm-none-eabi\/html --pdfdir=\/mnt\/workspace\/workspace\/GCC-10-pipeline\/jenkins-GCC-10-pipeline-338_20211018_1634516203\/install-mingw\/share\/doc\/gcc-arm-none-eabi\/pdf --enable-languages=c,c++ --enable-mingw-wildcard --disable-decimal-float --disable-libffi --disable-libgomp --disable-libmudflap --disable-libquadmath --disable-libssp --disable-libstdcxx-pch --disable-nls --disable-shared --disable-threads --disable-tls --with-gnu-as --with-gnu-ld --with-headers=yes --with-newlib --with-python-dir=share\/gcc-arm-none-eabi --with-sysroot=\/mnt\/workspace\/workspace\/GCC-10-pipeline\/jenkins-GCC-10-pipeline-338_20211018_1634516203\/install-mingw\/arm-none-eabi --with-libiconv-prefix=\/mnt\/workspace\/workspace\/GCC-10-pipeline\/jenkins-GCC-10-pipeline-338_20211018_1634516203\/build-mingw\/host-libs\/usr --with-gmp=\/mnt\/workspace\/workspace\/GCC-10-pipeline\/jenkins-GCC-10-pipeline-338_20211018_1634516203\/build-mingw\/host-libs\/usr --with-mpfr=\/mnt\/workspace\/workspace\/GCC-10-pipeline\/jenkins-GCC-10-pipeline-338_20211018_1634516203\/build-mingw\/host-libs\/usr --with-mpc=\/mnt\/workspace\/workspace\/GCC-10-pipeline\/jenkins-GCC-10-pipeline-338_20211018_1634516203\/build-mingw\/host-libs\/usr --with-isl=\/mnt\/workspace\/workspace\/GCC-10-pipeline\/jenkins-GCC-10-pipeline-338_20211018_1634516203\/build-mingw\/host-libs\/usr --with-libelf=\/mnt\/workspace\/workspace\/GCC-10-pipeline\/jenkins-GCC-10-pipeline-338_20211018_1634516203\/build-mingw\/host-libs\/usr --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm' --with-pkgversion='GNU Arm Embedded Toolchain 10.3-2021.10' --with-multilib-list=rmprofile,aprofile Thread model: single Supported LTO compression algorithms: zlib gcc version 10.3.1 20210824 (release) (GNU Arm Embedded Toolchain 10.3-2021.10)<\/code><\/pre>\n<p>\u041d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u043d\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e, \u0441\u0430\u043c\u044b\u0439 \u0441\u0432\u0435\u0436\u0438\u0439 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 ARM-GCC \u044d\u0442\u043e \u043e\u0442 2021 \u0433\u043e\u0434\u0430. \u0412 \u0441\u043e\u0441\u0442\u0430\u0432 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 \u0432\u0445\u043e\u0434\u0438\u0442 \u0432\u043e\u0442 \u044d\u0442\u043e\u0442 \u043d\u0430\u0431\u043e\u0440 \u0443\u0442\u0438\u043b\u0438\u0442<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"66\" width=\"66\">\n<p align=\"left\"><strong>\u2116<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"176\" width=\"176\">\n<p align=\"left\"><strong>\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0443\u0442\u0438\u043b\u0438\u0442\u044b<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>\u041d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0443\u0442\u0438\u043b\u0438\u0442\u044b<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"66\" width=\"66\">\n<p align=\"left\">1<\/p>\n<\/td>\n<td data-colwidth=\"176\" width=\"176\">\n<p align=\"left\">addr2line<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442 \u0430\u0434\u0440\u0435\u0441 \u0438\u0437 flash \u0432 \u0441\u0442\u0440\u043e\u0447\u043a\u0443 \u043a\u043e\u0434\u0430 \u0432 \u0444\u0430\u0439\u043b\u0435<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"66\" width=\"66\">\n<p align=\"left\">2<\/p>\n<\/td>\n<td data-colwidth=\"176\" width=\"176\">\n<p align=\"left\">cpp<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0423\u0442\u0438\u043b\u0438\u0442\u0430 \u0432\u0441\u0442\u0430\u0432\u043a\u0438 \u0438 \u0437\u0430\u043c\u0435\u043d\u044b \u0442\u0435\u043a\u0441\u0442\u0430  <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"66\" width=\"66\">\n<p align=\"left\">3<\/p>\n<\/td>\n<td data-colwidth=\"176\" width=\"176\">\n<p align=\"left\">gcc<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u044f\u0437\u044b\u043a\u0430 \u0421\u0438<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"66\" width=\"66\">\n<p align=\"left\">4<\/p>\n<\/td>\n<td data-colwidth=\"176\" width=\"176\">\n<p align=\"left\">ar<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0430\u0440\u0445\u0438\u0432\u0430\u0442\u043e\u0440<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"66\" width=\"66\">\n<p align=\"left\">5<\/p>\n<\/td>\n<td data-colwidth=\"176\" width=\"176\">\n<p align=\"left\">as<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"66\" width=\"66\">\n<p align=\"left\">6<\/p>\n<\/td>\n<td data-colwidth=\"176\" width=\"176\">\n<p align=\"left\">elfedit<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043f\u0430\u0440\u0441\u0435\u0440 elf \u0444\u0430\u0439\u043b\u043e\u0432<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"66\" width=\"66\">\n<p align=\"left\">7<\/p>\n<\/td>\n<td data-colwidth=\"176\" width=\"176\">\n<p align=\"left\">gdb<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"66\" width=\"66\">\n<p align=\"left\">8<\/p>\n<\/td>\n<td data-colwidth=\"176\" width=\"176\">\n<p align=\"left\">ld<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u0449\u0438\u043a<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"66\" width=\"66\">\n<p align=\"left\">9<\/p>\n<\/td>\n<td data-colwidth=\"176\" width=\"176\">\n<p align=\"left\">nm<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0441\u043f\u0438\u0441\u043e\u043a \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u0432  <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"66\" width=\"66\">\n<p align=\"left\">10<\/p>\n<\/td>\n<td data-colwidth=\"176\" width=\"176\">\n<p align=\"left\">objcopy<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c elf \u0444\u0430\u0439\u043b\u043e\u0432 \u0432 bin hex<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"66\" width=\"66\">\n<p align=\"left\">11<\/p>\n<\/td>\n<td data-colwidth=\"176\" width=\"176\">\n<p align=\"left\">objdump<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043f\u0440\u043e \u043e\u0431\u044c\u0435\u043a\u0442\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b (*.o)<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"66\" width=\"66\">\n<p align=\"left\">12<\/p>\n<\/td>\n<td data-colwidth=\"176\" width=\"176\">\n<p align=\"left\">size<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0440\u0430\u0437\u043c\u0435\u0440 \u0441\u0435\u043a\u0446\u0438\u0439 \u0432 \u0431\u0438\u043d\u0430\u0440\u043d\u043e\u043c \u0444\u0430\u0439\u043b\u0435<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"66\" width=\"66\">\n<p align=\"left\">13<\/p>\n<\/td>\n<td data-colwidth=\"176\" width=\"176\">\n<p align=\"left\">strings<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043f\u0435\u0447\u0430\u0442\u0430\u0435\u043c\u044b\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u0438\u0437 \u0431\u0438\u043d\u0430\u0440\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"66\" width=\"66\">\n<p align=\"left\">14<\/p>\n<\/td>\n<td data-colwidth=\"176\" width=\"176\">\n<p align=\"left\">strips<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0443\u0434\u0430\u043b\u044f\u0435\u0442 \u0441\u0438\u043c\u0432\u043e\u043b\u044b \u0438 \u0441\u0435\u043a\u0446\u0438\u0438 \u0438\u0437 \u0444\u0430\u0439\u043b\u0430<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>\u0424\u0430\u0437\u0430 3: \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0423\u0442\u0438\u043b\u0438\u0442\u044b \u0421\u0431\u043e\u0440\u043a\u0438 (Build Tools)<\/h3>\n<p>\u0414\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c \u043d\u0443\u0436\u043d\u044b \u0432\u0441\u044f\u0447\u0435\u0441\u043a\u0438\u0435 \u043f\u0440\u0438\u043a\u043b\u0430\u0434\u043d\u044b\u0435 \u0443\u0442\u0438\u043b\u0438\u0442\u044b \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438. \u0412\u043e\u0442 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0438\u0445 \u043f\u0435\u0440\u0435\u0447\u0435\u043d\u044c:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"73\" width=\"73\">\n<p align=\"left\"><strong>\u2116<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"162\" width=\"162\">\n<p align=\"left\"><strong>\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0443\u0442\u0438\u043b\u0438\u0442\u044b<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>\u041d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"73\" width=\"73\">\n<p align=\"left\">1<\/p>\n<\/td>\n<td data-colwidth=\"162\" width=\"162\">\n<p align=\"left\">make<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440 \u0443\u0442\u0438\u043b\u0438\u0442 \u0441\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u0441\u043a\u0440\u0438\u043f\u0442\u0443 \u0432 Makefile<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"73\" width=\"73\">\n<p align=\"left\">2<\/p>\n<\/td>\n<td data-colwidth=\"162\" width=\"162\">\n<p align=\"left\">rm<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0444\u0430\u0439\u043b \u0438\u043b\u0438 \u043f\u0430\u043f\u043a\u0443<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"73\" width=\"73\">\n<p align=\"left\">3<\/p>\n<\/td>\n<td data-colwidth=\"162\" width=\"162\">\n<p align=\"left\">cd<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u0432 \u0434\u0440\u0443\u0433\u0443\u044e \u043f\u0430\u043f\u043a\u0443<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"73\" width=\"73\">\n<p align=\"left\">4<\/p>\n<\/td>\n<td data-colwidth=\"162\" width=\"162\">\n<p align=\"left\">mkdir<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u0430\u043f\u043a\u0443<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"73\" width=\"73\">\n<p align=\"left\">5<\/p>\n<\/td>\n<td data-colwidth=\"162\" width=\"162\">\n<p align=\"left\">tee<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0440\u0430\u0437\u0432\u0435\u0442\u0432\u043b\u0435\u043d\u0438\u0435 \u043b\u043e\u0433\u0430 \u043a\u043e\u043d\u0441\u043e\u043b\u044c\u043d\u043e\u0439 \u0443\u0442\u0438\u043b\u0438\u0442\u044b \u0432 \u0444\u0430\u0439\u043b \u0438 stdout <\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0412\u0441\u0435 \u043e\u043d\u0438 \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043e\u0434\u043d\u0438\u043c \u0442\u0435\u0440\u043c\u0438\u043d\u043e\u043c: <strong>Build Tools<\/strong>. \u0418\u0445 \u043c\u043e\u0436\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0440\u0430\u0437\u043e\u043c \u0432\u043e\u0442 \u043f\u043e \u044d\u0442\u043e\u0439 <a href=\"https:\/\/sourceforge.net\/projects\/gnuarmeclipse\/files\/Build%20Tools\/\" rel=\"noopener noreferrer nofollow\"><u>\u0441\u0441\u044b\u043b\u043a\u0435<\/u><\/a>.<\/p>\n<p>\u041f\u0443\u0442\u044c \u043a Build Tools \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043f\u0440\u043e\u043f\u0438\u0441\u0430\u0442\u044c \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e PATH. \u0412\u043e\u043e\u0431\u0449\u0435 \u043f\u0443\u0442\u0438 \u043a\u043e \u0432\u0441\u0435\u043c *.exe \u043d\u0430\u0434\u043e \u043f\u0440\u043e\u043f\u0438\u0441\u0430\u0442\u044c \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e PATH. \u0422\u043e\u0433\u0434\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0441\u043c\u043e\u0436\u0435\u0442 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c \u0438\u0445 \u0431\u0435\u0437 \u044f\u0432\u043d\u043e\u0433\u043e \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u043f\u043e\u043b\u043d\u043e\u0433\u043e \u043f\u0443\u0442\u0438 \u043d\u0430 \u0436\u0435\u0441\u0442\u043a\u043e\u043c \u0434\u0438\u0441\u043a\u0435.<\/p>\n<h3>\u0424\u0430\u0437\u0430 5: \u0421\u0431\u043e\u0440\u043a\u0430 \u041f\u0440\u043e\u0448\u0438\u0432\u043a\u0438<\/h3>\n<p>\u041a\u0430\u0436\u0434\u044b\u0439 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432 \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u043a\u043e\u0434\u0430 \u0434\u043b\u044f \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0446\u0438\u0438 \u043e\u0442 \u043f\u043e\u0434\u0441\u0438\u0441\u0442\u0435\u043c \u043d\u0430 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0435. \u0422\u0430\u043a\u043e\u0439 \u043a\u043e\u0434 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f MCAL\/HAL\/BSP \u0438 \u0442. \u043f.<\/p>\n<p>Artery \u043d\u0435 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435. \u0421\u043a\u0430\u0447\u0430\u0442\u044c \u0444\u0438\u0440\u043c\u0435\u043d\u043d\u044b\u0439 MCAL \u043c\u043e\u0436\u043d\u043e \u0441 \u0441\u0430\u0439\u0442\u0430 <a href=\"https:\/\/www.arterytek.com\/en\/product\/AT32F435.jsp\" rel=\"noopener noreferrer nofollow\">https:\/\/www.arterytek.com\/en\/product\/AT32F435.jsp<\/a><\/p>\n<p>\u041d\u0430\u0434\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u0430\u0440\u0445\u0438\u0432 \u0441 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c <strong>AT32F435_437_Firmware_Library_EN_V2.1.5.zip<\/strong><\/p>\n<p>\u0412\u043e\u0442 \u0442\u0443\u0442 \u043b\u0435\u0436\u0438\u0442 MCAL \u0434\u043b\u044f GPIO, ADC, CAN, DMA,DAC, FLASH, I2C, SPI, UART, USB \u0438 \u0442.\u043f.<\/p>\n<p>AT32F435_437_Firmware_Library_EN_V2.1.5\\libraries\\drivers\\src<\/p>\n<p>\u0422\u0430\u043c \u0436\u0435 \u0435\u0441\u0442\u044c Third-Paty \u043a\u043e\u0434 \u0434\u043b\u044f CMSIS, FreeRTOS, LwIP, FatFS, Light and Versatile Graphics Library. \u041f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432. <\/p>\n<p>\u041f\u0430\u043f\u043a\u0430 AT32F435_437_Firmware_Library_EN_V2.1.5 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0438 \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u0443\u0441\u0442\u0430\u0442\u044c \u0438\u0441\u043a\u0430\u0442\u044c \u0442\u0430\u043c \u0447\u0442\u043e-\u0442\u043e \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0435 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u0443\u043b\u044c\u0442\u043e\u0432\u0443\u044e \u0443\u0442\u0438\u043b\u0438\u0442\u0443 <strong>grep<\/strong>. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432\u043e\u0442 \u0442\u0443\u0442 \u044f \u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u0447\u043a\u043e\u0439 <\/p>\n<pre><code>grep -rn at32_board_init | grep \"\\.c\" | grep -v main<\/code><\/pre>\n<p>\u043d\u0430\u0448\u0435\u043b \u0442\u043e \u0441\u0430\u043c\u043e\u0435 \u043c\u0435\u0441\u0442\u043e, \u0433\u0434\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f <strong>at32_board_init()<\/strong><\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/266\/611\/f9d\/266611f9dbd2d48fe4c8fbf668896bf4.png\" width=\"952\" height=\"83\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/266\/611\/f9d\/266611f9dbd2d48fe4c8fbf668896bf4.png\"\/><\/figure>\n<p>\u0415\u0441\u0442\u044c \u043e\u0447\u0435\u043d\u044c \u0432\u0430\u0436\u043d\u044b\u0439 \u0444\u0430\u0439\u043b <strong>core_cm4.h<\/strong>. \u0412 \u0444\u0430\u0439\u043b\u0435 core_cm4.h, \u043d\u0435 \u043c\u043d\u043e\u0433\u043e \u043d\u0435 \u043c\u0430\u043b\u043e, \u0430\u0436 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043c\u0438\u043a\u0440\u043e\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043d\u043e\u0433\u043e \u044f\u0434\u0440\u0430 ARM Cortex-M4! \u0412\u043e\u0442 \u043f\u043e\u043b\u043d\u044b\u0439 \u043f\u0443\u0442\u044c:<br \/>AT32F435_437_Firmware_Library_EN_V2.1.5\\libraries\\cmsis\\cm4\\core_support\\core_cm4.h<\/p>\n<p>\u0412\u043d\u0443\u0442\u0440\u0438 \u0444\u0430\u0439\u043b\u0430 <strong>core_cm4.h<\/strong> \u043c\u043e\u0436\u043d\u043e \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0442\u044c \u0431\u0438\u0442\u043e\u0432\u044b\u0435 \u043f\u043e\u043b\u044f \u0434\u043b\u044f \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 ARM Cortex-M4, \u043a\u043e\u0434 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u043c \u0442\u0430\u0439\u043c\u0435\u0440\u043e\u043c SysTick, \u043a\u043e\u0434 \u0434\u043b\u044f FPU, \u043a\u043e\u0434 \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u0434\u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439 NVIC: \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0432\u044b\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0435 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435, \u0438 \u043f\u0440\u043e\u0447\u0435\u0435.<\/p>\n<p>\u0412 \u043a\u043e\u0440\u0435\u043d\u044c \u043f\u0430\u043f\u043a\u0438 \u0441 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u043c \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u044c \u0444\u0430\u0439\u043b at32f435_437_conf.h. \u042d\u0442\u043e \u043a\u043e\u043d\u0444\u0438\u0433 \u0434\u043b\u044f MCAL \u043e\u0442 Artery. \u0422\u0430\u043c \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u043c\u0430\u043a\u0440\u043e\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0439 \u043f\u0440\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a\u0438\u0435 \u043f\u043e\u0434\u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 (CRM, GPIO, FLASH, UART \u0438 \u0442.\u043f.) \u0434\u043e\u043b\u0436\u043d\u044b \u0443\u0447\u0430\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0432 \u0441\u0431\u043e\u0440\u043a\u0435 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u043e\u0432 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438. \u0422\u0443\u0442 \u0435\u0441\u0442\u044c \u0434\u0432\u0430 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430. \u041f\u0435\u0440\u0432\u044b\u0439, \u0412\u044b \u043f\u0440\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0435 \u044d\u0442\u0438 \u043c\u0430\u043a\u0440\u043e\u0441\u044b \u0432 *.h \u0444\u0430\u0439\u043b\u0435. \u0412\u0442\u043e\u0440\u043e\u0439, \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439, \u0412\u044b \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0435 \u043c\u0430\u043a\u0440\u043e\u0441\u044b \u0447\u0435\u0440\u0435\u0437 \u043e\u043f\u0446\u0438\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 \u043f\u0440\u0438 \u0441\u0431\u043e\u0440\u043a\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430. \u041f\u0440\u044f\u043c\u043e \u0432 \u0441\u043a\u0440\u0438\u043f\u0442\u0430\u0445 \u0441\u0431\u043e\u0440\u043a\u0438. \u0412\u043e\u0442 \u0442\u0430\u043a \u044d\u0442\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0432 Make. <\/p>\n<pre><code class=\"bash\">    ifeq ($(CLOCK),Y)         OPT += -DCRM_MODULE_ENABLED     endif <\/code><\/pre>\n<p>\u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430, \u0412\u0430\u043c \u043d\u0435 \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u043f\u043e\u0442\u043e\u043c \u0432 \u043a\u043e\u0434\u0435 \u0432\u0435\u0437\u0434\u0435, \u0433\u0434\u0435 \u043d\u0430\u0434\u043e \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c at32f435_437.h. \u0422\u0430\u043a \u043a\u0430\u043a \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u044b\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0443 \u043c\u0430\u043a\u0440\u043e\u0441\u044b \u0447\u0435\u0440\u0435\u0437 \u043e\u043f\u0446\u0438\u044e -D \u043e\u043d\u0438 \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u044b \u0434\u043b\u044f \u0432\u0441\u0435\u0445 *.c \u0438 *.h \u0444\u0430\u0439\u043b\u043e\u0432. <\/p>\n<p>\u0423 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 \u0435\u0441\u0442\u044c \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f. \u041e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u044b \u0432\u043e\u0442 \u0432 \u044d\u0442\u0438\u0445 \u0444\u0430\u0439\u043b\u0430\u0445: at32f435_437_int.h, at32f435_437_int.c. \u041f\u043e\u043b\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0432 \u0444\u0430\u0439\u043b\u0435 startup_at32f435_437.S \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0435 <strong>g_pfnVectors<\/strong>. \u042d\u0442\u043e\u0442 \u043c\u0430\u0441\u0441\u0438\u0432 \u043e\u0431\u044b\u0447\u043d\u043e \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442 &#171;\u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u0432 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439&#187;, \u0445\u043e\u0442\u044f \u043f\u043e \u0444\u0430\u043a\u0442\u0443 \u0432 \u043f\u0430\u043c\u044f\u0442\u0438 \u044d\u0442\u043e \u043f\u0440\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u043c\u0430\u0441\u0441\u0438\u0432 \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u0431\u0438\u043d\u0430\u0440\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438. \u041f\u0435\u0440\u0435\u0447\u0435\u043d\u044c \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439 \u0443 \u0432\u0441\u0435\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432 \u0440\u0430\u0437\u043d\u044b\u0439. \u0415\u0441\u043b\u0438 \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435 \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0443 \u0432\u0430\u0441 \u043d\u0435\u0442 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 \u0432 \u0444\u0430\u0439\u043b\u0435 at32f435_437_int.c (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 SPI1_IRQHandler), \u0442\u043e \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0430 \u0437\u0430\u0432\u0438\u0441\u043d\u0435\u0442.<\/p>\n<p>\u041a\u043e\u0433\u0434\u0430 \u043c\u044b \u043f\u043e\u043a\u0443\u043f\u0430\u0435\u043c \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0442\u043e \u0442\u0430\u043c \u0443\u0436\u0435 \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u0430 \u0437\u0430\u0432\u043e\u0434\u0441\u043a\u0430\u044f \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0430. \u0422\u0430\u043a \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u0439 Boot code. \u0418\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u0430 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0430 \u0432\u044b\u0445\u043e\u0434\u0438\u0442 \u043d\u0430 \u0441\u0446\u0435\u043d\u0443 \u043a\u043e\u0433\u0434\u0430 \u043c\u044b \u043f\u043e\u0434\u0430\u0435\u043c \u043f\u0438\u0442\u0430\u043d\u0438\u0435 \u043d\u0430 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440.<\/p>\n<p>\u041a\u043e\u0433\u0434\u0430 \u043d\u0430 MCU \u043f\u043e\u0434\u0430\u044e\u0442 \u0438 \u0434\u0435\u043b\u0430\u044e\u0442 \u0441\u0431\u0440\u043e\u0441, \u0442\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0448\u0430\u0433\u0438<\/p>\n<p>1&#8212; \u0447\u0438\u0442\u0430\u0435\u0442 \u043f\u0435\u0440\u0432\u044b\u0435 2 qword \u043f\u0430\u043c\u044f\u0442\u0438. \u0422\u043e \u0435\u0441\u0442\u044c 8 \u0431\u0430\u0439\u0442.<\/p>\n<p>2&#8212; \u0438\u0437 \u0430\u0434\u0440\u0435\u0441\u0430 0x00000000 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432\u0435\u0440\u0445\u0443\u0448\u043a\u0438 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f \u0441\u0442\u0435\u043a\u0430. \u041f\u043e \u043c\u0435\u0440\u0435 \u0440\u043e\u0441\u0442\u0430 \u0430\u0434\u0440\u0435\u0441 \u0441\u0442\u0435\u043a\u0430 \u0431\u0443\u0434\u0435\u0442 \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0442\u044c\u0441\u044f.<\/p>\n<p>3&#8212; \u0438\u0437 \u0430\u0434\u0440\u0435\u0441\u0430 0x00000004 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0433\u043e \u0441\u0447\u0435\u0442\u0447\u0438\u043a\u0430 PC.  <\/p>\n<p>\u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u043e \u043d\u0443\u043b\u0435\u0432\u043e\u043c\u0443 \u0430\u0434\u0440\u0435\u0441\u0443 \u043f\u0440\u043e\u043f\u0438\u0441\u0430\u043d \u0437\u0430\u0432\u043e\u0434\u0441\u043a\u043e\u0439 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a. \u0415\u0433\u043e \u0440\u043e\u043b\u044c \u0432\u0441\u0435\u0433\u0434\u0430 \u0432 \u0442\u043e\u043c \u0447\u0442\u043e\u0431\u044b \u0433\u043b\u044f\u0434\u044f \u043d\u0430 Boot \u043f\u0438\u043d\u044b \u0440\u0435\u0448\u0438\u0442\u044c \u043e\u0442\u043a\u0443\u0434\u0430 \u0433\u0440\u0443\u0437\u0438\u0442\u044c\u0441\u044f \u0434\u0430\u043b\u044c\u0448\u0435. \u0422\u0443\u0442 \u0435\u0441\u0442\u044c \u0442\u0440\u0438 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430. <\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"71\" width=\"71\">\n<p align=\"left\"><strong>BOOT1<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"70\" width=\"70\">\n<p align=\"left\"><strong>BOOT0<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"322\" width=\"322\">\n<p align=\"left\"><strong>Boot source<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>Start Address<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"71\" width=\"71\">\n<p align=\"left\">0<\/p>\n<\/td>\n<td data-colwidth=\"70\" width=\"70\">\n<p align=\"left\">0<\/p>\n<\/td>\n<td data-colwidth=\"322\" width=\"322\">\n<p align=\"left\">CODE starts from the main Flash memory<\/p>\n<\/td>\n<td>\n<p align=\"left\">0x08000000<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"71\" width=\"71\">\n<p align=\"left\">1<\/p>\n<\/td>\n<td data-colwidth=\"70\" width=\"70\">\n<p align=\"left\">0<\/p>\n<\/td>\n<td data-colwidth=\"322\" width=\"322\">\n<p align=\"left\">CODE starts from the main Flash memory<\/p>\n<\/td>\n<td>\n<p align=\"left\">0x08000000<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"71\" width=\"71\">\n<p align=\"left\">0<\/p>\n<\/td>\n<td data-colwidth=\"70\" width=\"70\">\n<p align=\"left\">1<\/p>\n<\/td>\n<td data-colwidth=\"322\" width=\"322\">\n<p align=\"left\">CODE starts from Boot code<\/p>\n<\/td>\n<td>\n<p align=\"left\">0x00000100<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"71\" width=\"71\">\n<p align=\"left\">1<\/p>\n<\/td>\n<td data-colwidth=\"70\" width=\"70\">\n<p align=\"left\">1<\/p>\n<\/td>\n<td data-colwidth=\"322\" width=\"322\">\n<p align=\"left\">CODE starts from SRAM<\/p>\n<\/td>\n<td>\n<p align=\"left\">0x20000000<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h4>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0442\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u044f\u0434\u0440\u0430<\/h4>\n<p>\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043b\u044e\u0431\u043e\u0433\u043e MCU \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441 \u0432\u044b\u0431\u043e\u0440\u0430 \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u0442\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0435\u0433\u043e \u044f\u0434\u0440\u0430. \u042d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u0432\u0430\u0436\u043d\u043e. \u0415\u0441\u043b\u0438 \u0432\u044b \u043d\u0435 \u0437\u043d\u0430\u0435\u0442\u0435 \u043d\u0430 \u043a\u0430\u043a\u043e\u0439 \u0447\u0430\u0441\u0442\u043e\u0442\u0435 \u0443 \u0432\u0430\u0441 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u044f\u0434\u0440\u043e, \u0442\u043e \u0412\u044b \u043d\u0435 \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0438\u043a\u0430\u043a\u0438\u0435 \u0442\u0430\u0439\u043c\u0438\u043d\u0433\u0438, \u043d\u0438\u043a\u0430\u043a\u043e\u0439 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438 \u0438 \u0432\u043e\u043e\u0431\u0449\u0435 \u0412\u0430\u0448\u0430 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0430 \u0431\u0443\u0434\u0435\u0442 \u0436\u0438\u0442\u044c \u043a\u0430\u043a-\u0442\u043e \u0441\u0430\u043c\u0430 \u043f\u043e \u0441\u0435\u0431\u0435..  <\/p>\n<p>\u041d\u043e \u0442\u0443\u0442 \u043d\u0430\u043c \u043e\u043f\u044f\u0442\u044c \u043f\u043e\u0432\u0435\u0437\u043b\u043e! Artery Technology \u0432\u044b\u043a\u0430\u043b\u0438\u043b\u0438 \u0443\u0442\u0438\u043b\u0438\u0442\u0443 \u043a\u043e\u0434\u043e\u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u0434\u043b\u044f \u0441\u0438\u043d\u0442\u0435\u0437\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u0442\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u041d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0443\u0442\u0438\u043b\u0438\u0442\u0430  <strong>AT32_New_Clock_Configuration.exe<\/strong> \u0438 \u043b\u0435\u0436\u0438\u0442 \u0432 \u0430\u0440\u0445\u0438\u0432\u0435 <strong>AT32_New_Clock_Configuration_Win32-x86_64_V3.0.11.zip<\/strong> \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0435\u0439. \u0422\u0443\u0442 \u043c\u043e\u0436\u043d\u043e \u0432 GUI \u043f\u043e\u0434\u043e\u0431\u0440\u0430\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0438 \u0443\u0442\u0438\u043b\u0438\u0442\u0430 \u0441\u0430\u043c\u0430 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0434\u0438\u0442 \u0438 \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442 \u043e\u0448\u0438\u0431\u043a\u0438.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/8f3\/f78\/735\/8f3f7873523aed8a8ebea390518844d5.png\" width=\"1803\" height=\"1010\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/8f3\/f78\/735\/8f3f7873523aed8a8ebea390518844d5.png\"\/><\/figure>\n<p>\u042f \u0440\u0435\u0448\u0438\u043b \u043f\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0430 \u0447\u0430\u0441\u0442\u043e\u0442\u0435 100 MHz. \u0412\u043e\u0442 \u0442\u0430\u043a\u043e\u0439 \u043a\u043e\u0434 \u043c\u043d\u0435 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e\u0442 \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0443\u0442\u0438\u043b\u0438\u0442\u0430 \u0432 \u043f\u0440\u043e\u0435\u043a\u0442.<\/p>\n<pre><code class=\"cpp\">#include \"at32f435_437_clock.h\"   void system_clock_config(void){    crm_reset();   crm_periph_clock_enable(CRM_PWC_PERIPH_CLOCK, TRUE);   pwc_ldo_output_voltage_set(PWC_LDO_OUTPUT_1V0);    flash_clock_divider_set(FLASH_CLOCK_DIV_2);   crm_clock_source_enable(CRM_CLOCK_SOURCE_HEXT, TRUE);    while(crm_hext_stable_wait() == ERROR)  {   }    crm_pll_config(CRM_PLL_SOURCE_HEXT, 400, 4, CRM_PLL_FR_8);    crm_clock_source_enable(CRM_CLOCK_SOURCE_PLL, TRUE);    while(crm_flag_get(CRM_PLL_STABLE_FLAG) != SET)  {   }    crm_ahb_div_set(CRM_AHB_DIV_1);    crm_apb2_div_set(CRM_APB2_DIV_2);    crm_apb1_div_set(CRM_APB1_DIV_2);    crm_sysclk_switch(CRM_SCLK_PLL);    while(crm_sysclk_switch_status_get() != CRM_SCLK_PLL)  {   }    system_core_clock_update(); }  <\/code><\/pre>\n<p><strong>\u0410\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u044f FPU<\/strong><\/p>\n<p>\u0421\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e \u0432 \u0412\u0430\u0448\u0435\u0439 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0435 \u0431\u0443\u0434\u0435\u0442 \u043a\u0430\u043a\u043e\u0435-\u0442\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 \u0441 \u043f\u043b\u0430\u0432\u0430\u044e\u0449\u0435\u0439 \u0442\u043e\u0447\u043a\u043e\u0439. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0440\u0430\u0441\u0447\u0435\u0442 \u043f\u0440\u0435\u0434-\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044f \u0438 \u043f\u0435\u0440\u0438\u043e\u0434\u0430 \u0434\u043b\u044f \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u0442\u0430\u0439\u043c\u0435\u0440\u0430 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u0442\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u0435\u0434-\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0439 \u0448\u0438\u043d\u044b \u0438 \u0436\u0435\u043b\u0430\u0435\u043c\u043e\u0433\u043e \u043f\u0435\u0440\u0438\u043e\u0434\u0430 \u0432\u044b\u0437\u043e\u0432\u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439 \u043f\u043e \u043f\u0435\u0440\u0435\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044e \u0442\u0430\u0439\u043c\u0435\u0440\u0430. <\/p>\n<p>\u0415\u0441\u043b\u0438 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043f\u0440\u0435\u0434\u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c, \u0442\u043e \u043f\u0440\u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0435\u043d\u0438\u0438 \u0438\u0437 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0447\u0438\u0441\u043b\u0430 \u0442\u0438\u043f\u0430 double \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0430 \u0441\u0432\u0430\u043b\u0438\u0442\u0441\u044f \u0432 <strong>HardFault<\/strong>.  \u0412 \u0441\u0432\u044f\u0437\u0438 \u0441 \u044d\u0442\u0438\u043c, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0430 \u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u0430\u043b\u0430, \u043d\u0430\u0434\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u044e FPU. \u041a \u0441\u0447\u0430\u0441\u0442\u044c\u044e \u0432\u0435\u043d\u0434\u043e\u0440 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043a\u043e\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 \u0437\u0430 \u0432\u0430\u0441. \u041d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u044d\u0442\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f <strong>SystemInit<\/strong><\/p>\n<pre><code class=\"cpp\">\/*  *   setup the microcontroller system initialize the flash interface.  *   this function should be used only after reset.  *\/ void SystemInit (void) { #if defined (__FPU_USED) &amp;&amp; (__FPU_USED == 1U)   SCB->CPACR |= ((3U &lt;&lt; 10U * 2U) |         \/* set cp10 full access *\/                  (3U &lt;&lt; 11U * 2U)  );       \/* set cp11 full access *\/ #endif ..... .....  }<\/code><\/pre>\n<h4>\u041d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u0440\u0435\u0437\u044e\u043c\u0435 \u043f\u043e \u0444\u0430\u0439\u043b\u0430\u043c<\/h4>\n<p>\u0411\u0443\u043a\u0432\u0430\u043b\u044c\u043d\u043e \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u043b\u043e\u0432 \u043f\u0440\u043e \u0444\u0430\u0439\u043b\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0443\u0434\u0443\u0442 \u0432 \u043b\u044e\u0431\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0441 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u043c \u0441\u0435\u043c\u0435\u0439\u0441\u0442\u0432\u0430 at32f435: <\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"50\" width=\"50\">\n<p align=\"left\"><strong>#<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"201\" width=\"201\">\n<p align=\"left\"><strong>\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u0430<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>\u041d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"50\" width=\"50\">\n<p align=\"left\">0<\/p>\n<\/td>\n<td data-colwidth=\"201\" width=\"201\">\n<p align=\"left\">core_cm4.h<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043d\u044b\u043c \u044f\u0434\u0440\u043e\u043c ARM Cortex-M4<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"50\" width=\"50\">\n<p align=\"left\">1<\/p>\n<\/td>\n<td data-colwidth=\"201\" width=\"201\">\n<p align=\"left\">at32f435_437.h<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 MCAL \u0434\u043b\u044f \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"50\" width=\"50\">\n<p align=\"left\">2<\/p>\n<\/td>\n<td data-colwidth=\"201\" width=\"201\">\n<p align=\"left\">at32f435_437_conf.h<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 MCAL<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"50\" width=\"50\">\n<p align=\"left\">3<\/p>\n<\/td>\n<td data-colwidth=\"201\" width=\"201\">\n<p align=\"left\">startup_at32f435_437.S<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0410\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u043d\u044b\u0439 \u043a\u043e\u0434 \u0434\u043b\u044f \u0441\u0430\u043c\u043e\u0439 \u043f\u0435\u0440\u0432\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438: Reset_Handler<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"50\" width=\"50\">\n<p align=\"left\">4<\/p>\n<\/td>\n<td data-colwidth=\"201\" width=\"201\">\n<p align=\"left\">system_at32f435_437.c<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u0438 \u043a\u043e\u0434 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 SystemInit<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"50\" width=\"50\">\n<p align=\"left\">5<\/p>\n<\/td>\n<td data-colwidth=\"201\" width=\"201\">\n<p align=\"left\">system_at32f435_437.h<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f \u0444\u0443\u043d\u043a\u0446\u0438\u0438 SystemInit<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"50\" width=\"50\">\n<p align=\"left\">6<\/p>\n<\/td>\n<td data-colwidth=\"201\" width=\"201\">\n<p align=\"left\">AT32F435xM_FLASH.ld<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u0449\u0438\u043a\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"50\" width=\"50\">\n<p align=\"left\">7<\/p>\n<\/td>\n<td data-colwidth=\"201\" width=\"201\">\n<p align=\"left\">at32f435_437_int.c<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041a\u043e\u0440\u043d\u0435\u0432\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"50\" width=\"50\">\n<p align=\"left\">8<\/p>\n<\/td>\n<td data-colwidth=\"201\" width=\"201\">\n<p align=\"left\">at32f435_437_int.h<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u0447\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"50\" width=\"50\">\n<p align=\"left\">9<\/p>\n<\/td>\n<td data-colwidth=\"201\" width=\"201\">\n<p align=\"left\">Makefile<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 \u0444\u0430\u0439\u043b \u0441 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0435\u0439 \u043a\u0430\u043a \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440\u044b \u0432\u0441\u0435\u0445 \u044d\u0442\u0438\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u043a\u0440\u043e\u043c\u0435 Makefile \u0435\u0441\u0442\u044c \u0432 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u0445 \u043e\u0442 \u0432\u0435\u043d\u0434\u043e\u0440\u0430.<\/p>\n<h4>\u0424\u0430\u0437\u0430 6: \u0421\u0431\u043e\u0440\u043a\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0438\u0437 Makefile<\/h4>\n<p>\u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0421\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u043d\u0430\u0434\u043e \u043a\u0430\u043a-\u0442\u043e \u043e\u0431\u044a\u044f\u0441\u043d\u0438\u0442\u044c \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0443 gcc, \u0447\u0442\u043e \u043d\u0430\u0434\u043e \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0438 \u0438\u0437 \u043a\u0430\u043a\u0438\u0445 \u0444\u0430\u0439\u043b\u043e\u0432.  \u0415\u0441\u043b\u0438 \u0432\u044b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u043d\u0430 Eclipse c \u043f\u043b\u0430\u0433\u0438\u043d\u0430\u043c\u0438, \u0442\u043e \u0442\u0430\u043c \u0432\u044b \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u043b\u0438 xml, \u0430 \u043f\u043b\u0430\u0433\u0438\u043d\u044b \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u0438\u0437 xml make \u0444\u0430\u0439\u043b\u044b. \u0421\u043f\u043e\u0441\u043e\u0431 \u0441\u0431\u043e\u0440\u043a\u0438 \u0447\u0435\u0440\u0435\u0437 \u043f\u043b\u0430\u0433\u0438\u043d\u044b Eclipse  \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043f\u043e\u0442\u0435\u0440\u0435 \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u043d\u0430\u0434 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u043c.<\/p>\n<p>\u0411\u043e\u043b\u0435\u0435 \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u044d\u0442\u043e \u0432\u0441\u0451 \u0441\u0430\u043c\u043e\u043c\u0443 \u043f\u0438\u0441\u0430\u0442\u044c make \u0444\u0430\u0439\u043b\u044b. \u0412 \u044d\u0442\u043e\u043c \u043d\u0435\u0442 \u043d\u0438\u0447\u0435\u0433\u043e \u0441\u043b\u043e\u0436\u043d\u043e\u0433\u043e. \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0432 \u043f\u043e\u043b\u043d\u043e\u0439 \u0441\u0442\u0435\u043f\u0435\u043d\u0438 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0441\u0431\u043e\u0440\u043a\u0438 \u0438 \u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u043d\u0444\u0438\u0433\u0438. Makefile(\u043b\u044b) &#8212; \u044d\u0442\u043e \u043a\u0430\u043a \u043e\u0441\u0442\u0440\u043e\u0432 \u0434\u0435\u0440\u0435\u0432\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0434\u0435\u0440\u0436\u0438\u0442 \u043b\u0438\u0441\u0442\u044c\u044f.<\/p>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u044d\u043a\u0441\u043a\u0443\u0440\u0441 \u0432 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u044e make \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432 \u0441\u0431\u043e\u0440\u043a\u0438.<\/p>\n<p>\u042d\u0442\u043e \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 Makefile. \u0423 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0439.<\/p>\n<pre><code class=\"bash\">MK_PATH:=$(dir $(realpath $(lastword $(MAKEFILE_LIST)))) #@echo $(error MK_PATH=$(MK_PATH)) WORKSPACE_LOC:=$(MK_PATH)..\/..\/ INCDIR += -I$(MK_PATH) INCDIR += -I$(WORKSPACE_LOC)  TARGET=board_name_config_name_m  #@echo $(error SOURCES_C=$(SOURCES_C)) include $(MK_PATH)config.mk  ifeq ($(CLI),Y)     include $(MK_PATH)cli_config.mk endif  ifeq ($(DIAG),Y)     include $(MK_PATH)diag_config.mk endif  ifeq ($(UNIT_TEST),Y)     include $(MK_PATH)test_config.mk endif  include $(WORKSPACE_LOC)code_base.mk include $(WORKSPACE_LOC)rules.mk  <\/code><\/pre>\n<p>\u0423 \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0431\u043e\u0440\u043a\u0438 \u0435\u0441\u0442\u044c \u0441\u0432\u043e\u0439 \u043d\u0430\u0431\u043e\u0440 \u043a\u043e\u043d\u0444\u0438\u0433\u043e\u0432. \u041a\u043e\u043d\u0444\u0438\u0433\u0438 \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0432 \u0444\u0430\u0439\u043b\u0435 include $(MK_PATH)config.mk<\/p>\n<pre><code>ARRAY=Y ASICS=Y AT32=Y AT32F435ZM=Y AT32F435_437_FIRMWARE_LIBRARY_EN_V2_1_5=Y CMSIS=Y CORTEX_M4=Y CRC=Y DEBUG=Y GPIO=Y LED=Y LIMITER=Y LOG=Y MCAL_AT32=Y NORTOS=Y NVS=Y SUPER_CYCLE=Y SYSTICK=Y TASK=Y TERMINAL=Y UART=Y  <\/code><\/pre>\n<p>\u0412\u0441\u044f \u043a\u043e\u0434\u043e\u0432\u0430\u044f \u0431\u0430\u0437\u0430 \u0438\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0432 \u0444\u0430\u0439\u043b\u0435 code_base.mk<\/p>\n<pre><code class=\"bash\">ifneq ($(CODE_BASE_MK),Y)     CODE_BASE_MK=Y      include $(WORKSPACE_LOC)\/code_base_preconfig.mk     INCDIR += -I$(WORKSPACE_LOC)      ifeq ($(MICROCONTROLLER),Y)         FIRMWARE=Y         include $(WORKSPACE_LOC)\/mcu\/mcu.mk     endif      ifeq ($(BOARD),Y)         include $(WORKSPACE_LOC)\/boards\/boards.mk     endif      ifeq ($(PROTOTYPE),Y)         include $(WORKSPACE_LOC)\/prototypes\/prototypes.mk     endif      ifeq ($(THIRD_PARTY),Y)         include $(WORKSPACE_LOC)\/third_party\/third_party.mk     endif      ifeq ($(CORE),Y)         include $(WORKSPACE_LOC)\/core\/core.mk     endif      ifeq ($(APPLICATIONS),Y)         include $(WORKSPACE_LOC)\/applications\/applications.mk     endif      ifeq ($(AT32F435_437_FIRMWARE_LIBRARY_EN_V2_1_5),Y)         include $(WORKSPACE_LOC)\/AT32F435_437_Firmware_Library_EN_V2.1.5\/AT32F435_437_Firmware_Library_EN_V2_1_5.mk     endif      ifeq ($(MCAL),Y)         include $(WORKSPACE_LOC)\/mcal\/mcal.mk     endif      ifeq ($(CONNECTIVITY),Y)         include $(WORKSPACE_LOC)\/connectivity\/connectivity.mk     endif      ifeq ($(CONTROL),Y)         include $(WORKSPACE_LOC)\/control\/control.mk     endif          ifeq ($(COMPUTING),Y)         include $(WORKSPACE_LOC)\/computing\/computing.mk     endif      ifeq ($(SENSITIVITY),Y)         include $(WORKSPACE_LOC)\/sensitivity\/sensitivity.mk     endif      ifeq ($(STORAGE),Y)         include $(WORKSPACE_LOC)\/storage\/storage.mk     endif      ifeq ($(SECURITY),Y)         include $(WORKSPACE_LOC)\/security\/security.mk     endif      ifeq ($(ASICS),Y)         include $(WORKSPACE_LOC)\/asics\/asics.mk     endif      ifeq ($(UNIT_TEST),Y)           include $(WORKSPACE_LOC)\/unit_tests\/unit_test.mk     endif      SOURCES_C += $(WORKSPACE_LOC)main.c  endif<\/code><\/pre>\n<p>\u042f\u0437\u044b\u043a make \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0434\u0435\u043b\u0430\u0442\u044c \u0432\u0441\u0442\u0430\u0432\u043a\u0443 *.mk \u0444\u0430\u0439\u043b\u0430 \u0432 \u0434\u0440\u0443\u0433\u043e\u0439 \u0444\u0430\u0439\u043b *.mk \u043f\u0440\u044f\u043c\u044c \u043a\u0430\u043a \u043f\u0440\u0435\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 cpp.exe \u0434\u0435\u043b\u0430\u0435\u0442 \u0432\u0441\u0442\u0430\u0432\u043a\u0443 \u0444\u0430\u0439\u043b\u0430 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u043c \u0441\u043b\u043e\u0432\u043e\u043c #include.<\/p>\n<p>\u0414\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u043f\u0430\u043f\u043a\u0438 \u0441 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0430\u043c\u0438 \u043d\u0430\u0434\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c *.mk \u0444\u0430\u0439\u043b. \u0412\u043e\u0442, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, make \u0441\u043a\u0440\u0438\u043f\u0442 \u0434\u043b\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0433\u043e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 GPIO source\\mcal\\mcal_at32f4\\gpio\\<a href=\"http:\/\/gpio.mk\" rel=\"noopener noreferrer nofollow\">gpio.mk<\/a><\/p>\n<pre><code class=\"bash\">$(info GPIO_DRV_MK_INC=$(GPIO_DRV_MK_INC)) ifneq ($(GPIO_DRV_MK_INC),Y)     GPIO_DRV_MK_INC=Y      GPIO_DIR = $(MCAL_AT32F4_DIR)\/gpio     #@echo $(error GPIO_DIR=$(GPIO_DIR))     OPT += -DHAS_GPIO     OPT += -DHAS_GPIO_CUSTOM      INCDIR += -I$(GPIO_DIR)      SOURCES_C += $(GPIO_DIR)\/gpio_drv.c     SOURCES_C += $(GPIO_DIR)\/gpio_isr.c      ifeq ($(CLI),Y)         ifeq ($(GPIO_COMMANDS),Y)             OPT += -DHAS_GPIO_COMMANDS             SOURCES_C += $(GPIO_DIR)\/gpio_custom_commands.c         endif     endif      ifeq ($(DIAG),Y)         ifeq ($(GPIO_DIAG),Y)             OPT += -DHAS_GPIO_DIAG             #@echo $(error GPIO_DIAG=$(GPIO_DIAG))             SOURCES_C += $(GPIO_DIR)\/gpio_custom_diag.c         endif     endif endif<\/code><\/pre>\n<p>\u041e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u043f\u043e \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0438. \u0410 \u0441\u0435\u0439\u0447\u0430\u0441 \u043e\u0447\u0435\u043d\u044c \u0432\u0430\u0436\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442. \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u0432 \u044f\u0437\u044b\u043a\u0435 make \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432 \u0441\u0442\u0440\u043e\u0447\u043d\u044b\u0435 \u0438\u043b\u0438 \u0437\u0430\u0433\u043b\u0430\u0432\u043d\u044b\u0435 \u0431\u0443\u043a\u0432\u044b \u0432 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f\u0445 *.mk \u0444\u0430\u0439\u043b\u043e\u0432 \u043d\u0435 \u0438\u043c\u0435\u044e\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f. \u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e <a href=\"http:\/\/UART.mk\" rel=\"noopener noreferrer nofollow\"><strong>UART.mk<\/strong><\/a> \u0438 <a href=\"http:\/\/uart.mk\" rel=\"noopener noreferrer nofollow\"><strong>uart.mk<\/strong><\/a> \u0431\u0443\u0434\u0443\u0442 \u0432\u043e\u0441\u043f\u0440\u0438\u043d\u044f\u0442\u044b \u043a\u0430\u043a \u043e\u0434\u0438\u043d \u0438 \u0442\u043e\u0442 \u0436\u0435 \u0444\u0430\u0439\u043b! \u0412 \u0441\u0432\u044f\u0437\u0438 \u0441 \u044d\u0442\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0438\u043c\u0435\u043d\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0435 *.mk \u0444\u0430\u0439\u043b\u044b \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u043c \u0438\u043c\u0435\u043d\u0435\u043c. \u042d\u0442\u043e \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0432\u0430\u0436\u043d\u043e, \u0435\u0441\u043b\u0438 \u0412\u044b \u0432\u0434\u0440\u0443\u0433 \u0440\u0435\u0448\u0438\u0442\u0435 \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0432\u0441\u0435 *.mk \u0444\u0430\u0439\u043b\u044b \u0432 \u043e\u0434\u043d\u043e\u0439 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0439 \u043f\u0430\u043f\u043a\u0435 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f.<\/p>\n<p>\u0421\u0430\u043c\u043e\u0435 \u0433\u043b\u0430\u0432\u043d\u043e\u0435 \u0432 make &#8212; \u044d\u0442\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0441\u0431\u043e\u0440\u043a\u0438. \u041e\u0431\u044b\u0447\u043d\u043e \u0438\u0445 \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u044e\u0442 \u0432 \u0444\u0430\u0439\u043b\u0435 <strong>rules.mk<\/strong><\/p>\n<pre><code class=\"bash\">mkfile_path := $(abspath $(lastword $(MAKEFILE_LIST))) $(info Build  $(mkfile_path) )  BUILD_DIR=build  EXTRA_TARGETS=   INCDIR := $(subst \/cygdrive\/c\/,C:\/, $(INCDIR))  SOURCES_C += $(SOURCES_THIRD_PARTY_C) SOURCES_C := $(subst \/cygdrive\/c\/,C:\/, $(SOURCES_C)) #@echo $(error SOURCES_C=$(SOURCES_C))  SOURCES_ASM := $(subst \/cygdrive\/c\/,C:\/, $(SOURCES_ASM)) #@echo $(error SOURCES_ASM=$(SOURCES_ASM))  LIBS  := $(subst \/cygdrive\/c\/,C:\/, $(LIBS)) LDSCRIPT := $(subst \/cygdrive\/c\/,C:\/, $(LDSCRIPT)) #@echo $(error SOURCES_ASM=$(SOURCES_ASM))  include $(WORKSPACE_LOC)\/toolchain.mk  WORKSPACE_LOC := $(subst \/cygdrive\/c\/,C:\/, $(WORKSPACE_LOC))   FLOAT-ABI = -mfloat-abi=hard  MCU = $(CPU) -mthumb $(FPU) $(FLOAT-ABI) CSTANDARD = -std=gnu99 AS_DEFS =   AS_INCLUDES =   ifeq ($(DEBUG), Y)     CFLAGS += -g3 -ggdb -gdwarf-2     OPT += -O0 else     OPT += -Os endif  OPT += -fmessage-length=0 OPT += -fsigned-char OPT += -fno-common OPT += -fstack-usage OPT += -fzero-initialized-in-bss OPT += -finline-small-functions OPT += -Werror=switch OPT += -Werror=implicit-function-declaration OPT += -Werror=unused-but-set-variable OPT += -Werror=unused-variable OPT += -Werror=unused-function OPT += -Werror=incompatible-pointer-types OPT += -Werror=return-type OPT += -Werror=enum-compare OPT += -Werror=shift-count-overflow OPT += -Wno-format-truncation OPT += -Wno-restrict OPT += -Wno-format #Perform dead code elimination OPT += -fdce #Perform dead store elimination OPT += -fdse  # compile gcc flags ASFLAGS = $(MCU) $(AS_DEFS) $(AS_INCLUDES) $(OPT) -Wall -fdata-sections -ffunction-sections  CFLAGS += $(CSTANDARD) CFLAGS += -Wall #CFLAGS += -Wformat-overflow=1 CFLAGS += $(MCU) $(OPT) -fdata-sections -ffunction-sections $(INCDIR)  # Generate dependency information CFLAGS += -MMD -MP -MF\"$(@:%.o=%.d)\" CPP_FLAGS += $(CSTANDARD) $(INCDIR)  $(OPT) # LDFLAGS  # libraries LINKER_FLAGS += -Xlinker --gc-sections  ifeq ($(MBR), Y)     LIBS += -lnosys     LDFLAGS += -specs=nano.specs else     LINKER_FLAGS += -u _scanf_float     LINKER_FLAGS += -u _printf_float endif  ifeq ($(LIBC), Y)     LIBS += -lc endif  ifeq ($(MATH_LIB), Y)     LIBS += -lm endif  LIBDIR =   LDFLAGS += $(MCU) -T$(LDSCRIPT) $(LIBDIR) $(LIBS) -Wl,-Map=$(BUILD_DIR)\/$(TARGET).map,--cref -Wl,--gc-sections $(LINKER_FLAGS)  ARTIFACTS += $(BUILD_DIR)\/$(TARGET).bin ARTIFACTS += $(BUILD_DIR)\/$(TARGET).hex ARTIFACTS += $(BUILD_DIR)\/$(TARGET).elf  # default action: build all  all: $(EXTRA_TARGETS) $(ARTIFACTS)  generate_definitions: cpp $(CPP_FLAGS) $(WORKSPACE_LOC)empty_sourse.c -dM -E> c_defines_generated.h  # build the application # list of objects OBJECTS = $(addprefix $(BUILD_DIR)\/,$(notdir $(SOURCES_C:.c=.o))) vpath %.c $(sort $(dir $(SOURCES_C))) # list of ASM program objects OBJECTS += $(addprefix $(BUILD_DIR)\/,$(notdir $(SOURCES_ASM:.S=.o))) vpath %.S $(sort $(dir $(SOURCES_ASM)))  $(BUILD_DIR)\/%.o: %.c Makefile | $(BUILD_DIR)  $(CC) -c $(CFLAGS) -Wa,-a,-ad,-alms=$(BUILD_DIR)\/$(notdir $(&lt;:.c=.lst)) $&lt; -o $@  $(BUILD_DIR)\/%.o: %.S Makefile | $(BUILD_DIR) $(AS) -c $(CFLAGS) $&lt; -o $@  $(BUILD_DIR)\/$(TARGET).elf: $(OBJECTS) Makefile $(CC) $(OBJECTS) $(LDFLAGS) -o $@ $(SZ) $@  $(BUILD_DIR)\/%.hex: $(BUILD_DIR)\/%.elf | $(BUILD_DIR) $(HEX) $&lt; $@  $(BUILD_DIR)\/%.bin: $(BUILD_DIR)\/%.elf | $(BUILD_DIR) $(BIN) $&lt; $@  $(BUILD_DIR): mkdir -p $@  clean: -rm -fR $(BUILD_DIR)  -include $(wildcard $(BUILD_DIR)\/*.d)  # *** EOF ***<\/code><\/pre>\n<p>\u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0441\u043e\u0440\u0446\u044b \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u043f\u0430\u043f\u043a\u0443, \u0433\u0434\u0435 \u043b\u0435\u0436\u0438\u0442 \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 \u0434\u043b\u044f \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 Makefile \u0438 \u0438\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0432\u043e\u0442 \u0441\u043a\u0440\u0438\u043f\u0442 (<strong>build_from_make.bat<\/strong>) <\/p>\n<pre><code class=\"bash\">echo off cls make clean 2>&amp;1 | tee clean_log.txt make -j8 | tee build_log.txt<\/code><\/pre>\n<p>\u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0432 \u043f\u0430\u043f\u043a\u0435 build \u0431\u0443\u0434\u0443\u0442 \u043b\u0435\u0436\u0430\u0442\u044c \u043f\u043e\u043b\u043d\u044b\u0439 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u043e\u0432 (*.bin, *.hex, *.map, *.elf \u0438 \u043f\u0440\u043e\u0447\u0435\u0435) \u0434\u043b\u044f \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0431\u043e\u0440\u043a\u0438.<\/p>\n<p>\u041f\u0440\u0438 \u0441\u0431\u043e\u0440\u043a\u0435 \u0438\u0437 Make *.c \u0444\u0430\u0439\u043b \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0442 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043e\u043d \u043b\u0435\u0436\u0438\u0442 \u0432 \u043f\u0430\u043f\u043a\u0435. \u0427\u0442\u043e\u0431\u044b *.c \u0444\u0430\u0439\u043b \u0443\u0447\u0430\u0441\u0442\u0432\u043e\u0432\u0430\u043b \u0432 \u0441\u0431\u043e\u0440\u043a\u0435 \u0435\u0433\u043e \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c (\u043f\u0440\u043e\u0438\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c) \u0432 \u0441\u043a\u0440\u0438\u043f\u0442\u0430\u0445 Make.<\/p>\n<h4>\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u0430\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0441\u043e\u0444\u0442\u0430<\/h4>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"50\" width=\"50\">\n<p align=\"left\"><strong>\u2116<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"483\" width=\"483\">\n<p align=\"left\"><strong>\u0410\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u044b\u0439 \u043f\u0443\u0442\u044c<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>\u041d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"50\" width=\"50\">\n<p align=\"left\">1<\/p>\n<\/td>\n<td data-colwidth=\"483\" width=\"483\">\n<p align=\"left\">C:\\eclipse<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0422\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0439 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"50\" width=\"50\">\n<p align=\"left\">2<\/p>\n<\/td>\n<td data-colwidth=\"483\" width=\"483\">\n<p align=\"left\">C:\\Program Files (x86)\\GNU Arm Embedded Toolchain\\10 2021.10<\/p>\n<\/td>\n<td>\n<p align=\"left\">Toolchain<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"50\" width=\"50\">\n<p align=\"left\">3<\/p>\n<\/td>\n<td data-colwidth=\"483\" width=\"483\">\n<p align=\"left\">C:\\xpack-windows-build-tools-4.3.0-1<\/p>\n<\/td>\n<td>\n<p align=\"left\">build-tools<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"50\" width=\"50\">\n<p align=\"left\">5<\/p>\n<\/td>\n<td data-colwidth=\"483\" width=\"483\">\n<p align=\"left\">C:\\\u0421odeBaseWorkspace\\CodeBase\\src\\AT32F435_437_Firmware_Library_EN_V2.1.5<\/p>\n<\/td>\n<td>\n<p align=\"left\">MCAL \u043e\u0442 \u0432\u0435\u043d\u0434\u043e\u0440\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"50\" width=\"50\">\n<p align=\"left\">6<\/p>\n<\/td>\n<td data-colwidth=\"483\" width=\"483\">\n<p align=\"left\">C:\\OpenOCD\\bin<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u044b\u0439 \u0421\u0435\u0440\u0432\u0435\u0440<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"50\" width=\"50\">\n<p align=\"left\">7<\/p>\n<\/td>\n<td data-colwidth=\"483\" width=\"483\">\n<p align=\"left\">C:\\Artery_ATLINK_Console_Win32-x86_64_V3.0.08\\ATLink_Console.exe<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0417\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 \u0432 \u0447\u0438\u043f<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>\u0424\u0430\u0437\u0430 7:  \u0417\u0430\u043f\u0438\u0441\u044c \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 \u043f\u043e SWD<\/h3>\n<p>\u0414\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u043f\u0435\u0440\u0435\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0432\u0430\u0448\u0443 \u043f\u0435\u0440\u0432\u0443\u044e \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0443 \u0438\u0437 \u0436\u0435\u0441\u0442\u043a\u043e\u0433\u043e \u0434\u0438\u0441\u043a\u0430 \u0432 \u043f\u0430\u043c\u044f\u0442\u044c \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 \u0432\u0430\u043c \u043d\u0443\u0436\u0435\u043d \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430\u0442\u043e\u0440. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 AT-Link+<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/c0e\/2e1\/53d\/c0e2e153d9e43742cd115f4616706c6c.png\" alt=\"AT-Link+\" title=\"AT-Link+\" width=\"1012\" height=\"400\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c0e\/2e1\/53d\/c0e2e153d9e43742cd115f4616706c6c.png\"\/><\/p>\n<div><figcaption>AT-Link+<\/figcaption><\/div>\n<\/figure>\n<p>\u042d\u0442\u043e \u0432 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043d\u0438\u043a \u0441 USB \u043d\u0430 SWD. \u0412\u043d\u0443\u0442\u0440\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430\u0442\u043e\u0440\u0430 AT-Link+ \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0442\u0430\u043a\u0436\u0435 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043d\u0438\u043a \u0441 USB \u043d\u0430 UART. \u0422\u0430\u043a\u0436\u0435 \u0435\u0441\u0442\u044c \u043a\u043d\u043e\u043f\u043a\u0430, LED\u044b, \u0437\u0432\u0443\u043a\u043e-\u0438\u0437\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u044c.<\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0443 \u043d\u0443\u0436\u043d\u0430 \u0443\u0442\u0438\u043b\u0438\u0442\u0430  <strong>ATLink_Console.exe<\/strong>. \u0415\u0451 \u0442\u043e\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u0441 \u0441\u0430\u0439\u0442\u0430 Artery. <\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/7de\/0f5\/01d\/7de0f501dd254d6d35e192729ff60c73.png\" width=\"1145\" height=\"165\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/7de\/0f5\/01d\/7de0f501dd254d6d35e192729ff60c73.png\"\/><\/figure>\n<p>\u0412\u043e\u0442 \u0441\u043a\u0440\u0438\u043f\u0442 flash.bat \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u043f\u0435\u0440\u0435 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438.<\/p>\n<pre><code class=\"bash\">echo off cls  call SetUpEnvVars.bat  set project_name=board_name_config_name_gcc_m set project_dir=%cd% echo project_dir=%project_dir%  set artefact_bin=%project_dir%\\build\\%project_name%.bin echo artefact_bin=%artefact_bin%  set flash_tool=ATLink_Console.exe set options=-device AT32F435ZMT7 -connect -p --dfap --depp -d --a 08000000 --fn %artefact_bin% --v  -r %flash_tool% %options% pause <\/code><\/pre>\n<p>\u0427\u0442\u043e\u0431\u044b Windows \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0442\u043e\u0440 cmd \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b \u0443\u0442\u0438\u043b\u0438\u0442\u0443 <strong>ATLink_Console.exe<\/strong> \u043d\u0430\u0434\u043e \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0435\u0451 \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e PATH. \u0421\u043a\u0440\u0438\u043f\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f <strong>SetUpEnvVars.bat<\/strong> \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0442\u0430\u043a\u0438\u043c <\/p>\n<pre><code class=\"bash\">echo off  set PATH=C:\\Artery_ATLINK_Console_Win32-x86_64_V3.0.08;%PATH% echo %PATH%<\/code><\/pre>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0441\u043a\u0440\u0438\u043f\u0442\u0430 <strong>flash.bat<\/strong> \u0432\u044b\u0441\u044b\u043f\u043b\u0435\u0442\u0441\u044f \u0432\u043e\u0442 \u0442\u0430\u043a\u043e\u0439 \u043b\u043e\u0433 \u043e\u0442\u0447\u0435\u0442\u0430 \u043e\u0431 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0439 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 \u0432 on-chip \u043f\u0430\u043c\u044f\u0442\u044c \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 <strong>AT32F435ZMT7<\/strong>. <\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/ec3\/d41\/6b8\/ec3d416b862b297e9fe4633229c60bbb.png\" width=\"865\" height=\"787\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ec3\/d41\/6b8\/ec3d416b862b297e9fe4633229c60bbb.png\"\/><\/figure>\n<p>\u041e\u0434\u043d\u0430\u043a\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 \u0432\u0430\u043c \u0431\u0443\u0434\u0435\u0442 \u043d\u0435 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e. \u0412 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043c\u043e\u043c\u0435\u043d\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0430 \u0437\u0430\u0432\u0438\u0441\u043d\u0435\u0442. \u041f\u0435\u0440\u0435\u0441\u0442\u0430\u043d\u0435\u0442 \u043c\u0438\u0433\u0430\u0442\u044c heart-beat LED. \u0427\u0442\u043e\u0431\u044b \u043f\u043e\u043d\u044f\u0442\u044c \u043f\u0440\u0438\u0447\u0438\u043d\u0443 \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u043f\u043e\u0448\u0430\u0433\u043e\u0432\u0443\u044e \u043e\u0442\u043b\u0430\u0434\u043a\u0443. \u0410 \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0443\u0436\u0435\u043d \u0442\u0430\u043d\u0434\u0435\u043c: \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0435\u0440 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 OpenOCD)+ \u043a\u043b\u0438\u0435\u043d\u0442 \u043e\u0442\u043b\u0430\u0434\u043a\u0438 (GDB).<\/p>\n<h3>\u0424\u0430\u0437\u0430 8: \u0417\u0430\u043f\u0443\u0441\u043a \u041e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u043e\u0433\u043e \u0421\u0435\u0440\u0432\u0435\u0440\u0430 OpenOCD<\/h3>\n<p>\u0427\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0443\u0442\u0438\u043b\u0438\u0442\u0443 OpenOCD \u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0438 \u0434\u043b\u044f \u0440\u0430\u0437\u043d\u044b\u0445 \u043c\u0438\u043a\u0440\u043e\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043e\u0432 (at32f435xM.cfg) \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u0434 MCU Artery \u0412\u0430\u043c \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c AT32_IDE \u0434\u043b\u044f Windows. \u0412\u0430\u043c \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0435\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f. \u041f\u0440\u043e\u0441\u0442\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c, \u0447\u0442\u043e\u0431\u044b \u0438\u0437\u0432\u043b\u0435\u0447\u044c \u043f\u0430\u043f\u043a\u0443 C:\\AT32IDE\\OpenOCD. AT32_IDE \u043f\u043e\u0441\u043b\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0441\u0442\u0430\u0432\u0438\u0442 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440, Eclipse, \u043f\u043b\u0430\u0433\u0438\u043d\u044b, \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0435\u0440,  HAL \u0438 Build Tools. <\/p>\n<p>\u0414\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b OpenOCP \u043d\u0430\u0434\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u0431\u044b\u043b\u0438 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b \u043f\u043e\u0440\u0442\u044b \u0441 \u043d\u043e\u043c\u0435\u0440\u0430\u043c\u0438: 6666, 4444 \u0438 3333<\/p>\n<p>Info : Listening on port 6666 for tcl connections<br \/>Info : Listening on port 4444 for telnet connections<br \/>Info : Listening on port 3333 for gdb connections<\/p>\n<p>\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043f\u043e\u0440\u0442\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u0432 cmd \u043a\u043e\u043d\u0441\u043e\u043b\u0438 \u0443\u0442\u0438\u043b\u0438\u0442\u043e\u0439<br \/><strong>netstat -aon<\/strong><\/p>\n<p>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 PID \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0438 \u0438\u043c\u0435\u043d\u0435\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043c\u043e\u0436\u043d\u043e \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439<br \/><strong>tasklist<\/strong><\/p>\n<p>\u0421\u043b\u0435\u0434\u0443\u0435\u0442 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0437\u0430\u043d\u044f\u043b\u0438 \u043d\u0443\u0436\u043d\u044b\u0435 \u043f\u043e\u0440\u0442\u044b. \u042d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0441\u0442\u0438 \u0432 \u0434\u0438\u0441\u043f\u0435\u0442\u0447\u0435\u0440\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0437\u043d\u0430\u044f \u0438\u043c\u044f \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430.<\/p>\n<p>\u041d\u0430\u0434\u043e \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c .bat \u0444\u0430\u0439\u043b \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430 OpenOCD.<\/p>\n<pre><code class=\"bash\">echo off cls set openocd_path=C:\\OpenOCD_Artery set GDBServerPath=%openocd_path%\\bin\\openocd.exe set options=-s %openocd_path%\\scripts              -f %openocd_path%\\scripts\\interface\\atlink.cfg              -f %openocd_path%\\scripts\\target\\at32f435xM.cfg call %GDBServerPath% %options% <\/code><\/pre>\n<p>\u041e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0435\u0440 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432\u043d\u0435\u0448\u043d\u0435\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u043d\u0430 \u0448\u0438\u043d\u0435 SWD (\u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440) \u043a\u0430\u043a \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0432 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 Windows.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/d72\/a8a\/a84\/d72a8aa84fb6146ac50689190a41b4fe.png\" width=\"1008\" height=\"877\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d72\/a8a\/a84\/d72a8aa84fb6146ac50689190a41b4fe.png\"\/><\/figure>\n<p>\u041a\u043e\u0433\u0434\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0435\u0440, \u0442\u043e \u043d\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430\u0442\u043e\u0440\u0435 \u0441\u0432\u0435\u0442\u0438\u0442\u0441\u044f LED1. <\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/020\/216\/d67\/020216d67ff90aaf3ebc7d4af92094ff.png\" width=\"648\" height=\"372\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/020\/216\/d67\/020216d67ff90aaf3ebc7d4af92094ff.png\"\/><\/figure>\n<h3>\u0424\u0430\u0437\u0430 9: \u0417\u0430\u043f\u0443\u0441\u043a \u041e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u043e\u0433\u043e \u041a\u043b\u0438\u0435\u043d\u0442\u0430<\/h3>\n<p>\u0427\u0442\u043e\u0431\u044b \u0431\u044b\u043b\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0434\u0435\u043b\u0430\u0442\u044c \u043f\u043e\u0448\u0430\u0433\u043e\u0432\u0443\u044e \u043e\u0442\u043b\u0430\u0434\u043a\u0443 \u043d\u0430\u0434\u043e \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0430 \u0431\u044b\u043b\u0430 \u0441\u043e\u0431\u0440\u0430\u043d\u0430 \u0441 \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u044b\u043c\u0438 \u0441\u0438\u043c\u0432\u043e\u043b\u0430\u043c\u0438. \u042d\u0442\u043e \u043e\u043f\u0446\u0438\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 <strong>-g3 -ggdb -gdwarf-2  -O0<\/strong><\/p>\n<p>\u041e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u044b\u0439 \u043a\u043b\u0438\u0435\u043d\u0442 \u044d\u0442\u043e \u043a\u043e\u043d\u0441\u043e\u043b\u044c\u043d\u0430\u044f \u0443\u0442\u0438\u043b\u0438\u0442\u0430 <strong>arm-none-eabi-gdb.exe<\/strong><\/p>\n<p>C:\\Program Files (x86)\\GNU Arm Embedded Toolchain\\10 2021.10\\bin\\arm-none-eabi-gdb.exe<\/p>\n<p>\u0418\u043c\u0435\u043d\u043d\u043e \u043e\u043d\u0430 \u0438 \u0434\u0435\u043b\u0430\u0435\u0442 \u043f\u043e\u0448\u0430\u0433\u043e\u0432\u0443\u044e \u043e\u0442\u043b\u0430\u0434\u043a\u0443. \u042d\u0442\u0430 \u0443\u0442\u0438\u043b\u0438\u0442\u0430 \u0441\u0432\u044f\u0437\u0430\u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432 \u0442\u0430\u043d\u0434\u0435\u043c\u0435 \u0441 \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u044b\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c <strong>openocd.exe<\/strong>. \u0414\u0430\u043d\u043d\u044b\u043c\u0438 \u043e\u043d\u0438 \u043e\u0431\u043c\u0435\u043d\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u0441\u043e\u043a\u0435\u0442 \u0441 \u043d\u043e\u043c\u0435\u0440\u043e\u043c \u043f\u043e\u0440\u0442\u0430 \u0440\u0430\u0432\u043d\u044b\u043c 3333. <\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043f\u043e\u0448\u0430\u0433\u043e\u0432\u0443\u044e \u043e\u0442\u043b\u0430\u0434\u043a\u0443 \u043d\u0430\u0434\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u043e\u043a\u043d\u043e Debug Configuration. \u0429\u0435\u043b\u043a\u043d\u0443\u0442\u044c \u043d\u0430 GDB OpenOCD Debugging. \u041a\u043d\u043e\u043f\u043a\u043e\u0439 Search Project \u043d\u0430\u0439\u0442\u0438 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u0443\u0442\u044c \u043a elf \u0444\u0430\u0439\u043b\u0443<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/063\/bc4\/d96\/063bc4d96bead341cc161202c0ff39c5.png\" width=\"938\" height=\"636\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/063\/bc4\/d96\/063bc4d96bead341cc161202c0ff39c5.png\"\/><\/figure>\n<p>\u041d\u0430 \u0432\u043a\u043b\u0430\u0434\u043a\u0435 Debugger \u043f\u0440\u043e\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u0443\u0442\u044c \u043a \u0443\u0442\u0438\u043b\u0438\u0442\u0435 \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u043e\u043c\u0443 \u043a\u043b\u0438\u0435\u043d\u0442\u0443: C:\\Program Files (x86)\\GNU Arm Embedded Toolchain\\10 2021.10\\bin\\arm-none-eabi-gdb.exe. \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u0447\u0442\u043e \u044f \u043d\u0435 \u0441\u0442\u0430\u0432\u043b\u044e \u043e\u043f\u0446\u0438\u044e Start OpenOCD locally. \u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e  OpenOCD  \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u043c *.bat \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u043c. \u0412\u0430\u0436\u043d\u043e \u0447\u0442\u043e\u0431\u044b \u0431\u044b\u043b \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u043d \u043f\u043e\u0440\u0442: 3333<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/187\/72a\/272\/18772a272a82533c568d73b22f9a7bb6.png\" width=\"1776\" height=\"582\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/187\/72a\/272\/18772a272a82533c568d73b22f9a7bb6.png\"\/><\/figure>\n<p>\u041d\u0430 \u0432\u043a\u043b\u0430\u0434\u043a\u0435 Startup \u0432\u0441\u0451 \u0431\u0435\u0437 \u0438\u043c\u0437\u0435\u043d\u0435\u043d\u0438\u0439<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/3a7\/4fc\/2af\/3a74fc2afc7e4083e89ee853b66066cb.png\" width=\"1778\" height=\"586\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/3a7\/4fc\/2af\/3a74fc2afc7e4083e89ee853b66066cb.png\"\/><\/figure>\n<p>\u041d\u0430 \u0432\u043a\u043b\u0430\u0434\u043a\u0435 Common \u0441\u0442\u0430\u0432\u0438\u043c \u0433\u0430\u043b\u043e\u0447\u043a\u0438 \u043a\u0430\u043a \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u043d\u0430 \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u0435<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/546\/42a\/d72\/54642ad7220b371ab59e25f360b50aba.png\" width=\"1630\" height=\"592\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/546\/42a\/d72\/54642ad7220b371ab59e25f360b50aba.png\"\/><\/figure>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0435\u0440 \u0438 \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u043b\u0435 \u043d\u0435\u0433\u043e \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u044b\u0439 \u043a\u043b\u0438\u0435\u043d\u0442. \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0443 \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u043b\u0430\u0436\u0438\u0432\u0430\u0442\u044c \u043f\u043e \u0448\u0430\u0433\u0430\u043c. \u041c\u043e\u0436\u043d\u043e \u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0442\u043e\u0447\u043a\u0438 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0430, \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u043d\u0438\u043a\u0430\u0442\u044c \u0432\u043d\u0443\u0442\u0440\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u0439, \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/859\/024\/0ee\/8590240ee924c265d9b73352b456265d.png\" width=\"1823\" height=\"711\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/859\/024\/0ee\/8590240ee924c265d9b73352b456265d.png\"\/><\/figure>\n<p>\u0412 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 \u0441 GDB \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u043f\u0440\u0438\u0447\u0438\u043d\u0443 \u043b\u044e\u0431\u043e\u0433\u043e \u0437\u0430\u0432\u0438\u0441\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438.  \u0415\u0441\u043b\u0438 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0430 \u0437\u0430\u0432\u0438\u0441\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0438\u0442 \u043d\u0430\u0434\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c GDB \u043e\u0442\u043b\u0430\u0434\u043a\u0443.<\/p>\n<p>\u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u0412\u0430\u043c \u0434\u0430\u0436\u0435 \u043d\u0435 \u043d\u0443\u0436\u0435\u043d Eclipse \u0434\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0442\u044c \u043f\u043e\u0448\u0430\u0433\u043e\u0432\u0443\u044e \u043e\u0442\u043b\u0430\u0434\u043a\u0443. \u0415\u0451 \u043c\u043e\u0436\u043d\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0440\u044f\u043c\u043e \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u0438. \u041f\u0440\u043e \u044d\u0442\u043e \u0443 \u043c\u0435\u043d\u044f \u0435\u0441\u0442\u044c <a href=\"https:\/\/habr.com\/ru\/articles\/694708\/\" rel=\"noopener noreferrer nofollow\"><u>\u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442<\/u><\/a>.<\/p>\n<h4>\u0421\u0445\u0435\u043c\u0430 ToolChain(\u0430)<\/h4>\n<p>\u0412\u0441\u0451, \u0447\u0442\u043e \u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u0432\u044b\u0448\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432\u043e\u0442 \u044d\u0442\u043e\u0439 \u0441\u0445\u0435\u043c\u043e\u0439 \u043d\u0430 \u043e\u0434\u043d\u043e\u043c \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0435. \u042d\u0442\u043e \u0432\u0435\u0441\u044c \u043f\u0443\u0442\u044c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u043e\u0445\u043e\u0434\u044f\u0442 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438 \u0441 \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0434\u043e \u043f\u043e\u043f\u0430\u0434\u0430\u043d\u0438\u044f \u0432\u043e Flash \u043f\u0430\u043c\u044f\u0442\u044c \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/77e\/da7\/4a8\/77eda74a86aa41f8fd18bf3b70866de5.jpg\" width=\"5271\" height=\"6013\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/77e\/da7\/4a8\/77eda74a86aa41f8fd18bf3b70866de5.jpg\" data-blurred=\"true\"\/><\/figure>\n<h3>\u0424\u0430\u0437\u0430 10: \u041e\u0442\u043b\u0430\u0434\u043a\u0430 \u041f\u0440\u043e\u0448\u0438\u0432\u043a\u0438<\/h3>\n<p>\u0420\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0432\u0441\u043b\u0435\u043f\u0443\u044e, \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u044f \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 \u0438 \u0441\u0438\u0434\u0435\u0442\u044c \u0441\u043e \u0441\u043a\u0440\u0435\u0449\u0435\u043d\u043d\u044b\u043c\u0438 \u043f\u0430\u043b\u044c\u0446\u0430\u043c\u0438 &#8212;  \u044d\u0442\u043e \u043d\u0435 \u043d\u0430\u0448 \u043c\u0435\u0442\u043e\u0434. \u041d\u0430\u0434\u043e \u043a\u0430\u043a-\u0442\u043e \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0442\u044c \u0437\u0430 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435\u043c \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438. \u041e\u0434\u043d\u043e\u0433\u043e \u043c\u0438\u0433\u0430\u044e\u0449\u0435\u0433\u043e LED\u0430, \u0440\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f, \u043d\u0435 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e. \u041d\u0430\u0434\u043e \u0441\u043f\u043e\u0441\u043e\u0431 \u043e\u0431\u0449\u0430\u0442\u044c\u0441\u044f \u0441 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u043e\u0439 \u043f\u043e\u0434\u043e\u0431\u043d\u043e \u0442\u043e\u043c\u0443 \u043a\u0430\u043a \u043c\u044b \u043f\u0440\u0438\u0432\u044b\u043a\u043b\u0438 \u0432 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0445 messenger(\u0430\u0445)  \u043e\u0431\u0449\u0430\u0442\u044c\u0441\u044f \u0441\u043e \u0441\u0432\u043e\u0438\u043c\u0438 \u043f\u0440\u0438\u044f\u0442\u0435\u043b\u044f\u043c\u0438.<\/p>\n<p>\u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u0440\u043e\u0448\u0438\u0432\u043e\u043a \u043d\u0443\u0436\u0435\u043d \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u043f\u043e\u0432\u0435\u0440\u0445 UART. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043f\u0440\u043e \u044d\u0442\u043e \u0443 \u043c\u0435\u043d\u044f \u0435\u0441\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 <a href=\"https:\/\/habr.com\/ru\/articles\/694408\/\" rel=\"noopener noreferrer nofollow\">https:\/\/habr.com\/ru\/articles\/694408\/<\/a>. CLI \u043d\u0443\u0436\u0435\u043d \u0445\u043e\u0442\u044f \u0431\u044b \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 \u0431\u0435\u0437 \u043e\u0448\u0438\u0431\u043e\u043a.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/323\/cf5\/885\/323cf58850eaa71784feed9a56284e2d.png\" width=\"1105\" height=\"465\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/323\/cf5\/885\/323cf58850eaa71784feed9a56284e2d.png\"\/><\/figure>\n<p>\u041a\u0430\u043a \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e, \u043b\u044e\u0431\u0430\u044f \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043b\u043e\u043c\u0430\u0435\u0442\u0441\u044f \u043b\u0438\u0431\u043e \u0432 \u0441\u0430\u043c\u043e\u043c \u043d\u0430\u0447\u0430\u043b\u0435, \u043b\u0438\u0431\u043e \u0432 \u0441\u0430\u043c\u043e\u043c \u043a\u043e\u043d\u0446\u0435. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043b\u043e\u0433 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043a\u0440\u0430\u0439\u043d\u0435 \u0432\u0430\u0436\u0435\u043d. \u0423 \u0432\u0430\u0441 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0438. \u042d\u0442\u043e \u043d\u0430\u0434\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0447\u0435\u0440\u0435\u0437 CLI.<\/p>\n<p>CLI \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u0447\u0442\u043e \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0430 \u0441\u0442\u0430\u0440\u0442\u043e\u0432\u0430\u043b\u0430! \u041c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 Artery \u043e\u0441\u0432\u043e\u0435\u043d. \u0414\u0430\u043b\u0435\u0435 \u0443\u0436\u0435 \u0434\u0435\u043b\u043e \u0442\u0435\u0445\u043d\u0438\u043a\u0438.<\/p>\n<h3>\u0414\u043e\u0441\u0442\u043e\u0438\u043d\u0441\u0442\u0432\u0430 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430\u043c\u0438 Artery<\/h3>\n<p>1++ \u042d\u0442\u043e \u0434\u0451\u0448\u0435\u0432\u043e: 4\u043a RUR \u0437\u0430 \u043e\u0442\u043b\u0430\u0434\u043a\u0443 \u0438 4\u043a RUR \u0437\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430\u0442\u043e\u0440. \u0418\u0437\u0443\u0447\u0430\u0442\u044c Artery MCU \u0432\u043f\u043e\u043b\u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0441\u0435\u0431\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442\u044c \u043b\u044e\u0431\u043e\u0439 \u0441\u0442\u0443\u0434\u0435\u043d\u0442 \u0438 \u0434\u0430\u0436\u0435 \u0448\u043a\u043e\u043b\u044c\u043d\u0438\u043a.<\/p>\n<p>2++ Artery Technology &#8212; \u044d\u0442\u043e \u0441\u0430\u043d\u043a\u0446\u0438\u043e\u043d\u043d\u043e-\u0441\u0442\u043e\u0439\u043a\u0438\u0439 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432! Artery  \u043d\u0435 &#171;\u043f\u0435\u0440\u0435\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u0432\u043e\u0437\u0434\u0443\u0445&#187; \u0434\u043b\u044f \u0441\u0432\u043e\u0438\u0445 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432, \u043a\u0430\u043a \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u044e\u0442 TI, Analog Devices \u0438 \u043f\u0440\u043e\u0447\u0438\u0435.<\/p>\n<p>3++ \u0421\u0435\u043a\u0442\u043e\u0440\u0430 FLASH \u043e\u0434\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430: 4kByte. \u042d\u0442\u043e \u043b\u0443\u0447\u0448\u0435 \u0447\u0435\u043c \u0443 STM32F4, \u0433\u0434\u0435 \u0432\u0441\u0435 \u0441\u0435\u043a\u0442\u043e\u0440\u0430 \u0438\u043c\u0435\u043b\u0438 \u0440\u0430\u0437\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440.<\/p>\n<h3>\u0427\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0443\u043b\u0443\u0447\u0448\u0438\u0442\u044c?<\/h3>\n<p>1&#8212;\u0423 Artery \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432, \u043a\u0430\u043a \u0438 \u0443 STM \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u044b\u0435 \u043f\u043e\u0434\u0441\u0438\u0441\u0442\u0435\u043c\u044b (I2S, UART, CAN \u0438 \u0442 \u043f) \u0432\u044b\u0432\u0435\u0434\u0435\u043d\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u043e\u0447\u0435\u043d\u044c <strong>\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u044b\u0439<\/strong> \u043d\u0430\u0431\u043e\u0440 \u043f\u0438\u043d\u043e\u0432. \u0415\u0441\u043b\u0438 \u0441\u0445\u0435\u043c\u043e\u0442\u0435\u0445\u043d\u0438\u043a\u0438 \u043e\u0448\u0438\u0431\u0443\u0442\u0441\u044f \u0432 \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u0438, \u0442\u043e \u0432\u044b \u043d\u0435 \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f I2S UART \u0438\u043b\u0438 I2S. \u0412 \u044d\u0442\u043e\u043c \u043f\u043b\u0430\u043d\u0435 Artery \u0441\u0438\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0438\u0433\u0440\u044b\u0432\u0430\u044e\u0442 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430\u043c \u043e\u0442 Nordic \u0438\u043b\u0438 TI \u0433\u0434\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u044b\u0439 I2S_BCLK \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0437\u043d\u0430\u0447\u0438\u0442\u044c \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0430 \u043b\u044e\u0431\u043e\u0439 \u043f\u0438\u043d.<\/p>\n<p>2&#8212;\u0411\u044b\u043b\u043e \u0431\u044b \u043b\u0443\u0447\u0448\u0435 \u0435\u0441\u043b\u0438 Artery \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u043b\u0438 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0432 \u0432\u0438\u0434\u0435 \u0441\u0431\u043e\u0440\u043e\u043a \u0438\u0437 \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432 (CMake Make Ningia). \u0410 \u0442\u043e Eclipse \u0441 \u043f\u043b\u0430\u0433\u0438\u043d\u0430\u043c\u0438 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u043c\u044b\u0448\u043a\u043e\u0439, \u0447\u0442\u043e \u043d\u0435\u0443\u0434\u043e\u0431\u043d\u043e \u0438 \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e. \u041f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0441\u0430\u043c\u043e\u043c\u0443 \u043f\u0440\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c makefile \u0441\u043a\u0440\u0438\u043f\u0442\u044b \u0434\u043b\u044f \u043f\u0430\u043f\u043a\u0438 AT32F435_437_Firmware_Library_EN_V2.1.5<\/p>\n<pre><code class=\"bash\">ifneq ($(AT32F435_437_FIRMWARE_LIBRARY_EN_V2_1_5_MK_LOC),Y)      AT32F435_437_FIRMWARE_LIBRARY_EN_V2_1_5_MK_LOC=Y      HAL_AT32_DIR += $(WORKSPACE_LOC)\/AT32F435_437_Firmware_Library_EN_V2.1.5     #@echo $(error HAL_AT32_DIR=$(HAL_AT32_DIR))      INCDIR += -I$(HAL_AT32_DIR)     INCDIR += -I$(HAL_AT32_DIR)\/libraries     INCDIR += -I$(HAL_AT32_DIR)\/libraries\/cmsis     INCDIR += -I$(HAL_AT32_DIR)\/libraries\/cmsis\/cm4     INCDIR += -I$(HAL_AT32_DIR)\/libraries\/cmsis\/cm4\/core_support     INCDIR += -I$(HAL_AT32_DIR)\/libraries\/drivers     INCDIR += -I$(HAL_AT32_DIR)\/libraries\/drivers\/inc      ifeq ($(CLOCK),Y)         OPT += -DCRM_MODULE_ENABLED         SOURCES_C += $(HAL_AT32_DIR)\/libraries\/drivers\/src\/at32f435_437_crm.c     endif     ...     ... endif<\/code><\/pre>\n<p>\u0425\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0431\u044b, \u0447\u0442\u043e\u0431\u044b \u0432\u0435\u043d\u0434\u043e\u0440 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0438\u043b \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u0441 \u0443\u0436\u0435 \u043f\u0440\u043e\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0439 \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u0446\u0438\u0435\u0439 \u0444\u0430\u0439\u043b\u043e\u0432 \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438 \u0432 \u0432\u0438\u0434\u0435 *.mk \u0444\u0430\u0439\u043b\u043e\u0432 \u0438\u043b\u0438 \u0434\u0430\u0436\u0435 \u0441 *.cmake \u0444\u0430\u0439\u043b\u0430\u043c\u0438.<\/p>\n<h3>\u0418\u0442\u043e\u0433\u0438<\/h3>\n<p>\u0423\u0434\u0430\u043b\u043e\u0441\u044c \u043d\u0430\u0443\u0447\u0438\u0442\u044c\u0441\u044f \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c, \u043f\u0440\u043e\u0448\u0438\u0432\u0430\u0442\u044c \u0438 \u043e\u0442\u043b\u0430\u0436\u0438\u0432\u0430\u0442\u044c C\u0438-\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0434\u043b\u044f \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 Artery.<\/p>\n<p>\u041c\u044b \u0441\u0430\u043c\u0438 \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0430\u043a\u043a\u0443\u0440\u0430\u0442\u043d\u043e \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u043b\u0438 \u0432\u0441\u0451, \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0434\u043b\u044f cross \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0421\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432. \u0412\u044b \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u043c\u043e\u0433\u043b\u0438 \u0431\u044b \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c AT32 IDE  \u043a\u0430\u043a \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u0443\u044e \u0438\u0433\u0440\u0443 \u0438 \u043d\u0435 \u0437\u0430\u0434\u0443\u043c\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0438 \u043e \u0447\u0451\u043c. \u041e\u0434\u043d\u0430\u043a\u043e \u0442\u043e\u0433\u0434\u0430 \u0431\u044b \u0432\u044b \u043d\u0435 \u0441\u043c\u043e\u0433\u043b\u0438 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044e.  \u041f\u0440\u043e \u044d\u0442\u043e \u0443 \u043c\u0435\u043d\u044f \u0435\u0441\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 <a href=\"https:\/\/habr.com\/ru\/articles\/723054\/\" rel=\"noopener noreferrer nofollow\">https:\/\/habr.com\/ru\/articles\/723054\/<\/a><\/p>\n<p>\u041a\u0430\u043a \u0432\u0438\u0434\u0438\u0442\u0435, \u0435\u0441\u043b\u0438 \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0421\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0438\u0437 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 MakeFile(\u043e\u0432), \u0442\u043e \u0412\u0430\u043c \u0432 \u043e\u0431\u0449\u0435\u043c-\u0442\u043e, \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u0434\u043b\u044f \u043a\u0430\u043a\u043e\u0433\u043e \u0442\u0430\u043c \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u043a\u043e\u0434 (\u0421\u04212640, STM32, nRF5304, Artery, PowerPC \u0438\u043b\u0438 AVR). \u0421\u0438\u0441\u0442\u0435\u043c\u0430 \u0441\u0431\u043e\u0440\u043a\u0438 \u0438\u0437 \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432 \u0435\u0434\u0438\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u0430\u044f!<\/p>\n<p>\u042d\u0442\u043e, \u043f\u043e\u0436\u0430\u043b\u0443\u0439, \u0433\u043b\u0430\u0432\u043d\u043e\u0435 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u043e \u0441\u0431\u043e\u0440\u043a\u0438 \u0438\u0437 make. <strong>\u0423\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c!<\/strong> \u0423 \u0412\u0430\u0441 \u043e\u0434\u043d\u0430 \u043e\u0431\u0449\u0430\u044f \u043f\u0435\u0440\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0430\u044f \u043a\u043e\u0434\u043e\u0432\u0430\u044f \u0431\u0430\u0437\u0430 \u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0430\u044f \u043f\u0430\u043f\u043a\u0430 \u0434\u043b\u044f \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043d\u043e\u0433\u043e \u044f\u0434\u0440\u0430, \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0430\u044f \u043f\u0430\u043f\u043a\u0430 \u0434\u043b\u044f \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430, \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0430\u044f \u043f\u0430\u043f\u043a\u0430 \u0434\u043b\u044f \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0439 \u043f\u043b\u0430\u0442\u044b \u0438, \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u043f\u0430\u043f\u043a\u0430 \u0441\u0430\u043c\u043e\u0439 \u0441\u0431\u043e\u0440\u043a\u0438. <\/p>\n<p>\u0412\u0441\u0451 \u0440\u0430\u0437\u043b\u043e\u0436\u0435\u043d\u043e \u043f\u043e \u043f\u043e\u043b\u043e\u0447\u043a\u0430\u043c. \u0412\u0441\u0451 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u043f\u0435\u0440\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043c\u0435\u0436\u0434\u0443 \u0432\u0441\u0435\u043c\u0438 \u0441\u0431\u043e\u0440\u043a\u0430\u043c\u0438 \u043f\u043e-\u043c\u0430\u043a\u0441\u0438\u043c\u043e\u043c\u0443.<\/p>\n<p>\u0421\u0431\u043e\u0440\u043a\u0430 \u0438\u0437 make \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0412\u0430\u043c \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e <strong>\u043b\u0438\u043a\u0432\u0438\u0434\u0438\u0440\u043e\u0432\u0430\u0442\u044c<\/strong> <strong>\u0434\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435<\/strong> <strong>\u043a\u043e\u043d\u0444\u0438\u0433\u043e\u0432<\/strong>, \u043a\u043e\u0433\u0434\u0430 \u0443 \u0432\u0430\u0441 150 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0445 \u0441\u0431\u043e\u0440\u043e\u043a \u0434\u043b\u044f 35\u0442\u0438 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0445 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u044b\u0445 \u043f\u043b\u0430\u0442 \u0441 7\u043c\u044e \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u043c\u0438 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430\u043c\u0438 \u0432\u043d\u0443\u0442\u0440\u0438. \u041a\u043e\u043d\u0444\u0438\u0433\u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0430\u0441\u043b\u0435\u0434\u0443\u044e\u0442\u0441\u044f \u0438\u0437 make \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432, \u0438 \u0432\u0441\u0451.  \u0415\u0441\u043b\u0438 \u0431\u044b \u0443 \u0412\u0430\u0441 \u043d\u0435 \u0431\u044b\u043b\u043e \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432 \u0441\u0431\u043e\u0440\u043a\u0438, \u0442\u043e \u0432\u044b \u0437\u0430\u043c\u0443\u0447\u0438\u043b\u0438\u0441\u044c \u0431\u044b \u043f\u0440\u043e\u0449\u0451\u043b\u043a\u0438\u0432\u0430\u0442\u044c \u043c\u044b\u0448\u043a\u043e\u0439 \u043e\u0434\u043d\u0438 \u0438 \u0442\u0435 \u0436\u0435 xml \u043a\u043e\u043d\u0444\u0438\u0433\u0438 \u0432 IDE \u0434\u043b\u044f \u0440\u0430\u0437\u043d\u044b\u0445 \u0441\u0431\u043e\u0440\u043e\u043a \u0438 \u043f\u043b\u0430\u0442.<\/p>\n<p>\u041f\u0440\u0438 \u0441\u0431\u043e\u0440\u043a\u0435 \u043f\u0440\u043e\u0448\u0438\u0432\u043e\u043a \u0438\u0437 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 Makefile(\u043e\u0432) \u043e\u0434\u0438\u043d \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c \u043d\u0430 \u043f\u043b\u0430\u0432\u0443 100-200-300 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u0434\u043b\u044f 10-20-30 \u043f\u043b\u0430\u0442 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 3-5-7 \u0440\u0430\u0437\u043d\u044b\u0445 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432. \u0421 makefile(\u043b\u0430\u043c\u0438) \u043c\u043d\u043e\u0433\u043e\u0437\u0430\u0434\u0430\u0447\u043d\u043e\u0441\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430, \u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0431\u0435\u0448\u0435\u043d\u0430\u044f!<\/p>\n<p>\u041d\u0430\u0434\u0435\u044e\u0441\u044c \u044d\u0442\u043e\u0442 \u0442\u0435\u043a\u0441\u0442 \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0434\u0440\u0443\u0433\u0438\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0430\u043c \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432 \u0431\u0435c\u0448\u043e\u0432\u043d\u043e \u043c\u0438\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u043f\u0440\u043e\u0448\u0438\u0432\u043e\u043a \u0434\u043b\u044f \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0441 \u043a\u0438\u0442\u0430\u0439\u0441\u043a\u0438\u043c\u0438 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u043c AT32 \u0432\u043d\u0443\u0442\u0440\u0438.<\/p>\n<p>\u0415\u0441\u043b\u0438 \u0435\u0441\u0442\u044c \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u0442\u043e \u043f\u0438\u0448\u0438\u0442\u0435 \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445.<\/p>\n<h3>\u0421\u043b\u043e\u0432\u0430\u0440\u044c<\/h3>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"121\" width=\"121\">\n<p align=\"left\"><strong>\u0410\u043a\u0440\u043e\u043d\u0438\u043c<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>\u0420\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0430<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"121\" width=\"121\">\n<p align=\"left\">\u041f\u041e<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0435 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u0435<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"121\" width=\"121\">\n<p align=\"left\">SWD<\/p>\n<\/td>\n<td>\n<p align=\"left\">serial wire debug interface<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"121\" width=\"121\">\n<p align=\"left\">AT<\/p>\n<\/td>\n<td>\n<p align=\"left\">ARTERY<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"121\" width=\"121\">\n<p align=\"left\">FPU<\/p>\n<\/td>\n<td>\n<p align=\"left\">Floating-point unit<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"121\" width=\"121\">\n<p align=\"left\">ICP<\/p>\n<\/td>\n<td>\n<p align=\"left\">in-circuit programmer<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"121\" width=\"121\">\n<p align=\"left\">MCAL<\/p>\n<\/td>\n<td>\n<p align=\"left\">Microcontroller Abstraction Layer<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"121\" width=\"121\">\n<p align=\"left\">IDE <\/p>\n<\/td>\n<td>\n<p align=\"left\">development<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"121\" width=\"121\">\n<p align=\"left\">CMSIS<\/p>\n<\/td>\n<td>\n<p align=\"left\">Common Microcontroller Software Interface Standard<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"121\" width=\"121\">\n<p align=\"left\">OpenOCD<\/p>\n<\/td>\n<td>\n<p align=\"left\">On-Chip Debugger<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"121\" width=\"121\">\n<p align=\"left\">LED<\/p>\n<\/td>\n<td>\n<p align=\"left\">Light-emitting diode<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"121\" width=\"121\">\n<p align=\"left\">RISC <\/p>\n<\/td>\n<td>\n<p align=\"left\">reduced instruction set computer<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"121\" width=\"121\">\n<p align=\"left\">CLI<\/p>\n<\/td>\n<td>\n<p align=\"left\">Command-line interface<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"121\" width=\"121\">\n<p align=\"left\">UART<\/p>\n<\/td>\n<td>\n<p align=\"left\">Universal asynchronous receiver-transmitter<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"121\" width=\"121\">\n<p align=\"left\">UNIX<\/p>\n<\/td>\n<td>\n<p align=\"left\">UNiplexed Information Computing System<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"121\" width=\"121\">\n<p align=\"left\">FPU<\/p>\n<\/td>\n<td>\n<p align=\"left\">Floating-point unit<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"121\" width=\"121\">\n<p align=\"left\">GCC<\/p>\n<\/td>\n<td>\n<p align=\"left\">GNU Compiler Collection<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"121\" width=\"121\">\n<p align=\"left\">GDB <\/p>\n<\/td>\n<td>\n<p align=\"left\">GNU Debugger<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"121\" width=\"121\">\n<p align=\"left\">GNU <\/p>\n<\/td>\n<td>\n<p align=\"left\">GNU&#8217;s Not UNIX<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"121\" width=\"121\">\n<p align=\"left\">ARM<\/p>\n<\/td>\n<td>\n<p align=\"left\">Advanced RISC Machine<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>Links\/URLs<\/h3>\n<p><a href=\"https:\/\/habr.com\/ru\/articles\/673522\/\" rel=\"noopener noreferrer nofollow\"><u>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 ToolChain(\u0430) \u0434\u043b\u044f Win10+GCC+\u0421+Makefile+ARM Cortex-Mx+GDB<\/u><\/a><\/p>\n<p><a href=\"https:\/\/habr.com\/ru\/articles\/694408\/\" rel=\"noopener noreferrer nofollow\"><u>\u041f\u043e\u0447\u0435\u043c\u0443 \u041d\u0430\u043c \u041d\u0443\u0436\u0435\u043d UART-Shell? (\u0438\u043b\u0438 \u0414\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u0432 \u041f\u0440\u043e\u0448\u0438\u0432\u043a\u0443 \u0413\u043b\u0430\u0441\u043d\u043e\u0441\u0442\u044c)<\/u><\/a><\/p>\n<p><a href=\"https:\/\/habr.com\/ru\/articles\/723054\/\" rel=\"noopener noreferrer nofollow\"><u>\u041f\u043e\u0447\u0435\u043c\u0443 \u0432\u0430\u0436\u043d\u043e \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u043a\u043e\u0434 \u0438\u0437 \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432<\/u><\/a><\/p>\n<p><a href=\"https:\/\/www.arterytek.com\/en\/\" rel=\"noopener noreferrer nofollow\"><u>\u041e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u0430\u0439\u0442 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Artery Technology<\/u><\/a><\/p>\n<p><a href=\"https:\/\/www.youtube.com\/@arterychip\/videos\" rel=\"noopener noreferrer nofollow\"><u>ARTERY Technology<\/u><\/a><\/p>\n<p><a href=\"https:\/\/sourceforge.net\/projects\/gnuarmeclipse\/files\/Build%20Tools\/\" rel=\"noopener noreferrer nofollow\"><u>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 Build Tools<\/u><\/a><\/p>\n<p><a href=\"https:\/\/gcc.gnu.org\/\" rel=\"noopener noreferrer nofollow\"><u>GCC, the GNU Compiler Collection<\/u><\/a><\/p>\n<p><a href=\"https:\/\/microsin.net\/programming\/ARM\/openocd-manual-part1.html\" rel=\"noopener noreferrer nofollow\"><u>OpenOCD: \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u043d\u0430\u0447\u0430\u043b\u043e<\/u><\/a><\/p>\n<p><a href=\"https:\/\/habr.com\/ru\/articles\/726352\/\" rel=\"noopener noreferrer nofollow\"><u>\u0421\u0431\u043e\u0440\u043a\u0430 firmware \u0434\u043b\u044f CC2652 \u0438\u0437 Makefile<\/u><\/a><\/p>\n<p><a href=\"https:\/\/habr.com\/ru\/articles\/694708\/\" rel=\"noopener noreferrer nofollow\"><u>\u041f\u043e\u0448\u0430\u0433\u043e\u0432\u0430\u044f GDB \u043e\u0442\u043b\u0430\u0434\u043a\u0430 ARM \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 \u0438\u0437 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 \u0432 Win10<\/u><\/a><\/p>\n<\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><\/p>\n<div class=\"tm-article-poll-container\"><!--[--><\/p>\n<div class=\"tm-article-poll tm-article-poll_variant-bordered\">\n<div class=\"tm-notice tm-notice_positive tm-article-poll__notice\"><!----><\/p>\n<div class=\"tm-notice__inner\"><!----><\/p>\n<div class=\"tm-notice__content\" data-test-id=\"notice-content\"><!--[--><span>\u0422\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u043c\u043e\u0433\u0443\u0442 \u0443\u0447\u0430\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0432 \u043e\u043f\u0440\u043e\u0441\u0435. <a rel=\"nofollow\" href=\"\/kek\/v1\/auth\/habrahabr\/?back=\/ru\/articles\/792590\/&#038;hl=ru\">\u0412\u043e\u0439\u0434\u0438\u0442\u0435<\/a>, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430.<\/span><!--]--><\/div>\n<\/div>\n<\/div>\n<p><!--[--><\/p>\n<div class=\"tm-article-poll__header\">\u0412\u044b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u044b Artery?<\/div>\n<div class=\"tm-article-poll__answers\"><!--[--><\/p>\n<div class=\"tm-article-poll__answer\">\n<div class=\"tm-article-poll__answer-data\"><span class=\"tm-article-poll__answer-percent\">27.59% <\/span><span class=\"tm-article-poll__answer-label\">\u0434\u0430<\/span><span class=\"tm-article-poll__answer-votes\">8<\/span><\/div>\n<div class=\"tm-article-poll__answer-bar\">\n<div class=\"tm-article-poll__answer-progress\" style=\"width: 27.59%\"><\/div>\n<\/div>\n<\/div>\n<div class=\"tm-article-poll__answer\">\n<div class=\"tm-article-poll__answer-data\"><span class=\"tm-article-poll__answer-percent tm-article-poll__answer-percent_winning\">72.41% <\/span><span class=\"tm-article-poll__answer-label\">\u043d\u0435\u0442<\/span><span class=\"tm-article-poll__answer-votes\">21<\/span><\/div>\n<div class=\"tm-article-poll__answer-bar\">\n<div class=\"tm-article-poll__answer-progress tm-article-poll__answer-progress_winning\" style=\"width: 72.41%\"><\/div>\n<\/div>\n<\/div>\n<p><!--]--><\/div>\n<div class=\"tm-article-poll__stats\"> \u041f\u0440\u043e\u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043b\u0438 29 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439.   \u0412\u043e\u0437\u0434\u0435\u0440\u0436\u0430\u0432\u0448\u0438\u0445\u0441\u044f \u043d\u0435\u0442. <\/div>\n<p><!--]--><\/div>\n<div class=\"tm-article-poll tm-article-poll_variant-bordered\">\n<div class=\"tm-notice tm-notice_positive tm-article-poll__notice\"><!----><\/p>\n<div class=\"tm-notice__inner\"><!----><\/p>\n<div class=\"tm-notice__content\" data-test-id=\"notice-content\"><!--[--><span>\u0422\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u043c\u043e\u0433\u0443\u0442 \u0443\u0447\u0430\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0432 \u043e\u043f\u0440\u043e\u0441\u0435. <a rel=\"nofollow\" href=\"\/kek\/v1\/auth\/habrahabr\/?back=\/ru\/articles\/792590\/&#038;hl=ru\">\u0412\u043e\u0439\u0434\u0438\u0442\u0435<\/a>, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430.<\/span><!--]--><\/div>\n<\/div>\n<\/div>\n<p><!--[--><\/p>\n<div class=\"tm-article-poll__header\">\u041a\u0430\u043a \u0432\u044b \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442\u0435 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438?<\/div>\n<div class=\"tm-article-poll__answers\"><!--[--><\/p>\n<div class=\"tm-article-poll__answer\">\n<div class=\"tm-article-poll__answer-data\"><span class=\"tm-article-poll__answer-percent\">30% <\/span><span class=\"tm-article-poll__answer-label\">\u0438\u0437 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 Make \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432<\/span><span class=\"tm-article-poll__answer-votes\">9<\/span><\/div>\n<div class=\"tm-article-poll__answer-bar\">\n<div class=\"tm-article-poll__answer-progress\" style=\"width: 30%\"><\/div>\n<\/div>\n<\/div>\n<div class=\"tm-article-poll__answer\">\n<div class=\"tm-article-poll__answer-data\"><span class=\"tm-article-poll__answer-percent\">20% <\/span><span class=\"tm-article-poll__answer-label\">\u0438\u0437 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 CMake \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432<\/span><span class=\"tm-article-poll__answer-votes\">6<\/span><\/div>\n<div class=\"tm-article-poll__answer-bar\">\n<div class=\"tm-article-poll__answer-progress\" style=\"width: 20%\"><\/div>\n<\/div>\n<\/div>\n<div class=\"tm-article-poll__answer\">\n<div class=\"tm-article-poll__answer-data\"><span class=\"tm-article-poll__answer-percent tm-article-poll__answer-percent_winning\">63.33% <\/span><span class=\"tm-article-poll__answer-label\">\u043c\u043d\u0435 IDE \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442 \u043f\u0440\u043e\u0435\u043a\u0442<\/span><span class=\"tm-article-poll__answer-votes\">19<\/span><\/div>\n<div class=\"tm-article-poll__answer-bar\">\n<div class=\"tm-article-poll__answer-progress tm-article-poll__answer-progress_winning\" style=\"width: 63.33%\"><\/div>\n<\/div>\n<\/div>\n<div class=\"tm-article-poll__answer\">\n<div class=\"tm-article-poll__answer-data\"><span class=\"tm-article-poll__answer-percent\">0% <\/span><span class=\"tm-article-poll__answer-label\">\u0438\u0437 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 Ninja \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432<\/span><span class=\"tm-article-poll__answer-votes\">0<\/span><\/div>\n<div class=\"tm-article-poll__answer-bar\">\n<div class=\"tm-article-poll__answer-progress\" style=\"width: 0%\"><\/div>\n<\/div>\n<\/div>\n<p><!--]--><\/div>\n<div class=\"tm-article-poll__stats\"> \u041f\u0440\u043e\u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043b\u0438 30 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439.   \u0412\u043e\u0437\u0434\u0435\u0440\u0436\u0430\u0432\u0448\u0438\u0445\u0441\u044f \u043d\u0435\u0442. <\/div>\n<p><!--]--><\/div>\n<div class=\"tm-article-poll tm-article-poll_variant-bordered\">\n<div class=\"tm-notice tm-notice_positive tm-article-poll__notice\"><!----><\/p>\n<div class=\"tm-notice__inner\"><!----><\/p>\n<div class=\"tm-notice__content\" data-test-id=\"notice-content\"><!--[--><span>\u0422\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u043c\u043e\u0433\u0443\u0442 \u0443\u0447\u0430\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0432 \u043e\u043f\u0440\u043e\u0441\u0435. <a rel=\"nofollow\" href=\"\/kek\/v1\/auth\/habrahabr\/?back=\/ru\/articles\/792590\/&#038;hl=ru\">\u0412\u043e\u0439\u0434\u0438\u0442\u0435<\/a>, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430.<\/span><!--]--><\/div>\n<\/div>\n<\/div>\n<p><!--[--><\/p>\n<div class=\"tm-article-poll__header\">\u041a\u0430\u043a\u0438\u043c \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u044b\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c \u0412\u044b \u043e\u0431\u044b\u0447\u043d\u043e \u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435\u0441\u044c?<\/div>\n<div class=\"tm-article-poll__answers\"><!--[--><\/p>\n<div class=\"tm-article-poll__answer\">\n<div class=\"tm-article-poll__answer-data\"><span class=\"tm-article-poll__answer-percent\">20.83% <\/span><span class=\"tm-article-poll__answer-label\">OpenOCD<\/span><span class=\"tm-article-poll__answer-votes\">5<\/span><\/div>\n<div class=\"tm-article-poll__answer-bar\">\n<div class=\"tm-article-poll__answer-progress\" style=\"width: 20.83%\"><\/div>\n<\/div>\n<\/div>\n<div class=\"tm-article-poll__answer\">\n<div class=\"tm-article-poll__answer-data\"><span class=\"tm-article-poll__answer-percent tm-article-poll__answer-percent_winning\">41.67% <\/span><span class=\"tm-article-poll__answer-label\">SEGGER J-link<\/span><span class=\"tm-article-poll__answer-votes\">10<\/span><\/div>\n<div class=\"tm-article-poll__answer-bar\">\n<div class=\"tm-article-poll__answer-progress tm-article-poll__answer-progress_winning\" style=\"width: 41.67%\"><\/div>\n<\/div>\n<\/div>\n<div class=\"tm-article-poll__answer\">\n<div class=\"tm-article-poll__answer-data\"><span class=\"tm-article-poll__answer-percent\">37.5% <\/span><span class=\"tm-article-poll__answer-label\">ST-LINK_gdbserver<\/span><span class=\"tm-article-poll__answer-votes\">9<\/span><\/div>\n<div class=\"tm-article-poll__answer-bar\">\n<div class=\"tm-article-poll__answer-progress\" style=\"width: 37.5%\"><\/div>\n<\/div>\n<\/div>\n<div class=\"tm-article-poll__answer\">\n<div class=\"tm-article-poll__answer-data\"><span class=\"tm-article-poll__answer-percent\">29.17% <\/span><span class=\"tm-article-poll__answer-label\">\u0434\u0440\u0443\u0433\u043e\u0439<\/span><span class=\"tm-article-poll__answer-votes\">7<\/span><\/div>\n<div class=\"tm-article-poll__answer-bar\">\n<div class=\"tm-article-poll__answer-progress\" style=\"width: 29.17%\"><\/div>\n<\/div>\n<\/div>\n<p><!--]--><\/div>\n<div class=\"tm-article-poll__stats\"> \u041f\u0440\u043e\u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043b\u0438 24 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f.    \u0412\u043e\u0437\u0434\u0435\u0440\u0436\u0430\u043b\u0438\u0441\u044c 3 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f. <\/div>\n<p><!--]--><\/div>\n<div class=\"tm-article-poll tm-article-poll_variant-bordered\">\n<div class=\"tm-notice tm-notice_positive tm-article-poll__notice\"><!----><\/p>\n<div class=\"tm-notice__inner\"><!----><\/p>\n<div class=\"tm-notice__content\" data-test-id=\"notice-content\"><!--[--><span>\u0422\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u043c\u043e\u0433\u0443\u0442 \u0443\u0447\u0430\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0432 \u043e\u043f\u0440\u043e\u0441\u0435. <a rel=\"nofollow\" href=\"\/kek\/v1\/auth\/habrahabr\/?back=\/ru\/articles\/792590\/&#038;hl=ru\">\u0412\u043e\u0439\u0434\u0438\u0442\u0435<\/a>, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430.<\/span><!--]--><\/div>\n<\/div>\n<\/div>\n<p><!--[--><\/p>\n<div class=\"tm-article-poll__header\">\u041d\u0430 \u043a\u0430\u043a\u043e\u043c \u044f\u0437\u044b\u043a\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0412\u044b \u0431\u043e\u043b\u044c\u0448\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u0443\u0435\u0442\u0435 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u044b?<\/div>\n<div class=\"tm-article-poll__answers\"><!--[--><\/p>\n<div class=\"tm-article-poll__answer\">\n<div class=\"tm-article-poll__answer-data\"><span class=\"tm-article-poll__answer-percent tm-article-poll__answer-percent_winning\">90.91% <\/span><span class=\"tm-article-poll__answer-label\">C<\/span><span class=\"tm-article-poll__answer-votes\">30<\/span><\/div>\n<div class=\"tm-article-poll__answer-bar\">\n<div class=\"tm-article-poll__answer-progress tm-article-poll__answer-progress_winning\" style=\"width: 90.91%\"><\/div>\n<\/div>\n<\/div>\n<div class=\"tm-article-poll__answer\">\n<div class=\"tm-article-poll__answer-data\"><span class=\"tm-article-poll__answer-percent\">15.15% <\/span><span class=\"tm-article-poll__answer-label\">C++<\/span><span class=\"tm-article-poll__answer-votes\">5<\/span><\/div>\n<div class=\"tm-article-poll__answer-bar\">\n<div class=\"tm-article-poll__answer-progress\" style=\"width: 15.15%\"><\/div>\n<\/div>\n<\/div>\n<div class=\"tm-article-poll__answer\">\n<div class=\"tm-article-poll__answer-data\"><span class=\"tm-article-poll__answer-percent\">3.03% <\/span><span class=\"tm-article-poll__answer-label\">Rust<\/span><span class=\"tm-article-poll__answer-votes\">1<\/span><\/div>\n<div class=\"tm-article-poll__answer-bar\">\n<div class=\"tm-article-poll__answer-progress\" style=\"width: 3.03%\"><\/div>\n<\/div>\n<\/div>\n<div class=\"tm-article-poll__answer\">\n<div class=\"tm-article-poll__answer-data\"><span class=\"tm-article-poll__answer-percent\">3.03% <\/span><span class=\"tm-article-poll__answer-label\">\u0442\u043e\u043b\u044c\u043a\u043e Assembler<\/span><span class=\"tm-article-poll__answer-votes\">1<\/span><\/div>\n<div class=\"tm-article-poll__answer-bar\">\n<div class=\"tm-article-poll__answer-progress\" style=\"width: 3.03%\"><\/div>\n<\/div>\n<\/div>\n<div class=\"tm-article-poll__answer\">\n<div class=\"tm-article-poll__answer-data\"><span class=\"tm-article-poll__answer-percent\">0% <\/span><span class=\"tm-article-poll__answer-label\">\u0434\u0440\u0443\u0433\u043e\u0439<\/span><span class=\"tm-article-poll__answer-votes\">0<\/span><\/div>\n<div class=\"tm-article-poll__answer-bar\">\n<div class=\"tm-article-poll__answer-progress\" style=\"width: 0%\"><\/div>\n<\/div>\n<\/div>\n<p><!--]--><\/div>\n<div class=\"tm-article-poll__stats\"> \u041f\u0440\u043e\u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043b\u0438 33 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f.    \u0412\u043e\u0437\u0434\u0435\u0440\u0436\u0430\u0432\u0448\u0438\u0445\u0441\u044f \u043d\u0435\u0442. <\/div>\n<p><!--]--><\/div>\n<div class=\"tm-article-poll tm-article-poll_variant-bordered\">\n<div class=\"tm-notice tm-notice_positive tm-article-poll__notice\"><!----><\/p>\n<div class=\"tm-notice__inner\"><!----><\/p>\n<div class=\"tm-notice__content\" data-test-id=\"notice-content\"><!--[--><span>\u0422\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u043c\u043e\u0433\u0443\u0442 \u0443\u0447\u0430\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0432 \u043e\u043f\u0440\u043e\u0441\u0435. <a rel=\"nofollow\" href=\"\/kek\/v1\/auth\/habrahabr\/?back=\/ru\/articles\/792590\/&#038;hl=ru\">\u0412\u043e\u0439\u0434\u0438\u0442\u0435<\/a>, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430.<\/span><!--]--><\/div>\n<\/div>\n<\/div>\n<p><!--[--><\/p>\n<div class=\"tm-article-poll__header\">\u0412\u044b \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0435 \u0432 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 \u0434\u043b\u044f \u043e\u0442\u043b\u0430\u0434\u043a\u0438 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 (CLI,Shell,TUI)?<\/div>\n<div class=\"tm-article-poll__answers\"><!--[--><\/p>\n<div class=\"tm-article-poll__answer\">\n<div class=\"tm-article-poll__answer-data\"><span class=\"tm-article-poll__answer-percent\">44.83% <\/span><span class=\"tm-article-poll__answer-label\">\u0434\u0430<\/span><span class=\"tm-article-poll__answer-votes\">13<\/span><\/div>\n<div class=\"tm-article-poll__answer-bar\">\n<div class=\"tm-article-poll__answer-progress\" style=\"width: 44.83%\"><\/div>\n<\/div>\n<\/div>\n<div class=\"tm-article-poll__answer\">\n<div class=\"tm-article-poll__answer-data\"><span class=\"tm-article-poll__answer-percent tm-article-poll__answer-percent_winning\">55.17% <\/span><span class=\"tm-article-poll__answer-label\">\u043d\u0435\u0442<\/span><span class=\"tm-article-poll__answer-votes\">16<\/span><\/div>\n<div class=\"tm-article-poll__answer-bar\">\n<div class=\"tm-article-poll__answer-progress tm-article-poll__answer-progress_winning\" style=\"width: 55.17%\"><\/div>\n<\/div>\n<\/div>\n<p><!--]--><\/div>\n<div class=\"tm-article-poll__stats\"> \u041f\u0440\u043e\u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043b\u0438 29 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439.   \u0412\u043e\u0437\u0434\u0435\u0440\u0436\u0430\u043b\u0441\u044f 1 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c. <\/div>\n<p><!--]--><\/div>\n<div class=\"tm-article-poll tm-article-poll_variant-bordered\">\n<div class=\"tm-notice tm-notice_positive tm-article-poll__notice\"><!----><\/p>\n<div class=\"tm-notice__inner\"><!----><\/p>\n<div class=\"tm-notice__content\" data-test-id=\"notice-content\"><!--[--><span>\u0422\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u043c\u043e\u0433\u0443\u0442 \u0443\u0447\u0430\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0432 \u043e\u043f\u0440\u043e\u0441\u0435. <a rel=\"nofollow\" href=\"\/kek\/v1\/auth\/habrahabr\/?back=\/ru\/articles\/792590\/&#038;hl=ru\">\u0412\u043e\u0439\u0434\u0438\u0442\u0435<\/a>, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430.<\/span><!--]--><\/div>\n<\/div>\n<\/div>\n<p><!--[--><\/p>\n<div class=\"tm-article-poll__header\">\u041a\u0430\u043a \u0432\u044b \u0447\u0430\u0449\u0435 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u044b\u0432\u0430\u0435\u0442\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443?<\/div>\n<div class=\"tm-article-poll__answers\"><!--[--><\/p>\n<div class=\"tm-article-poll__answer\">\n<div class=\"tm-article-poll__answer-data\"><span class=\"tm-article-poll__answer-percent\">30% <\/span><span class=\"tm-article-poll__answer-label\">RTOS<\/span><span class=\"tm-article-poll__answer-votes\">9<\/span><\/div>\n<div class=\"tm-article-poll__answer-bar\">\n<div class=\"tm-article-poll__answer-progress\" style=\"width: 30%\"><\/div>\n<\/div>\n<\/div>\n<div class=\"tm-article-poll__answer\">\n<div class=\"tm-article-poll__answer-data\"><span class=\"tm-article-poll__answer-percent tm-article-poll__answer-percent_winning\">70% <\/span><span class=\"tm-article-poll__answer-label\">NoRTOS<\/span><span class=\"tm-article-poll__answer-votes\">21<\/span><\/div>\n<div class=\"tm-article-poll__answer-bar\">\n<div class=\"tm-article-poll__answer-progress tm-article-poll__answer-progress_winning\" style=\"width: 70%\"><\/div>\n<\/div>\n<\/div>\n<p><!--]--><\/div>\n<div class=\"tm-article-poll__stats\"> \u041f\u0440\u043e\u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043b\u0438 30 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439.   \u0412\u043e\u0437\u0434\u0435\u0440\u0436\u0430\u043b\u0441\u044f 1 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c. <\/div>\n<p><!--]--><\/div>\n<p><!--]--><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/792590\/\"> https:\/\/habr.com\/ru\/articles\/792590\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><\/figure>\n<p>\u041d\u0430\u0441\u0442\u0430\u043b\u043e \u0432\u0440\u0435\u043c\u044f \u043e\u0441\u0432\u043e\u0438\u0442\u044c \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0435 \u0441\u0435\u043c\u0435\u0439\u0441\u0442\u0432\u043e \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432. \u041e\u0442\u00a0\u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Artery Technology. <\/p>\n<p>\u042d\u0442\u043e \u0443\u0436\u0435 11\u0442\u043e\u0435 \u043f\u043e \u0441\u0447\u0435\u0442\u0443 \u0441\u0435\u043c\u0435\u0439\u0441\u0442\u0432\u043e \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432 \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u043c\u043d\u0435 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f. \u0417\u0430 \u0441\u043f\u0438\u043d\u043e\u0439 \u0443\u0436\u0435 \u043e\u0442\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u0435 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 AVR (ATtiny, ATmega), ARM Cortex-M3(MDR32), ARM Cortex-M4(STM32, CC2650), ARM Cortex-M33(nRF5340), PowerPC (SPC58), Tensilica Xtensa (ESP32), 16bit(MSP430), 8bit(STM8), ARM7(LPC21xx), \u041cicroBlaze. \u041d\u0435 \u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u043b\u0441\u044f \u0435\u0449\u0451 \u0442\u043e\u043b\u044c\u043a\u043e \u0441 PIC \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430\u043c\u0438.<\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0432\u043e\u0442 \u043d\u0430\u0434\u043e \u0437\u0430\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c MCU \u043e\u0442 Artery (\u0430 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e AT32F435ZMT7). \u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Artery Technology \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0441 2016 \u0433\u043e\u0434\u0430 \u0438 \u0443\u0436\u0435 \u0432\u043e\u0437\u0432\u0435\u043b\u0430 \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u0443\u044e \u044d\u043a\u043e\u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0434\u043b\u044f \u0441\u0432\u043e\u0435\u0433\u043e \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430. \u0415\u0441\u0442\u044c \u0444\u0438\u0440\u043c\u0435\u043d\u043d\u044b\u0435 \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u044b\u0435 \u043f\u043b\u0430\u0442\u044b, \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430\u0442\u043e\u0440\u044b. \u0415\u0441\u0442\u044c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f, \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u043a\u043e\u0434\u044b MCAL, \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u043a\u043e\u0434\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u0438 \u0434\u0430\u0436\u0435 \u043a\u043e\u0434\u043e\u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u044b!<\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u0412\u043e\u0442 \u0442\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 AT32F435ZMT7 \u0432 \u043d\u0430\u0442\u0443\u0440\u0435<\/figcaption><\/div>\n<\/figure>\n<p>\u0417\u0430\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0438\u0437-\u043f\u043e\u0434 IDE- \u044d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e. \u041f\u043e\u0434 \u0441\u0438\u043b\u0443 \u0434\u0430\u0436\u0435 \u0448\u043a\u043e\u043b\u044c\u043d\u0438\u043a\u0443. \u0421\u043b\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0438\u0437 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432 \u0441\u0431\u043e\u0440\u043a\u0438. \u0412 \u0438\u0434\u0435\u0430\u043b\u0435 \u0438\u0437 <strong>makefile<\/strong>(\u043e\u0432). \u0417\u0430\u0447\u0435\u043c \u044d\u0442\u043e \u043d\u0430\u0434\u043e? \u0415\u0441\u043b\u0438 \u043e\u0442\u0432\u0435\u0447\u0430\u0442\u044c \u043a\u043e\u0440\u043e\u0442\u043a\u043e, \u0442\u043e \u0441\u0431\u043e\u0440\u043a\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u0438\u0437 make \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432 (\u0438\u043b\u0438 CMake) \u043b\u0438\u043a\u0432\u0438\u0434\u0438\u0440\u0443\u0435\u0442 \u0434\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u043e\u0432 \u0438, \u043a\u0430\u043a \u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0435, \u0441\u043f\u043e\u0441\u043e\u0431\u0441\u0442\u0432\u0443\u0435\u0442 \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u044e \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u043f\u0435\u0440\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u0434\u043e\u0432\u043e\u0439 \u0431\u0430\u0437\u044b.<\/p>\n<h3>\u041f\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0437\u0430\u0434\u0430\u0447\u0438<\/h3>\n<p>\u041d\u0430\u0443\u0447\u0438\u0442\u044c\u0441\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 <strong>AT32F435ZMT7<\/strong> \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Artery Technology. <\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u041d\u0430\u0443\u0447\u0438\u0442\u044c\u0441\u044f \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c <u>\u0434\u0435\u0442\u0435\u0440\u043c\u0438\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435<\/u> \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0435 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0421\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u043e\u043c GCC, \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442\u044b \u0438\u0437 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u0432\u0440\u0443\u0447\u043d\u0443\u044e Makefile(\u043b\u043e\u0432). <\/p>\n<p>\u0421\u043e\u0431\u0440\u0430\u0442\u044c \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0443 \u0441 \u0447\u0430\u0441\u0442\u043e\u0442\u043e\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 100MHz \u0441\u043e c\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044e\u0449\u0438\u043c \u0440\u0430\u0437 \u0432 1ms \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u043c \u0442\u0430\u0439\u043c\u0435\u0440\u043e\u043c SysTick, \u043c\u0438\u0433\u0430\u044e\u0449\u0438\u043c \u0440\u0430\u0437 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443 heart-beat LED(\u043e\u043c) \u0438 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 CLI \u043f\u043e\u0432\u0435\u0440\u0445 UART \u043d\u0430 \u0431\u0438\u0442\u043e\u0432\u043e\u0439 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 460800 Bit\/s.<\/p>\n<p>\u0422\u043e \u0435\u0441\u0442\u044c, \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u0442\u044c \u0442\u043e \u0441\u0430\u043c\u043e\u0435 \u0431\u0430\u0437\u043e\u0432\u043e\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e-\u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u043e\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0430\u044f \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u0430\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0438 \u043e\u0442\u043b\u0430\u0434\u043a\u0430 \u043a\u0430\u043a\u043e\u0433\u043e \u0431\u044b \u0442\u043e \u043d\u0438 \u0431\u044b\u043b\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0435 Artery.<\/p>\n<p>\u0413\u043e\u0432\u043e\u0440\u044f \u043c\u0435\u0442\u0430\u0444\u043e\u0440\u0438\u0447\u043d\u043e, \u043d\u0430\u0434\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c <strong>\u043a\u043e\u0440\u043e\u0431\u043e\u0447\u043a\u0443<\/strong> \u0434\u043b\u044f \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f.<\/p>\n<p>\u0422\u043e \u0435\u0441\u0442\u044c, \u0434\u043e\u0432\u0435\u0441\u0442\u0438 \u043f\u0440\u043e\u0435\u043a\u0442 \u0434\u043e <strong>\u043e\u0440\u0442\u043e\u0434\u043e\u043a\u0441\u0430\u043b\u044c\u043d\u043e \u043a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0444\u043e\u0440\u043c\u044b <\/strong>(Makefile, GCC, GDB, NoRTOS,  HeartBeat-LED, UART-CLI, NVRAM). <\/p>\n<p>\u0412\u043e\u0442 \u0441 \u044d\u0442\u0438\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u043e\u0438\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c.<\/p>\n<figure class=\"\"><\/figure>\n<p><strong>\u0427\u0442\u043e \u043d\u0430\u0434\u043e \u0438\u0437 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438?<\/strong><\/p>\n<p>\u0414\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 AT32F435ZMT7 \u0412\u0430\u043c \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0448\u0435\u0440\u0441\u0442\u0438\u0442\u044c \u0432\u043e\u0442 \u044d\u0442\u0443 \u0441\u0442\u043e\u043f\u043a\u0443 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432.<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"50\" width=\"50\">\n<p align=\"left\"><strong>\u2116<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"345\" width=\"345\">\n<p align=\"left\"><strong>\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"97\" width=\"97\">\n<p align=\"left\"><strong>Ver<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"105\" width=\"105\">\n<p align=\"left\"><strong>pages<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>Vendor<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"50\" width=\"50\">\n<p align=\"left\">1<\/p>\n<\/td>\n<td data-colwidth=\"345\" width=\"345\">\n<p align=\"left\">Eclipse with GCC<\/p>\n<\/td>\n<td data-colwidth=\"97\" width=\"97\">\n<p align=\"left\">2.0.0<\/p>\n<\/td>\n<td data-colwidth=\"105\" width=\"105\">\n<p align=\"left\">23<\/p>\n<\/td>\n<td>\n<p align=\"left\">Artery<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"50\" width=\"50\">\n<p align=\"left\">7<\/p>\n<\/td>\n<td data-colwidth=\"345\" width=\"345\">\n<p align=\"left\">Cortex-M4 Technical Reference Manual<\/p>\n<\/td>\n<td data-colwidth=\"97\" width=\"97\">\n<p align=\"left\">r0p1<\/p>\n<\/td>\n<td data-colwidth=\"105\" width=\"105\">\n<p align=\"left\">121<\/p>\n<\/td>\n<td>\n<p align=\"left\">ARM<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"50\" width=\"50\">\n<p align=\"left\">2<\/p>\n<\/td>\n<td data-colwidth=\"345\" width=\"345\">\n<p align=\"left\">AT32F435\/437 Series Datasheet<\/p>\n<\/td>\n<td data-colwidth=\"97\" width=\"97\">\n<p align=\"left\">2.11<\/p>\n<\/td>\n<td data-colwidth=\"105\" width=\"105\">\n<p align=\"left\">120<\/p>\n<\/td>\n<td>\n<p align=\"left\">Artery<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"50\" width=\"50\">\n<p align=\"left\">3<\/p>\n<\/td>\n<td data-colwidth=\"345\" width=\"345\">\n<p align=\"left\">AT32F435\/437 Series Reference Manual<\/p>\n<\/td>\n<td data-colwidth=\"97\" width=\"97\">\n<p align=\"left\">2.05<\/p>\n<\/td>\n<td data-colwidth=\"105\" width=\"105\">\n<p align=\"left\">714<\/p>\n<\/td>\n<td>\n<p align=\"left\">Artery<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"50\" width=\"50\">\n<p align=\"left\">4<\/p>\n<\/td>\n<td data-colwidth=\"345\" width=\"345\">\n<p align=\"left\">AT-Link User Manual<\/p>\n<\/td>\n<td data-colwidth=\"97\" width=\"97\">\n<p align=\"left\">2.1.2<\/p>\n<\/td>\n<td data-colwidth=\"105\" width=\"105\">\n<p align=\"left\">38<\/p>\n<\/td>\n<td>\n<p align=\"left\">Artery<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"50\" width=\"50\">\n<p align=\"left\">5<\/p>\n<\/td>\n<td data-colwidth=\"345\" width=\"345\">\n<p align=\"left\">ICP Programmer Manual<\/p>\n<\/td>\n<td data-colwidth=\"97\" width=\"97\">\n<p align=\"left\">2.07<\/p>\n<\/td>\n<td data-colwidth=\"105\" width=\"105\">\n<p align=\"left\">50<\/p>\n<\/td>\n<td>\n<p align=\"left\">Artery<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"50\" width=\"50\">\n<p align=\"left\">6<\/p>\n<\/td>\n<td data-colwidth=\"345\" width=\"345\">\n<p align=\"left\">AT-Link Console User Manual<\/p>\n<\/td>\n<td data-colwidth=\"97\" width=\"97\">\n<p align=\"left\">2.08<\/p>\n<\/td>\n<td data-colwidth=\"105\" width=\"105\">\n<p align=\"left\">15<\/p>\n<\/td>\n<td>\n<p align=\"left\">Artery<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p><strong>\u0427\u0442\u043e \u043d\u0430\u0434\u043e \u0438\u0437 \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u044f?<\/strong><\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"63\" width=\"63\">\n<p align=\"left\"><strong>\u2116<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"309\" width=\"309\">\n<p align=\"left\"><strong>\u041e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u0435<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>\u041d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"63\" width=\"63\">\n<p align=\"left\">1<\/p>\n<\/td>\n<td data-colwidth=\"309\" width=\"309\">\n<p align=\"left\">\u042d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u0430\u044f \u043f\u043b\u0430\u0442\u0430 (PCB) \u0441 Artery MCU<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0422\u043e, \u0447\u0442\u043e \u043c\u044b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u0443\u0435\u043c<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"63\" width=\"63\">\n<p align=\"left\">2<\/p>\n<\/td>\n<td data-colwidth=\"309\" width=\"309\">\n<p align=\"left\">\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430\u0442\u043e\u0440\u0430 AT-Link+<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u0435\u0440\u0435\u0445\u043e\u0434\u043d\u0438\u043a \u0441 USB \u043d\u0430 SWD<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"63\" width=\"63\">\n<p align=\"left\">3<\/p>\n<\/td>\n<td data-colwidth=\"309\" width=\"309\">\n<p align=\"left\">\u041a\u0430\u0431\u0435\u043b\u044c USB-USB-C<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u044c NetTop \u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430\u0442\u043e\u0440<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"63\" width=\"63\">\n<p align=\"left\">4<\/p>\n<\/td>\n<td data-colwidth=\"309\" width=\"309\">\n<p align=\"left\">\u041f\u0435\u0440\u0435\u043c\u044b\u0447\u043a\u0438 \u0433\u043d\u0435\u0437\u0434\u043e-\u0433\u043d\u0435\u0437\u0434\u043e<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430\u0442\u043e\u0440 \u0438 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u0443\u044e \u043f\u043b\u0430\u0442\u0443<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"63\" width=\"63\">\n<p align=\"left\">5<\/p>\n<\/td>\n<td data-colwidth=\"309\" width=\"309\">\n<p align=\"left\">NetTop c Windows10<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0414\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 ToolChain(\u0430) cross \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>\u0424\u0430\u0437\u0430 1: \u0423c\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0422\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0433\u043e \u0420\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0430 Eclipse <\/h3>\n<p>\u042f \u043d\u0435 \u043d\u0430\u0441\u0442\u0430\u0438\u0432\u0430\u044e \u043d\u0430 Eclipse. \u041a\u043e\u0433\u0434\u0430 \u0432\u044b \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442\u0435 \u0438\u0437 make \u0442\u043e \u0432\u0430\u043c \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u043a\u0430\u043a\u043e\u0439 \u0442\u0430\u043c \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0439 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440. \u041b\u0438\u0447\u043d\u043e \u043c\u043d\u0435 \u0438\u043c\u043f\u043e\u043d\u0438\u0440\u0443\u0435\u0442 \u0435\u0433\u043e \u043f\u043e\u0434\u0441\u0432\u0435\u0442\u043a\u0430 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0430 \u0432 Eclipse \u0438 \u0433\u043e\u0440\u044f\u0447\u0438\u0435 \u043a\u043b\u0430\u0432\u0438\u0448\u0438. \u0422\u0430\u043a\u0436\u0435 \u043f\u0435\u0440\u0435\u0434 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u043e\u0439 Eclipse \u043d\u0430\u0434\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0443\u044e \u043c\u0430\u0448\u0438\u043d\u0443 Java \u0434\u043b\u044f \u0432\u0430\u0448\u0435\u0433\u043e PC. \u0421\u0430\u043c Eclipse IDE for C\/C++ Developers \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c <a href=\"https:\/\/www.eclipse.org\/downloads\/packages\/release\/2023-12\/r\/eclipse-ide-cc-developers\" rel=\"noopener noreferrer nofollow\"><u>\u043e\u0442\u0441\u044e\u0434\u0430<\/u><\/a>.<\/p>\n<p>\u041c\u043d\u0435 Eclipse \u043d\u0443\u0436\u0435\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u0430\u043a \u043f\u0435\u0447\u0430\u0442\u0430\u044e\u0449\u0430\u044f \u043c\u0430\u0448\u0438\u043d\u043a\u0430. \u042f \u0434\u0430\u0436\u0435 \u043d\u0435 \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u044e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u043b\u0430\u0433\u0438\u043d\u044b Eclipse.<\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 Eclipse \u0436\u0435\u043b\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u0440\u0430\u0437\u0443 \u0437\u0430\u0439\u0442\u0438 \u0432 Window->Preferences->General->Editors->Text Editors \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0435\u043d\u0438\u044f \u043f\u043e \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u043c\u0443 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0443.<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u0421\u0440\u0430\u0437\u0443 \u0445\u043e\u0447\u0443 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0432 \u044d\u0442\u043e\u043c \u0442\u0435\u043a\u0441\u0442\u0435 \u044f \u0431\u0443\u0434\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c Eclipse \u0431\u0435\u0437 \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432 \u0434\u043b\u044f ARM GCC, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u043c\u0435\u0435\u0442 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c makefile(\u044b)<\/p>\n<p>\u0415\u0449\u0451 Eclipse \u043c\u043d\u0435 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u0434\u043b\u044f \u043f\u043e\u0448\u0430\u0433\u043e\u0432\u043e\u0439 \u043e\u0442\u043b\u0430\u0434\u043a\u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430, \u0442\u0430\u043a \u043a\u0430\u043a Eclipse  \u0441\u043f\u043e\u0441\u043e\u0431\u0435\u043d \u0430\u0441\u0441\u043e\u0446\u0438\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0441 GDB \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u043c. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043f\u0440\u043e \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c <a href=\"https:\/\/habr.com\/ru\/articles\/682498\/\" rel=\"noopener noreferrer nofollow\"><u>\u0442\u0443\u0442<\/u><\/a>.<\/p>\n<h3>\u0424\u0430\u0437\u0430 2: \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 GCC<\/h3>\n<p>\u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 GCC \u044d\u0442\u043e \u043a\u043e\u043d\u0441\u043e\u043b\u044c\u043d\u0430\u044f \u0443\u0442\u0438\u043b\u0438\u0442\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442 \u043a\u043e\u0434 \u043d\u0430 \u0421\u0438 \u0432 \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0439 \u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u043a\u043e\u0434 \u0434\u043b\u044f \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u043c\u0438\u043a\u0440\u043e\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430. \u041c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 2016 \u0433\u043e\u0434\u0430 <a href=\"https:\/\/launchpad.net\/gcc-arm-embedded\/+download\" rel=\"noopener noreferrer nofollow\"><u>\u0442\u0443\u0442<\/u><\/a>.<\/p>\n<p>\u0418\u043b\u0438 \u043b\u0443\u0447\u0448\u0435 \u0432\u0437\u044f\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u043d\u043e\u0432\u044b\u0439 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0441 <a href=\"https:\/\/developer.arm.com\/downloads\/-\/gnu-rm#:~:text=The%20GNU%20Arm%20Embedded%20Toolchain,Arm%20Cortex-R%20processor%20families\" rel=\"noopener noreferrer nofollow\"><u>\u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u0430\u0439\u0442\u0430 ARM<\/u><\/a>.<\/p>\n<p>\u041e\u0434\u043d\u0430\u043a\u043e \u0442\u0430\u043c \u0432\u0430\u043c \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0441\u0430\u0439\u0442\u0435, \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u0442\u044c \u043b\u043e\u0433\u0438\u043d \u0438 \u043f\u0430\u0440\u043e\u043b\u044c.<\/p>\n<p>\u0412\u0435\u0440\u043e\u044f\u0442\u043d\u043e, \u0447\u0442\u043e \u0443 \u0412\u0430\u0441 \u043d\u0430 LapTop(\u0435) \u0443\u0436\u0435 \u0434\u0430\u0432\u043d\u044b\u043c-\u0434\u0430\u0432\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d GCC \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0434\u043b\u044f ARM \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043e\u0432. \u0412\u0435\u0440\u043e\u044f\u0442\u043d\u043e, \u0447\u0442\u043e \u0412\u044b \u0443\u0436\u0435 \u0438 \u0440\u0430\u043d\u044c\u0448\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u043c\u0438\u043a\u0440\u043e\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u044b ARM Cortex-M \u043e\u0442 \u0442\u0430\u043a\u0438\u0445 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u0439 \u043a\u0430\u043a STM32, Nordic Semiconductor, \u041f\u041a\u041a \u041c\u0438\u043b\u0430\u043d\u0434\u0440, \u0410\u041e \u041d\u041f\u0426 \u042d\u041b\u0412\u0418\u0421, \u041d\u0418\u0418\u042d\u0422 \u0438\u043b\u0438 TI. \u0418 \u0443 \u0412\u0430\u0441 \u0443\u0436\u0435 \u043d\u0430 \u0436\u0435\u0441\u0442\u043a\u043e\u043c \u0434\u0438\u0441\u043a\u0435 \u043e\u0441\u0442\u0430\u043b\u0441\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 arm-none-eabi-gcc. \u0427\u0442\u043e\u0431\u044b \u044d\u0442\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043d\u0430\u0434\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u044c cmd \u0438 \u043d\u0430\u0431\u0440\u0430\u0442\u044c: <\/p>\n<p><strong>arm-none-eabi-gcc \u2013v<\/strong><\/p>\n<pre><code class=\"xml\">C:\\Users\\user>arm-none-eabi-gcc -v Using built-in specs. COLLECT_GCC=arm-none-eabi-gcc COLLECT_LTO_WRAPPER=c:\/program\\ files\\ (x86)\/gnu\\ arm\\ embedded\\ toolchain\/10\\ 2021.10\/bin\/..\/lib\/gcc\/arm-none-eabi\/10.3.1\/lto-wrapper.exe Target: arm-none-eabi Configured with: \/mnt\/workspace\/workspace\/GCC-10-pipeline\/jenkins-GCC-10-pipeline-338_20211018_1634516203\/src\/gcc\/configure --build=x86_64-linux-gnu --host=i686-w64-mingw32 --target=arm-none-eabi --prefix=\/mnt\/workspace\/workspace\/GCC-10-pipeline\/jenkins-GCC-10-pipeline-338_20211018_1634516203\/install-mingw --libexecdir=\/mnt\/workspace\/workspace\/GCC-10-pipeline\/jenkins-GCC-10-pipeline-338_20211018_1634516203\/install-mingw\/lib --infodir=\/mnt\/workspace\/workspace\/GCC-10-pipeline\/jenkins-GCC-10-pipeline-338_20211018_1634516203\/install-mingw\/share\/doc\/gcc-arm-none-eabi\/info --mandir=\/mnt\/workspace\/workspace\/GCC-10-pipeline\/jenkins-GCC-10-pipeline-338_20211018_1634516203\/install-mingw\/share\/doc\/gcc-arm-none-eabi\/man --htmldir=\/mnt\/workspace\/workspace\/GCC-10-pipeline\/jenkins-GCC-10-pipeline-338_20211018_1634516203\/install-mingw\/share\/doc\/gcc-arm-none-eabi\/html --pdfdir=\/mnt\/workspace\/workspace\/GCC-10-pipeline\/jenkins-GCC-10-pipeline-338_20211018_1634516203\/install-mingw\/share\/doc\/gcc-arm-none-eabi\/pdf --enable-languages=c,c++ --enable-mingw-wildcard --disable-decimal-float --disable-libffi --disable-libgomp --disable-libmudflap --disable-libquadmath --disable-libssp --disable-libstdcxx-pch --disable-nls --disable-shared --disable-threads --disable-tls --with-gnu-as --with-gnu-ld --with-headers=yes --with-newlib --with-python-dir=share\/gcc-arm-none-eabi --with-sysroot=\/mnt\/workspace\/workspace\/GCC-10-pipeline\/jenkins-GCC-10-pipeline-338_20211018_1634516203\/install-mingw\/arm-none-eabi --with-libiconv-prefix=\/mnt\/workspace\/workspace\/GCC-10-pipeline\/jenkins-GCC-10-pipeline-338_20211018_1634516203\/build-mingw\/host-libs\/usr --with-gmp=\/mnt\/workspace\/workspace\/GCC-10-pipeline\/jenkins-GCC-10-pipeline-338_20211018_1634516203\/build-mingw\/host-libs\/usr --with-mpfr=\/mnt\/workspace\/workspace\/GCC-10-pipeline\/jenkins-GCC-10-pipeline-338_20211018_1634516203\/build-mingw\/host-libs\/usr --with-mpc=\/mnt\/workspace\/workspace\/GCC-10-pipeline\/jenkins-GCC-10-pipeline-338_20211018_1634516203\/build-mingw\/host-libs\/usr --with-isl=\/mnt\/workspace\/workspace\/GCC-10-pipeline\/jenkins-GCC-10-pipeline-338_20211018_1634516203\/build-mingw\/host-libs\/usr --with-libelf=\/mnt\/workspace\/workspace\/GCC-10-pipeline\/jenkins-GCC-10-pipeline-338_20211018_1634516203\/build-mingw\/host-libs\/usr --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm' --with-pkgversion='GNU Arm Embedded Toolchain 10.3-2021.10' --with-multilib-list=rmprofile,aprofile Thread model: single Supported LTO compression algorithms: zlib gcc version 10.3.1 20210824 (release) (GNU Arm Embedded Toolchain 10.3-2021.10)<\/code><\/pre>\n<p>\u041d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u043d\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e, \u0441\u0430\u043c\u044b\u0439 \u0441\u0432\u0435\u0436\u0438\u0439 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 ARM-GCC \u044d\u0442\u043e \u043e\u0442 2021 \u0433\u043e\u0434\u0430. \u0412 \u0441\u043e\u0441\u0442\u0430\u0432 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 \u0432\u0445\u043e\u0434\u0438\u0442 \u0432\u043e\u0442 \u044d\u0442\u043e\u0442 \u043d\u0430\u0431\u043e\u0440 \u0443\u0442\u0438\u043b\u0438\u0442<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"66\" width=\"66\">\n<p align=\"left\"><strong>\u2116<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"176\" width=\"176\">\n<p align=\"left\"><strong>\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0443\u0442\u0438\u043b\u0438\u0442\u044b<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>\u041d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0443\u0442\u0438\u043b\u0438\u0442\u044b<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"66\" width=\"66\">\n<p align=\"left\">1<\/p>\n<\/td>\n<td data-colwidth=\"176\" width=\"176\">\n<p align=\"left\">addr2line<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442 \u0430\u0434\u0440\u0435\u0441 \u0438\u0437 flash \u0432 \u0441\u0442\u0440\u043e\u0447\u043a\u0443 \u043a\u043e\u0434\u0430 \u0432 \u0444\u0430\u0439\u043b\u0435<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"66\" width=\"66\">\n<p align=\"left\">2<\/p>\n<\/td>\n<td data-colwidth=\"176\" width=\"176\">\n<p align=\"left\">cpp<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0423\u0442\u0438\u043b\u0438\u0442\u0430 \u0432\u0441\u0442\u0430\u0432\u043a\u0438 \u0438 \u0437\u0430\u043c\u0435\u043d\u044b \u0442\u0435\u043a\u0441\u0442\u0430  <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"66\" width=\"66\">\n<p align=\"left\">3<\/p>\n<\/td>\n<td data-colwidth=\"176\" width=\"176\">\n<p align=\"left\">gcc<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u044f\u0437\u044b\u043a\u0430 \u0421\u0438<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"66\" width=\"66\">\n<p align=\"left\">4<\/p>\n<\/td>\n<td data-colwidth=\"176\" width=\"176\">\n<p align=\"left\">ar<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0430\u0440\u0445\u0438\u0432\u0430\u0442\u043e\u0440<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"66\" width=\"66\">\n<p align=\"left\">5<\/p>\n<\/td>\n<td data-colwidth=\"176\" width=\"176\">\n<p align=\"left\">as<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"66\" width=\"66\">\n<p align=\"left\">6<\/p>\n<\/td>\n<td data-colwidth=\"176\" width=\"176\">\n<p align=\"left\">elfedit<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043f\u0430\u0440\u0441\u0435\u0440 elf \u0444\u0430\u0439\u043b\u043e\u0432<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"66\" width=\"66\">\n<p align=\"left\">7<\/p>\n<\/td>\n<td data-colwidth=\"176\" width=\"176\">\n<p align=\"left\">gdb<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"66\" width=\"66\">\n<p align=\"left\">8<\/p>\n<\/td>\n<td data-colwidth=\"176\" width=\"176\">\n<p align=\"left\">ld<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u0449\u0438\u043a<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"66\" width=\"66\">\n<p align=\"left\">9<\/p>\n<\/td>\n<td data-colwidth=\"176\" width=\"176\">\n<p align=\"left\">nm<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0441\u043f\u0438\u0441\u043e\u043a \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u0432  <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"66\" width=\"66\">\n<p align=\"left\">10<\/p>\n<\/td>\n<td data-colwidth=\"176\" width=\"176\">\n<p align=\"left\">objcopy<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c elf \u0444\u0430\u0439\u043b\u043e\u0432 \u0432 bin hex<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"66\" width=\"66\">\n<p align=\"left\">11<\/p>\n<\/td>\n<td data-colwidth=\"176\" width=\"176\">\n<p align=\"left\">objdump<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043f\u0440\u043e \u043e\u0431\u044c\u0435\u043a\u0442\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b (*.o)<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"66\" width=\"66\">\n<p align=\"left\">12<\/p>\n<\/td>\n<td data-colwidth=\"176\" width=\"176\">\n<p align=\"left\">size<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0440\u0430\u0437\u043c\u0435\u0440 \u0441\u0435\u043a\u0446\u0438\u0439 \u0432 \u0431\u0438\u043d\u0430\u0440\u043d\u043e\u043c \u0444\u0430\u0439\u043b\u0435<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"66\" width=\"66\">\n<p align=\"left\">13<\/p>\n<\/td>\n<td data-colwidth=\"176\" width=\"176\">\n<p align=\"left\">strings<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043f\u0435\u0447\u0430\u0442\u0430\u0435\u043c\u044b\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u0438\u0437 \u0431\u0438\u043d\u0430\u0440\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"66\" width=\"66\">\n<p align=\"left\">14<\/p>\n<\/td>\n<td data-colwidth=\"176\" width=\"176\">\n<p align=\"left\">strips<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0443\u0434\u0430\u043b\u044f\u0435\u0442 \u0441\u0438\u043c\u0432\u043e\u043b\u044b \u0438 \u0441\u0435\u043a\u0446\u0438\u0438 \u0438\u0437 \u0444\u0430\u0439\u043b\u0430<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>\u0424\u0430\u0437\u0430 3: \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0423\u0442\u0438\u043b\u0438\u0442\u044b \u0421\u0431\u043e\u0440\u043a\u0438 (Build Tools)<\/h3>\n<p>\u0414\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c \u043d\u0443\u0436\u043d\u044b \u0432\u0441\u044f\u0447\u0435\u0441\u043a\u0438\u0435 \u043f\u0440\u0438\u043a\u043b\u0430\u0434\u043d\u044b\u0435 \u0443\u0442\u0438\u043b\u0438\u0442\u044b \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438. \u0412\u043e\u0442 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0438\u0445 \u043f\u0435\u0440\u0435\u0447\u0435\u043d\u044c:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"73\" width=\"73\">\n<p align=\"left\"><strong>\u2116<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"162\" width=\"162\">\n<p align=\"left\"><strong>\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0443\u0442\u0438\u043b\u0438\u0442\u044b<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>\u041d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"73\" width=\"73\">\n<p align=\"left\">1<\/p>\n<\/td>\n<td data-colwidth=\"162\" width=\"162\">\n<p align=\"left\">make<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440 \u0443\u0442\u0438\u043b\u0438\u0442 \u0441\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u0441\u043a\u0440\u0438\u043f\u0442\u0443 \u0432 Makefile<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"73\" width=\"73\">\n<p align=\"left\">2<\/p>\n<\/td>\n<td data-colwidth=\"162\" width=\"162\">\n<p align=\"left\">rm<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0444\u0430\u0439\u043b \u0438\u043b\u0438 \u043f\u0430\u043f\u043a\u0443<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"73\" width=\"73\">\n<p align=\"left\">3<\/p>\n<\/td>\n<td data-colwidth=\"162\" width=\"162\">\n<p align=\"left\">cd<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u0432 \u0434\u0440\u0443\u0433\u0443\u044e \u043f\u0430\u043f\u043a\u0443<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"73\" width=\"73\">\n<p align=\"left\">4<\/p>\n<\/td>\n<td data-colwidth=\"162\" width=\"162\">\n<p align=\"left\">mkdir<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u0430\u043f\u043a\u0443<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"73\" width=\"73\">\n<p align=\"left\">5<\/p>\n<\/td>\n<td data-colwidth=\"162\" width=\"162\">\n<p align=\"left\">tee<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0440\u0430\u0437\u0432\u0435\u0442\u0432\u043b\u0435\u043d\u0438\u0435 \u043b\u043e\u0433\u0430 \u043a\u043e\u043d\u0441\u043e\u043b\u044c\u043d\u043e\u0439 \u0443\u0442\u0438\u043b\u0438\u0442\u044b \u0432 \u0444\u0430\u0439\u043b \u0438 stdout <\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0412\u0441\u0435 \u043e\u043d\u0438 \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043e\u0434\u043d\u0438\u043c \u0442\u0435\u0440\u043c\u0438\u043d\u043e\u043c: <strong>Build Tools<\/strong>. \u0418\u0445 \u043c\u043e\u0436\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0440\u0430\u0437\u043e\u043c \u0432\u043e\u0442 \u043f\u043e \u044d\u0442\u043e\u0439 <a href=\"https:\/\/sourceforge.net\/projects\/gnuarmeclipse\/files\/Build%20Tools\/\" rel=\"noopener noreferrer nofollow\"><u>\u0441\u0441\u044b\u043b\u043a\u0435<\/u><\/a>.<\/p>\n<p>\u041f\u0443\u0442\u044c \u043a Build Tools \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043f\u0440\u043e\u043f\u0438\u0441\u0430\u0442\u044c \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e PATH. \u0412\u043e\u043e\u0431\u0449\u0435 \u043f\u0443\u0442\u0438 \u043a\u043e \u0432\u0441\u0435\u043c *.exe \u043d\u0430\u0434\u043e \u043f\u0440\u043e\u043f\u0438\u0441\u0430\u0442\u044c \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e PATH. \u0422\u043e\u0433\u0434\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0441\u043c\u043e\u0436\u0435\u0442 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c \u0438\u0445 \u0431\u0435\u0437 \u044f\u0432\u043d\u043e\u0433\u043e \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u043f\u043e\u043b\u043d\u043e\u0433\u043e \u043f\u0443\u0442\u0438 \u043d\u0430 \u0436\u0435\u0441\u0442\u043a\u043e\u043c \u0434\u0438\u0441\u043a\u0435.<\/p>\n<h3>\u0424\u0430\u0437\u0430 5: \u0421\u0431\u043e\u0440\u043a\u0430 \u041f\u0440\u043e\u0448\u0438\u0432\u043a\u0438<\/h3>\n<p>\u041a\u0430\u0436\u0434\u044b\u0439 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432 \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u043a\u043e\u0434\u0430 \u0434\u043b\u044f \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0446\u0438\u0438 \u043e\u0442 \u043f\u043e\u0434\u0441\u0438\u0441\u0442\u0435\u043c \u043d\u0430 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0435. \u0422\u0430\u043a\u043e\u0439 \u043a\u043e\u0434 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f MCAL\/HAL\/BSP \u0438 \u0442. \u043f.<\/p>\n<p>Artery \u043d\u0435 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435. \u0421\u043a\u0430\u0447\u0430\u0442\u044c \u0444\u0438\u0440\u043c\u0435\u043d\u043d\u044b\u0439 MCAL \u043c\u043e\u0436\u043d\u043e \u0441 \u0441\u0430\u0439\u0442\u0430 <a href=\"https:\/\/www.arterytek.com\/en\/product\/AT32F435.jsp\" rel=\"noopener noreferrer nofollow\">https:\/\/www.arterytek.com\/en\/product\/AT32F435.jsp<\/a><\/p>\n<p>\u041d\u0430\u0434\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u0430\u0440\u0445\u0438\u0432 \u0441 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c <strong>AT32F435_437_Firmware_Library_EN_V2.1.5.zip<\/strong><\/p>\n<p>\u0412\u043e\u0442 \u0442\u0443\u0442 \u043b\u0435\u0436\u0438\u0442 MCAL \u0434\u043b\u044f GPIO, ADC, CAN, DMA,DAC, FLASH, I2C, SPI, UART, USB \u0438 \u0442.\u043f.<\/p>\n<p>AT32F435_437_Firmware_Library_EN_V2.1.5\\libraries\\drivers\\src<\/p>\n<p>\u0422\u0430\u043c \u0436\u0435 \u0435\u0441\u0442\u044c Third-Paty \u043a\u043e\u0434 \u0434\u043b\u044f CMSIS, FreeRTOS, LwIP, FatFS, Light and Versatile Graphics Library. \u041f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432. <\/p>\n<p>\u041f\u0430\u043f\u043a\u0430 AT32F435_437_Firmware_Library_EN_V2.1.5 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0438 \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u0443\u0441\u0442\u0430\u0442\u044c \u0438\u0441\u043a\u0430\u0442\u044c \u0442\u0430\u043c \u0447\u0442\u043e-\u0442\u043e \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0435 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u0443\u043b\u044c\u0442\u043e\u0432\u0443\u044e \u0443\u0442\u0438\u043b\u0438\u0442\u0443 <strong>grep<\/strong>. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432\u043e\u0442 \u0442\u0443\u0442 \u044f \u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u0447\u043a\u043e\u0439 <\/p>\n<pre><code>grep -rn at32_board_init | grep \"\\.c\" | grep -v main<\/code><\/pre>\n<p>\u043d\u0430\u0448\u0435\u043b \u0442\u043e \u0441\u0430\u043c\u043e\u0435 \u043c\u0435\u0441\u0442\u043e, \u0433\u0434\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f <strong>at32_board_init()<\/strong><\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u0415\u0441\u0442\u044c \u043e\u0447\u0435\u043d\u044c \u0432\u0430\u0436\u043d\u044b\u0439 \u0444\u0430\u0439\u043b <strong>core_cm4.h<\/strong>. \u0412 \u0444\u0430\u0439\u043b\u0435 core_cm4.h, \u043d\u0435 \u043c\u043d\u043e\u0433\u043e \u043d\u0435 \u043c\u0430\u043b\u043e, \u0430\u0436 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043c\u0438\u043a\u0440\u043e\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043d\u043e\u0433\u043e \u044f\u0434\u0440\u0430 ARM Cortex-M4! \u0412\u043e\u0442 \u043f\u043e\u043b\u043d\u044b\u0439 \u043f\u0443\u0442\u044c:<br \/>AT32F435_437_Firmware_Library_EN_V2.1.5\\libraries\\cmsis\\cm4\\core_support\\core_cm4.h<\/p>\n<p>\u0412\u043d\u0443\u0442\u0440\u0438 \u0444\u0430\u0439\u043b\u0430 <strong>core_cm4.h<\/strong> \u043c\u043e\u0436\u043d\u043e<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-367776","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/367776","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=367776"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/367776\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=367776"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=367776"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=367776"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}