{"id":417195,"date":"2024-06-30T01:24:38","date_gmt":"2024-06-30T01:24:38","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=417195"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=417195","title":{"rendered":"<span>\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 \u0441\u0435\u0440\u0432\u043e\u043f\u0440\u0438\u0432\u043e\u0434\u043e\u0432 MC50. \u0420\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u043e\u0433\u043e \u041f\u041e<\/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\/d72\/758\/56c\/d7275856ce5bf80e317d1b44a78880eb.png\" width=\"780\" height=\"389\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d72\/758\/56c\/d7275856ce5bf80e317d1b44a78880eb.png\"\/><\/figure>\n<p>\u0421\u0445\u0435\u043c\u0430 \u0438 \u043f\u043b\u0430\u0442\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 &#8212;<a href=\"https:\/\/habr.com\/ru\/articles\/707738\/\" rel=\"noopener noreferrer nofollow\"><u> \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435<\/u><\/a>.<br \/>\u041f\u0435\u0440\u0432\u044b\u0435 \u0448\u0430\u0433\u0438 \u043f\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 \u0431\u044b\u043b\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u044b\u00a0 <a href=\"https:\/\/habr.com\/ru\/articles\/724586\/\" rel=\"noopener noreferrer nofollow\"><u>\u0437\u0434\u0435\u0441\u044c<\/u><\/a>. \u0410 \u0442\u0435\u043f\u0435\u0440\u044c \u0437\u0430\u0439\u043c\u0451\u043c\u0441\u044f \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u043c \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u0435\u043c. \u041f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u043e\u0435 \u041f\u041e &#8212; \u044d\u0442\u043e \u0442\u043e, \u0447\u0442\u043e \u043f\u0440\u0438\u0434\u0430\u0451\u0442 \u043d\u0430\u0448\u0435\u043c\u0443 \u0434\u0435\u0432\u0430\u0439\u0441\u0443 \u043e\u0441\u043d\u043e\u0432\u043d\u0443\u044e \u043c\u0430\u0441\u0441\u0443 \u0444\u0438\u0447\u0435\u0439. RTOS \u0434\u043b\u044f \u0432\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c \u043f\u0440\u0438\u043e\u0431\u0440\u0435\u0442\u0430\u044e\u0442 \u043e\u0441\u043e\u0431\u0443\u044e \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u0441\u0442\u044c \u043a\u043e\u0433\u0434\u0430 \u0441\u043e\u043f\u0440\u043e\u0432\u043e\u0436\u0434\u0430\u044e\u0442\u0441\u044f \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u043c \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u043c \u0441\u043e\u0444\u0442\u043e\u043c.   <\/p>\n<p>RTOS <a href=\"https:\/\/habr.com\/ru\/articles\/724586\/\" rel=\"noopener noreferrer nofollow\"><u>\u0443\u0436\u0435 \u043d\u0430\u043c\u0438 \u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0430 <\/u><\/a>, \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u043c \u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u0443\u044e \u043a \u0441\u0431\u043e\u044f\u043c \u0444\u0430\u0439\u043b\u043e\u0432\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443 exFAT, \u0441\u0442\u0435\u043a TCP\/IP \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u043f\u0440\u0438\u043a\u043b\u0430\u0434\u043d\u044b\u043c\u0438\u00a0 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430\u043c\u0438 HTTP, MQTT, SNTP, DNS, mDNS, FTP, Telnet , \u0441\u0442\u0435\u043a USB \u0432 \u0440\u0435\u0436\u0438\u043c\u0430\u0445 \u0434\u0435\u0432\u0430\u0439\u0441\u0430 \u0438 \u0445\u043e\u0441\u0442\u0430 \u0441 \u043a\u043b\u0430\u0441\u0441\u0430\u043c\u0438 CDC ACM, CDC ECM, RNDIS, Storage, HID, \u0434\u0432\u0438\u0436\u043e\u043a \u043b\u043e\u0433\u0433\u0435\u0440\u0430, \u0434\u0432\u0438\u0436\u043e\u043a \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u043d\u0430 \u0431\u0430\u0437\u0435 JSON \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0438, \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u044b\u0435\u00a0 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u044b, \u0434\u0432\u0438\u0436\u043e\u043a FreeMaster.\u00a0\u00a0\u00a0\u00a0<\/p>\n<p>\u0421\u0442\u0435\u043a \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u0432 TCP\/IP \u043d\u0430\u043c \u0437\u0434\u0435\u0441\u044c \u043d\u0443\u0436\u0435\u043d, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043e\u043d, \u0432\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0431\u043b\u0435\u0433\u0447\u0430\u0435\u0442 \u0434\u0438\u0441\u0442\u0430\u043d\u0446\u0438\u043e\u043d\u043d\u0443\u044e \u043e\u0442\u043b\u0430\u0434\u043a\u0443 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430. \u0412\u043e-\u0432\u0442\u043e\u0440\u044b\u0445, \u0441\u0435\u0442\u044c \u0443\u043f\u0440\u043e\u0449\u0430\u0435\u0442 \u0433\u0440\u0443\u043f\u043f\u043e\u0432\u043e\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0438 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0432 \u043e\u0434\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f. \u0418 \u0432-\u0442\u0440\u0435\u0442\u044c\u0438\u0445, \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0443\u043f\u0440\u043e\u0449\u0430\u0435\u0442\u0441\u044f \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0432 \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0435\u0435 \u041f\u041e \u0434\u043b\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u0435\u043c\u00a0 \u0442\u0430\u043a\u043e\u0435 \u043a\u0430\u043a: <a href=\"https:\/\/www.eclipse.org\/4diac\/index.php\" rel=\"noopener noreferrer nofollow\"><u>Eclipse 4diac<\/u><\/a>, <a href=\"https:\/\/se.mathworks.com\/products.html?s_tid=gn_ps\" rel=\"noopener noreferrer nofollow\"><u>MATLAB<\/u><\/a>, <a href=\"https:\/\/nodered.org\/\" rel=\"noopener noreferrer nofollow\"><u>Node-RED<\/u><\/a>, <a href=\"https:\/\/www.openhab.org\/docs\/\" rel=\"noopener noreferrer nofollow\"><u>openHAB<\/u><\/a>\u00a0 \u0438 \u0442.\u043f. \u0415\u0449\u0435 \u043e\u0434\u043d\u0430 \u043d\u0435\u043e\u0447\u0435\u0432\u0438\u0434\u043d\u0430\u044f \u043f\u0440\u0438\u0447\u0438\u043d\u0430 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043d\u0438\u043a USB-Ethernet \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u0433\u0430\u043b\u044c\u0432\u0430\u043d\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0440\u0430\u0437\u0432\u044f\u0437\u043a\u0443. \u0418 \u044d\u0442\u0430 \u0440\u0430\u0437\u0432\u044f\u0437\u043a\u0430 \u0435\u0441\u0442\u044c \u0432 \u043b\u044e\u0431\u043e\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435 \u0441 \u0440\u0430\u0437\u044a\u0451\u043c\u043e\u043c Ethernet. \u041f\u0440\u043e \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044e \u0442\u0430\u043a\u043e\u0433\u043e \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043d\u0438\u043a\u0430 \u0432 Azure RTOS \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e <a href=\"https:\/\/habr.com\/ru\/articles\/676120\/\" rel=\"noopener noreferrer nofollow\"><u>\u0437\u0434\u0435\u0441\u044c<\/u><\/a>.<\/p>\n<p>\u041d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043f\u043e\u0447\u0442\u0438 \u0432\u0441\u0435 \u043d\u0443\u0436\u043d\u044b\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u0432\u044b\u0431\u0438\u0440\u0430\u044e\u0442\u0441\u044f \u0432 \u043e\u043a\u043d\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 <a href=\"https:\/\/www.renesas.com\/us\/en\/products\/microcontrollers-microprocessors\/renesas-synergy-platform-mcus\" rel=\"noopener noreferrer nofollow\"><u>Synergy Software Package (SSP)<\/u><\/a> \u0432 IDE <a href=\"https:\/\/www.renesas.com\/us\/en\/software-tool\/e-studio-renesas-synergy\" rel=\"noopener noreferrer nofollow\"><u>e\u00b2 studio<\/u><\/a><\/p>\n<p>\u041a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043c\u043d\u043e\u0433\u043e. \u0414\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043d\u0430\u0434\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0442\u044c \u0440\u0443\u0442\u0438\u043d\u043d\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u043f\u043e \u0432\u044b\u0431\u043e\u0440\u0443 \u043e\u043f\u0446\u0438\u0439, \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043d\u043e\u043c\u0435\u0440\u043e\u0432 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439, \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u043e\u0432 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439, \u043d\u043e\u043c\u0435\u0440\u043e\u0432 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u044b\u0445 \u043a\u0430\u043d\u0430\u043b\u043e\u0432 \u0438 \u0442\u0438\u043f\u043e\u0432 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u044b\u0445 \u043a\u0430\u043d\u0430\u043b\u043e\u0432, \u0440\u0430\u0437\u0440\u0443\u043b\u0438\u0432\u0430\u0442\u044c \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u044b \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u043e\u0432 \u0438 \u043d\u0430\u0437\u043d\u0430\u0447\u0430\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u0441\u043b\u0443\u0436\u0435\u0431\u043d\u044b\u0445 \u0431\u0443\u0444\u0435\u0440\u043e\u0432 \u0438 \u0441\u0442\u0435\u043a\u043e\u0432.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/79e\/54a\/8a9\/79e54a8a97b6b7861bcf22f1e76251d7.png\" alt=\"\u041e\u043a\u043d\u043e \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u043e\u0433\u043e \u041f\u041e \u0432 SSP\" title=\"\u041e\u043a\u043d\u043e \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u043e\u0433\u043e \u041f\u041e \u0432 SSP\" width=\"1475\" height=\"941\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/79e\/54a\/8a9\/79e54a8a97b6b7861bcf22f1e76251d7.png\"\/><\/p>\n<div><figcaption>\u041e\u043a\u043d\u043e \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u043e\u0433\u043e \u041f\u041e \u0432 SSP<\/figcaption><\/div>\n<\/figure>\n<p>\u0420\u0430\u0431\u043e\u0442\u0430, \u043d\u0430\u0434\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0442\u044f\u0436\u0435\u043b\u0435\u0439\u0448\u0430\u044f. \u041d\u0430 \u0432\u0441\u043a\u0438\u0434\u043a\u0443 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043d\u0435 \u043e\u0434\u0438\u043d \u043c\u0435\u0441\u044f\u0446 \u0447\u0442\u043e\u0431\u044b \u043e\u0432\u043b\u0430\u0434\u0435\u0442\u044c \u0432\u0441\u0435\u043c\u0438 \u0445\u0438\u0442\u0440\u043e\u0441\u0442\u044f\u043c\u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432 e2studio \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0440\u0430\u0431\u043e\u0447\u0438\u0445 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432, \u0435\u0441\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u043b\u043d\u044b\u0439 \u043d\u0430\u0431\u043e\u0440 \u0441\u0442\u0435\u043a\u043e\u0432 \u0438\u0437 SSP \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435.\u00a0<\/p>\n<p>\u041d\u043e, \u043a \u0441\u0447\u0430\u0441\u0442\u044c\u044e, \u044f \u0432\u0441\u044e \u044d\u0442\u0443 \u0440\u0430\u0431\u043e\u0442\u0443 \u0443\u0436\u0435 \u043f\u0440\u043e\u0434\u0435\u043b\u0430\u043b \u0438 \u0442\u0443\u0442 \u0432\u044b\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u044e \u0433\u043e\u0442\u043e\u0432\u044b\u0439 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u0441\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u0439 \u0438\u0437 \u0442\u043e\u0433\u043e \u0447\u0442\u043e \u0435\u0441\u0442\u044c \u0432 SSP \u0438 \u0442\u043e\u0433\u043e \u0447\u0442\u043e \u0435\u0441\u0442\u044c \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u0430\u0440\u0438\u0438 Azure RTOS.\u00a0\u00a0\u00a0<\/p>\n<p>\u0418\u0442\u0430\u043a, \u043f\u043e\u0441\u043b\u0435 \u0430\u0432\u0442\u043e \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432 \u0438\u0437 SSP \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c 2125 \u0444\u0430\u0439\u043b\u043e\u0432 \u0441 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0430\u043c\u0438. \u0421\u0430\u043c\u043e\u0435 \u0446\u0435\u043d\u043d\u043e\u0435 \u0432 \u043d\u0438\u0445 &#8212; \u044d\u0442\u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0441\u043e\u0431\u043e \u0441\u043b\u043e\u0436\u043d\u044b\u0435 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a:\u00a0 SDIO, USB, DMA, \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u0430\u044f \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u044f, \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0443\u0441\u043a\u043e\u0440\u0438\u0442\u0435\u043b\u044c.\u00a0<\/p>\n<p>\u0411\u043e\u043b\u044c\u0448\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432 \u0431\u0443\u0434\u0435\u0442 \u043e\u0434\u043d\u0430\u043a\u043e \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u043c \u0441\u043e\u0444\u0442\u043e\u043c Azure RTOS. \u0412 SSP \u0438\u0434\u0451\u0442 \u0441\u0432\u043e\u044f \u0432\u0435\u0440\u0441\u0438\u044f Azure RTOS, \u043e\u043d\u0430 \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u0442\u043e\u0439 \u0447\u0442\u043e \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u0430\u0440\u0438\u0438 \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043e\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0439 \u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u043c \u0445\u0435\u0434\u0435\u0440\u043e\u0432 \u0441 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u043c\u0438 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0430\u043c\u0438.\u00a0 \u041a \u044f\u0434\u0440\u0443 RTOS \u0438\u0434\u0451\u0442 \u0441\u0432\u043e\u0439 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u0440\u0442 \u0434\u043b\u044f \u0441\u0435\u043c\u0435\u0439\u0441\u0442\u0432\u0430 Synergy. \u041d\u0430 \u043c\u043e\u043c\u0435\u043d\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0441\u0442\u0430\u0442\u044c\u0438 \u0440\u0435\u043b\u0438\u0437 \u044f\u0434\u0440\u0430 RTOS \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u0430\u0440\u0438\u0438 Azure RTOS \u0431\u044b\u043b 6.20, \u0430 \u0440\u0435\u043b\u0438\u0437 \u044f\u0434\u0440\u0430 \u0432 SSP 2.4.0 \u0431\u044b\u043b \u0432\u0435\u0440\u0441\u0438\u0438 6.1.9. \u041e\u0442\u0441\u0442\u0430\u0432\u0430\u043d\u0438\u0435 \u0445\u043e\u0442\u044c \u0438 \u043d\u0435\u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435, \u043d\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 API \u043d\u0435 \u0434\u0430\u0434\u0443\u0442 \u0442\u0430\u043a \u043f\u0440\u043e\u0441\u0442\u043e \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u043e\u0434\u043d\u043e \u0434\u0440\u0443\u0433\u0438\u043c. <\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/51b\/deb\/615\/51bdeb6155f3925d8917127be5b1e05a.png\" alt=\"\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0439 \u043f\u043e\u0441\u043b\u0435 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0438\u0437 SSP\" title=\"\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0439 \u043f\u043e\u0441\u043b\u0435 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0438\u0437 SSP\" width=\"883\" height=\"850\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/51b\/deb\/615\/51bdeb6155f3925d8917127be5b1e05a.png\"\/><\/p>\n<div><figcaption>\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0439 \u043f\u043e\u0441\u043b\u0435 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0438\u0437 SSP<\/figcaption><\/div>\n<\/figure>\n<h3>\u0410 \u0442\u0435\u043f\u0435\u0440\u044c \u0443\u0431\u0435\u0440\u0451\u043c \u043b\u0438\u0448\u043d\u0435\u0435 \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u043d\u0443\u0436\u043d\u043e\u0435.<\/h3>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043c\u044b \u0443\u0432\u0438\u0434\u0438\u043c \u0436\u0438\u0440\u043d\u044b\u0439 \u0441\u043b\u043e\u0439 HAL \u0438\u0437\u043e\u043b\u0438\u0440\u0443\u044e\u0449\u0438\u0439 \u043d\u0430\u0441 \u043e\u0442 \u043f\u0440\u044f\u043c\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u0438. HAL \u0445\u043e\u0440\u043e\u0448\u043e \u043f\u043e\u0441\u043b\u0443\u0436\u0438\u0432\u0448\u0438\u0439 \u043d\u0430\u043c \u043d\u0430 \u043f\u0435\u0440\u0432\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u0442\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u0443\u0436\u0435 \u043c\u0435\u0448\u0430\u0442\u044c.\u00a0 \u041d\u0430\u043c \u043d\u0443\u0436\u0435\u043d \u043f\u0440\u044f\u043c\u043e\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043f\u043e\u0440\u0442\u0430\u043c , \u043a \u0434\u0432\u0438\u0436\u043a\u0443 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u043c\u0435\u0436\u0434\u0443 \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u0435\u0439, \u043a \u043a\u043e\u043c\u043c\u0443\u043d\u0438\u043a\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u0438 \u0438 \u043f\u0440\u043e\u0447.<\/p>\n<p>\u0417\u0434\u0435\u0441\u044c \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0442\u0449\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u0435 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432 \u0438 \u043e\u0446\u0435\u043d\u043a\u0430 \u0441\u0432\u043e\u0438\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439. \u041f\u043e\u043b\u043d\u043e\u0441\u0442\u044c \u0438\u0437\u0431\u0430\u0432\u0438\u0442\u044c\u0441\u044f \u043e\u0442 HAL \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0432 \u043e\u0431\u043e\u0437\u0440\u0438\u043c\u043e\u0439 \u043f\u0435\u0440\u0441\u043f\u0435\u043a\u0442\u0438\u0432\u0435. \u041d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0440\u044f\u043c\u043e\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u043a\u00a0 \u043f\u043e\u0440\u0442\u0430\u043c \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0442\u0440\u0438\u0432\u0438\u0430\u043b\u044c\u043d\u043e. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0430\u0434\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0440\u044f\u043c\u043e \u043e\u0431\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u043a \u043f\u043e\u0440\u0442\u0430\u043c. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0447\u0442\u043e\u0431\u044b \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434\u043e\u043c \u043e\u0431\u044a\u044f\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434\u0430<\/p>\n<pre><code class=\"cpp\">#define     RED_LED            R_PFS->P504PFS_b.PODR<\/code><\/pre>\n<p>\u0410 \u0434\u0430\u043b\u0435\u0435 \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u043c <strong><em>RED_LED = 1<\/em><\/strong> \u0438\u043b\u0438 \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0435\u043c <strong><em>RED_LED = 0<\/em><\/strong> \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434. \u041f\u0440\u043e\u0449\u0435 \u0447\u0435\u043c \u0432 Arduino. \u041a\u0430\u043a \u043f\u043e\u043a\u0430\u0437\u0430\u043b \u0430\u043d\u0430\u043b\u0438\u0437, \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u043e\u0432 \u0441 HAL \u0442\u0443\u0442 \u043d\u0435 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u0435\u0442. \u0422\u043e\u043b\u044c\u043a\u043e \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0430\u0434\u043e \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u0443\u0441\u0442\u043e\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443\u00a0<\/p>\n<pre><code class=\"cpp\">const ioport_cfg_t g_bsp_pin_cfg = {   .number_of_pins = 0,   .p_pin_cfg_data =0, }; <\/code><\/pre>\n<p>\u042d\u0442\u0430 \u0442\u0430 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u0443\u044e HAL \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0439 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0438\u043d\u043e\u0432. \u041f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0435\u0451 \u0443\u0434\u0430\u043b\u044f\u0442\u044c \u043d\u0435\u043b\u044c\u0437\u044f, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0442\u043e\u0433\u0434\u0430 \u043e\u0442\u043a\u0430\u0436\u0443\u0442\u0441\u044f \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u044b\u00a0 SPI, I2C \u0432 \u0441\u043e\u0441\u0442\u0430\u0432\u0435 HAL. \u041d\u043e \u0438 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0430\u044f \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043e\u0442 HAL \u043d\u0430\u043c \u0442\u043e\u0436\u0435 \u043d\u0435 \u043d\u0443\u0436\u043d\u0430. \u0423 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0441\u0432\u043e\u0439 <a href=\"https:\/\/github.com\/Indemsys\/MC50\/blob\/main\/Middleware_porting_project\/src\/SoC_periphery\/Pins.c\" rel=\"noopener noreferrer nofollow\">\u0431\u043e\u043b\u0435\u0435 \u0443\u0434\u043e\u0431\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442<\/a>. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u044b\u0431\u0440\u0430\u043d \u0442\u0430\u043a\u043e\u0439 \u043a\u043e\u043c\u043f\u0440\u043e\u043c\u0438\u0441\u0441.\u00a0<\/p>\n<p>\u041d\u0435 \u0437\u0430\u0431\u044b\u0442\u044c \u0442\u0430\u043a\u0436\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043c\u0430\u043a\u0440\u043e\u0441 \u0434\u043b\u044f \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f  \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043f\u0438\u043d\u043e\u0432 \u043d\u0430 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0435.  <\/p>\n<pre><code class=\"cpp\">#define IOPORT_CFG_PARAM_CHECKING_ENABLE (0)<\/code><\/pre>\n<p>\u0415\u0449\u0435 \u0432\u0430\u0436\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e HAL \u043f\u043e\u0441\u043b\u0435 \u0441\u0432\u043e\u0435\u0439 \u0444\u0430\u0437\u044b \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0437\u0430\u043f\u0440\u0435\u0449\u0430\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u043c.\u00a0 \u042d\u0442\u043e\u0442 \u0434\u043e\u0441\u0442\u0443\u043f \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u043f\u043e\u0441\u043b\u0435 \u043e\u0442\u0440\u0430\u0431\u043e\u0442\u043a\u0438 HAL \u043d\u0430 \u0441\u0442\u0430\u0440\u0442\u0435.\u00a0<\/p>\n<p>\u0421\u043b\u043e\u0432\u043e\u043c \u0432\u043e\u0442 \u0442\u0430\u043a\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b \u043c\u043e\u0436\u043d\u043e \u0432\u0441\u0442\u0440\u0435\u0442\u0438\u0442\u044c \u0432 \u043c\u043e\u0435\u043c \u043a\u043e\u0434\u0435 \u0434\u043b\u044f \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u043c\u00a0<\/p>\n<pre><code class=\"cpp\">   \/\/ \u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u043c \u0437\u0430\u043f\u0438\u0441\u044c \u0432 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b \u043f\u0438\u043d\u043e\u0432     R_PMISC->PWPR_b.BOWI  = 0;     R_PMISC->PWPR_b.PFSWE = 1;      R_SYSTEM->PRCR = 0xA50B; \/\/ \u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0434\u043e\u0441\u0442\u0443\u043f \u043d\u0430 \u0437\u0430\u043f\u0438\u0441\u044c \u043a \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u043c <\/code><\/pre>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043e\u0447\u0435\u043d\u044c \u0432\u0430\u0436\u043d\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0434\u0432\u0438\u0436\u043e\u043a \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u043e\u0439 \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0438 \u0432 \u0447\u0438\u043f\u0435. \u042d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u043c\u0438:<\/p>\n<pre><code class=\"cpp\">trckcr = *((uint8_t*)(TRCKCR_REG)); trckcr = 0x80; *((uint8_t*)(TRCKCR_REG)) = trckcr; \/\/ \u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u043c \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u0441 \u0447\u0430\u0441\u0442\u043e\u0442\u0439 120 \u041c\u0413\u0446<\/code><\/pre>\n<p>\u00a0\u0412\u0441\u0435 \u044d\u0442\u0438 \u043c\u0430\u043d\u0438\u043f\u0443\u043b\u044f\u0446\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0432 \u0444\u0430\u0439\u043b\u0435 <strong>BSP_init.c<\/strong> . \u0422\u0430\u043c \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0445\u0432\u0430\u0442 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0447\u0430\u0441\u0442\u0435\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043d\u0430 \u0441\u0442\u0430\u0440\u0442\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b.\u00a0   <\/p>\n<h3>\u0421\u0430\u043c\u043e\u0435 \u0441\u043b\u043e\u0436\u043d\u043e\u0435 \u0432 HAL \u043e\u0442\u00a0 Synergy &#8212; \u044d\u0442\u043e \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f.  <\/h3>\n<p>HAL Synergy \u0431\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u044b\u0439 \u0447\u0435\u043c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, HAL STM32. \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438\u00a0 \u0438\u0437 Renesas \u0440\u0435\u0448\u0438\u043b\u0438 \u0441\u0438\u043b\u044c\u043d\u0435\u0435 \u0430\u0431\u0441\u0442\u0440\u0430\u0433\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043e\u0442 \u0436\u0435\u043b\u0435\u0437\u0430. \u0412\u0432\u0435\u043b\u0438 \u0444\u0430\u0439\u043b\u043e\u0432\u0443\u044e \u043c\u0435\u0442\u0430\u0444\u043e\u0440\u0443 \u0441\u0440\u043e\u0434\u043d\u0438 \u041b\u0438\u043d\u0443\u043a\u0441\u0443, \u0438 \u0441\u043e\u043f\u0440\u043e\u0432\u043e\u0434\u0438\u043b\u0438 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u044e \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u043e-\u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u043c\u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430\u043c\u0438 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0440\u0430\u0437\u043c\u0435\u0449\u0430\u0435\u043c\u044b\u043c\u0438 \u043b\u0438\u043d\u043a\u0435\u0440\u043e\u043c.\u00a0<\/p>\n<p>\u0412 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0435 Synergy \u043d\u0435\u0442 \u0436\u0451\u0441\u0442\u043a\u043e \u0437\u0430\u043a\u0440\u0435\u043f\u043b\u0451\u043d\u043d\u044b\u0445 \u0437\u0430 \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u0435\u0439 \u043d\u043e\u043c\u0435\u0440\u043e\u0432 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439. \u041b\u044e\u0431\u043e\u043c\u0443 \u0441\u0438\u0433\u043d\u0430\u043b\u0443 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f \u043e\u0442 \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0434\u0430\u0442\u044c \u043b\u044e\u0431\u043e\u0439 \u043d\u043e\u043c\u0435\u0440 \u0432 NVIC \u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0432\u0435\u043a\u0442\u043e\u0440. \u041d\u043e\u043c\u0435\u0440\u0430 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f\u043c \u0437\u0430\u0434\u0430\u044e\u0442\u0441\u044f \u0432 \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u0439\u043d\u043e\u043c \u0431\u043b\u043e\u043a\u0435\u00a0 \u043f\u043e\u0434 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c <strong>Interrupt Controller Unit (ICU)<\/strong> \u043d\u0430 \u044d\u0442\u0430\u043f\u0435 \u0441\u0442\u0430\u0440\u0442\u0430 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438.\u00a0<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/9c6\/c8c\/85b\/9c6c8c85beed605467e366019ac0edc5.png\" alt=\"\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 ICU\" title=\"\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 ICU\" width=\"926\" height=\"997\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/9c6\/c8c\/85b\/9c6c8c85beed605467e366019ac0edc5.png\"\/><\/p>\n<div><figcaption>\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 ICU<\/figcaption><\/div>\n<\/figure>\n<p>\u0411\u043b\u043e\u043a ICU, \u043a\u0430\u043a \u0432\u0438\u0434\u043d\u043e \u0438\u0437 \u0441\u0445\u0435\u043c\u044b, \u0441\u0442\u043e\u0438\u0442 \u043c\u0435\u0436\u0434\u0443 \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u0435\u0439 \u0438 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u043c \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439 NVIC \u044f\u0434\u0440\u0430 ARM. \u041f\u043e \u0441\u0432\u043e\u0435\u0439 \u0441\u0443\u0442\u0438 \u0433\u0438\u0431\u043a\u043e\u0435 \u0438 \u0443\u0434\u043e\u0431\u043d\u043e\u0435\u00a0 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u044b SSP \u043f\u0440\u0435\u0432\u0440\u0430\u0442\u0438\u043b\u0438 \u0432 \u043d\u0435\u043f\u0440\u043e\u0445\u043e\u0434\u0438\u043c\u044b\u0439 \u043a\u0432\u0435\u0441\u0442.\u00a0<\/p>\n<p>\u041f\u0435\u0440\u0432\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441 \u0442\u043e\u0433\u043e \u0447\u0442\u043e \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u043e\u0431\u044a\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0432 SSP \u0442\u0440\u0435\u043c\u044f \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u043c\u0430\u043a\u0440\u043e\u0441\u0430\u043c\u0438\u00a0 <strong>SSP_VECTOR_DEFINE<\/strong>, <strong>SSP_VECTOR_DEFINE_CHAN<\/strong>, <strong>SSP_VECTOR_DEFINE_UNIT<\/strong>. \u041a\u0430\u043a\u043e\u0439 \u043c\u0430\u043a\u0440\u043e\u0441 \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u0434\u043b\u044f \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0442\u0438\u043f\u0430 \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u0438. \u041f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u044f \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u043e \u043b\u043e\u0433\u0438\u043a\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u0432 Renesas \u043e\u0434\u0438\u043d\u043e\u0447\u043d\u0430\u044f, \u043c\u0443\u043b\u044c\u0442\u0438\u043a\u0430\u043d\u0430\u043b\u044c\u043d\u0430\u044f \u0438 \u043c\u0443\u043b\u044c\u0442\u0438 \u044e\u043d\u0438\u0442\u043e\u0432\u0430\u044f. \u0427\u0435\u043c \u043e\u0442\u043b\u0438\u0447\u0430\u044e\u0442\u0441\u044f \u043a\u0430\u043d\u0430\u043b\u044b \u0438 \u044e\u043d\u0438\u0442\u044b \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u0438 \u0434\u0430\u0436\u0435 \u043d\u0435 \u0441\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0439\u0442\u0435.\u00a0<\/p>\n<p>\u0412\u0442\u043e\u0440\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u044d\u0442\u0438\u0445 \u043c\u0430\u043a\u0440\u043e\u0441\u043e\u0432. \u0412\u043e\u0442 \u043f\u0440\u0438\u043c\u0435\u0440 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u043d\u0438\u0445:<\/p>\n<pre><code class=\"cpp\">#define SSP_VECTOR_DEFINE_UNIT(isr,ip,unit_name,signal,channel) \\     void isr (void); \\     static void * gp_ctrl_##ip##_##unit_name##_##channel##_##signal; \\     const ssp_vector_t g_vector_##ip##_##unit_name##_##channel##_##signal \\         BSP_PLACE_IN_SECTION_V2(\".vector.\"#ip\"_\"#unit_name\"_\"#channel\"_\"#signal )=isr; \\     const ssp_vector_info_t g_vector_info_##ip##_##unit_name##_##channel##_##signal  \\         BSP_PLACE_IN_SECTION_V2(\".vector_info.\"#ip\"_\"#unit_name\"_\"#channel\"_\"#signal)= \\         {.event_number=ELC_EVENT_##ip##unit_name##_##signal, \\         .ip_id = SSP_IP_##ip, .ip_channel=(channel), .ip_unit=SSP_IP_UNIT_##ip##unit_name, \\         .ip_signal=SSP_SIGNAL_##ip##_##signal, .pp_ctrl = &amp;gp_ctrl_##ip##_##unit_name##_##channel##_##signal}; <\/code><\/pre>\n<p>\u042d\u0442\u043e \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0432\u043e\u0442 \u0432 \u0442\u0430\u043a\u043e\u0439 \u043a\u043e\u0434 \u043f\u043e\u0441\u043b\u0435 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u0440\u0435\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043e\u043c<\/p>\n<pre><code class=\"cpp\">\/\/ \u041e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439 void                      usbfs_int_isr (void);  \/\/ \u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u0430\u044f \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f \u043d\u0430 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0441 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0435\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 static void              *gp_ctrl_USB_FS_0_INT;    \/\/ \u041d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0432\u0435\u043a\u0442\u043e\u0440 \u0442.\u0435. \u0430\u0434\u0440\u0435\u0441 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 \u043d\u0430 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0443 \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f. \u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0430 \u0432 \u0441\u0435\u043a\u0446\u0438\u0438 .vector.*  const ssp_vector_t        g_vector_USB_FS_0_INT      __attribute__ ((section(\".vector.USB_FS_0_INT\")))      __attribute__ ((__used__))=usbfs_int_isr;  \/\/ \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0441 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043c \u0442\u0438\u043f\u0430 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f. \u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0430 \u0432 \u0441\u0435\u043a\u0446\u0438\u0438 .vector_info.* const ssp_vector_info_t   g_vector_info_USB_FS_0_INT __attribute__ ((section(\".vector_info.USB_FS_0_INT\"))) __attribute__ ((__used__))= {   . event_number = ELC_EVENT_USBFS_INT,   . ip_id        =  SSP_IP_USB,           \/\/ \u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0438\u0437 \u044d\u043d\u0443\u043c\u0435\u0440\u0430\u0442\u043e\u0440\u0430 e_ssp_ip   . ip_channel   = (0),   . ip_unit      = SSP_IP_UNIT_USBFS,     \/\/ \u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0438\u0437 \u044d\u043d\u0443\u043c\u0435\u0440\u0430\u0442\u043e\u0440\u0430 e_ssp_ip_unit                                            \/\/ (\u0442\u0430\u043c \u0435\u0441\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e USB)   . ip_signal    = SSP_SIGNAL_USB_INT,    \/\/ \u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0438\u0437 \u044d\u043d\u0443\u043c\u0435\u0440\u0430\u0442\u043e\u0440\u0430 e_ssp_signal   . pp_ctrl      = &amp;gp_ctrl_USB_FS_0_INT  \/\/ \u0421\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u043d\u0443\u044e \u0440\u0430\u043d\u0435\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u044e                                           \/\/  \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 };;<\/code><\/pre>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0435. \u0412 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u043c \u0444\u0430\u0439\u043b\u0435 \u043b\u0438\u043d\u043a\u0435\u0440\u0430 \u0432\u0438\u0434\u0430 *.icf (\u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 r7fs5d97e3a01cfp.icf )\u00a0 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0442\u0441\u044f \u0442\u0430\u043a\u0438\u0435 \u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0441\u0435\u043a\u0446\u0438\u0438\u00a0<\/p>\n<pre><code>define block VECT_INFO         { ro section .vector_info.*  }; keep                           { section    .vector*        }; place at start of VECT_region  { ro section .vectors        }; place in VECT_region           { ro section .vector.*       }; place at start of FLASH_region { block VECT_INFO            }; <\/code><\/pre>\n<p>\u0417\u0434\u0435\u0441\u044c \u0441\u0435\u043a\u0446\u0438\u044f .vectors \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0430 \u0434\u043b\u044f \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0445 \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u0432 \u044f\u0434\u0440\u0430 ARM \u043e\u0442 Reset \u0434\u043e SysTick. \u0410 \u0432 \u0441\u0435\u043a\u0446\u0438\u0438 <strong>.vector.*<\/strong> \u0431\u0443\u0434\u0443\u0442 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u044b \u0430\u0434\u0440\u0435\u0441\u0430 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043e\u0432 \u043d\u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439 \u043a\u043e\u0442\u043e\u0440\u044b\u0435. \u0418\u0437 \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0432\u044b\u0448\u0435 \u0442\u0443\u0434\u0430 \u043f\u043e\u043f\u0430\u0434\u0451\u0442 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f <strong>g_vector_USB_FS_0_INT<\/strong>\u00a0 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0449\u0430\u044f \u043d\u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a usbfs_int_isr.\u00a0<\/p>\n<p>\u0412 \u0441\u0435\u043a\u0446\u0438\u044e <strong>.vector_info.*<\/strong> \u043f\u043e\u043f\u0430\u0434\u0451\u0442 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f\u00a0 <strong>g_vector_info_USB_FS_0_INT<\/strong> , \u043e\u043d\u0430 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0441 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043c \u0442\u0438\u043f\u0430 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f \u0438 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0435\u043c \u043d\u0430 \u0441\u043e\u043f\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435.<\/p>\n<p>\u041f\u0440\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<ul>\n<li>\n<p>\u041d\u0430 \u0441\u0442\u0430\u0440\u0442\u0435 \u0444\u0438\u0440\u043c\u0432\u0430\u0440\u0435 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b HAL \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u044e\u0442 ICU \u0438\u0437 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0445\u0440\u0430\u043d\u044f\u0449\u0438\u0445\u0441\u044f \u0432 \u0441\u0435\u043a\u0446\u0438\u0438\u00a0 <strong>.vector_info.*<\/strong>. \u0422\u0430\u043c \u0431\u0443\u0434\u0435\u0442 \u0438\u043c\u0435\u043d\u043d\u043e \u043c\u0430\u0441\u0441\u0438\u0432, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043f\u0440\u0438 \u0441\u0431\u043e\u0440\u043a\u0435 \u043b\u0438\u043d\u043a\u0435\u0440 \u0430\u043a\u043a\u0443\u0440\u0430\u0442\u043d\u043e \u0432\u0441\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0442\u0438\u043f\u0430\u00a0 <strong>g_vector_info_*<\/strong> \u0431\u0443\u0434\u0435\u0442 \u0441\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0442\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u0438\u0445 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u044f. \u0412 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b \u043a\u0430\u043d\u0430\u043b\u043e\u0432 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439 ICU <strong>Event Link Setting Register n (IELSRn)<\/strong> \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0431\u0443\u0434\u0443\u0442 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u0438 \u0432\u044b\u0437\u0432\u0430\u0432\u0448\u0435\u0439 \u0434\u0430\u043d\u043d\u043e\u0435 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435.<\/p>\n<\/li>\n<li>\n<p>\u0412 \u043c\u043e\u043c\u0435\u043d\u0442 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u044f \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0434\u0451\u0442 \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043f\u043e \u0432\u0435\u043a\u0442\u043e\u0440\u0443 \u0432 \u043d\u0443\u0436\u043d\u0443\u044e \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0443 \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u043d\u0438\u044f. \u041d\u043e \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u043d\u0438\u044f \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0438\u043c\u0435\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u0442\u043e\u043c \u043a\u0430\u043a\u0430\u044f \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u044f \u0432\u044b\u0437\u0432\u0430\u043b\u0430 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435.  <\/p>\n<\/li>\n<li>\n<p>\u0427\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0442\u043e\u043c \u0447\u0442\u043e \u0432\u044b\u0437\u0432\u0430\u043b\u043e \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u043d\u0438\u044f \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0435\u0442 \u0438\u0437 NVIC \u043d\u043e\u043c\u0435\u0440 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f , \u0430 \u043f\u043e\u0442\u043e\u043c \u043f\u043e \u043d\u043e\u043c\u0435\u0440\u0443 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f \u043a\u0430\u043a \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443 \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0435 \u0438\u0437\u0432\u043b\u0435\u0447\u0451\u0442 \u0438\u0437 \u0441\u0435\u043a\u0446\u0438\u0438 <strong>.vector_info.*<\/strong> \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u0438 \u0438 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0443\u044e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443  <\/p>\n<\/li>\n<\/ul>\n<p>\u0412\u043e \u0442\u0430\u043a\u0438\u043c \u0445\u0438\u0442\u0440\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u044b Renesas \u0440\u0435\u0448\u0438\u043b\u0438 \u0441\u0432\u043e\u044e \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u043c\u043e\u0434\u0443\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0441\u043e\u0444\u0442\u0430, \u043d\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u043b\u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f\u043c\u0438, \u0443\u0445\u0443\u0434\u0448\u0438\u0432 \u0431\u044b\u0441\u0442\u0440\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0438 \u0443\u0441\u043b\u043e\u0436\u043d\u0438\u043b\u0438 \u0436\u0438\u0437\u043d\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c \u0444\u0438\u0440\u043c\u0432\u0430\u0440\u0435.\u00a0\u0412\u043e\u0442 \u043f\u043e\u0447\u0435\u043c\u0443 \u043c\u044b \u043d\u0435 \u043b\u044e\u0431\u0438\u043c HAL.<\/p>\n<h3>\u0420\u0430\u0437\u0440\u044b\u0432\u0430\u0435\u043c \u0441\u0432\u044f\u0437\u0438 \u0441 SSP  <\/h3>\n<p>\u0412 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0430\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 main.c \u043f\u043e\u0441\u043b\u0435 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0435\u0441\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <strong>tx_startup_common_init<\/strong> \u0438 <strong>tx_startup_err_callback_internal<\/strong>.\u00a0 \u0418\u0445 \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0437\u0430\u043f\u0443\u0441\u043a \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u0434\u043e \u0442\u0435\u0445 \u043f\u043e\u0440 \u043f\u043e\u043a\u0430 \u043d\u0435 \u0431\u0443\u0434\u0443\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u044b \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438. \u041d\u043e \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440 \u043d\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043e\u043d\u0438 \u043f\u043e\u044f\u0432\u044f\u0442\u0441\u044f \u043f\u0440\u0438 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0431\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u043e\u0433\u043e \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430, \u043d\u043e \u0432 \u043b\u044e\u0431\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0442\u0430\u043a\u0430\u044f \u0443\u0441\u043b\u0443\u0433\u0430 \u043d\u0435 \u0441\u0442\u043e\u0438\u0442 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u0438 \u0435\u0451 \u0443\u0434\u0430\u043b\u044f\u0435\u043c \u0438\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432.\u00a0\u00a0\u00a0<\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u043a\u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432 \u0441 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 <strong>synergy_gen<\/strong>, \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435\u043b\u044c\u0437\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0430\u0432\u0442\u043e \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044e SSP \u0432 \u044d\u0442\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435. \u0414\u043b\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u043d\u043e\u0432\u044b\u0445 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u043e\u0432 \u0438 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u043e\u0433\u043e \u0441\u043e\u0444\u0442\u0430 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 SSP \u0433\u0434\u0435 \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0432\u0441\u0435 \u043c\u0430\u043d\u0438\u043f\u0443\u043b\u044f\u0446\u0438\u0438 \u043f\u043e \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432 \u0438 \u043e\u0442\u0442\u0443\u0434\u0430 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u0432 \u043d\u0430\u0448 \u0440\u0430\u0431\u043e\u0447\u0438\u0439 \u043f\u0440\u043e\u0435\u043a\u0442.\u00a0\u00a0\u00a0<\/p>\n<p>\u0422\u0430\u043a\u0436\u0435 \u0440\u0430\u0441\u0447\u0438\u0449\u0430\u0435\u043c \u043e\u0442 \u0434\u0435\u0431\u0440\u0435\u0439 \u043c\u0430\u043a\u0440\u043e\u0441\u043e\u0432 \u0438 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0439 \u043d\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u044b <strong>common_data<\/strong> \u0438 <strong>hal_data<\/strong>.\u00a0<\/p>\n<p>\u0412\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0435 \u0432\u0441\u0435\u0445 \u044d\u0442\u0438\u0445 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u044d\u0442\u0430\u043f \u0441\u0442\u0430\u0440\u0442 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0438 RTOS \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043c\u0435\u043d\u0435\u0435 \u0437\u0430\u043f\u0443\u0442\u0430\u043d\u043d\u044b\u043c. <\/p>\n<h3>\u041a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u0443\u0435\u043c \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u0447\u043d\u044b\u0439 \u0444\u0430\u0439\u043b\u00a0 S5D9.h  <\/h3>\n<p>\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u0447\u043d\u044b\u0439 \u0444\u0430\u0439\u043b <strong>S5D9.h<\/strong> \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0442\u043e\u0447\u043d\u044b\u0435 \u0430\u0434\u0440\u0435\u0441\u0430 \u0432\u0441\u0435\u0439 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0439 \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u0438 \u0447\u0438\u043f\u0430 \u0438 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0431\u0438\u0442\u043e\u0432. \u041d\u0430\u0434\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0431\u0438\u0442\u043e\u0432 \u0432 \u0432\u0438\u0434\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440 \u043e\u0447\u0435\u043d\u044c \u0443\u0434\u043e\u0431\u043d\u043e.\u00a0 \u041f\u043e\u0442\u043e\u043c \u044d\u0442\u043e \u0441\u0438\u043b\u044c\u043d\u043e \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u0442 \u0436\u0438\u0437\u043d\u044c \u043f\u0440\u0438 \u043f\u0440\u044f\u043c\u043e\u043c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u0438. \u0421\u043a\u0430\u0436\u0435\u043c \u0434\u043b\u044f STM32 \u0442\u0430\u043a\u043e\u0433\u043e \u043d\u0435\u0442, \u0438 \u0442\u0430\u043c \u044d\u0442\u043e \u0443\u0441\u043b\u043e\u0436\u043d\u044f\u0435\u0442 \u0434\u0435\u043b\u0430 \u043f\u0440\u0438 \u043e\u0442\u0440\u044b\u0432\u0435 \u043e\u0442 HAL.<\/p>\n<p>\u041e\u0434\u043d\u0430\u043a\u043e \u0444\u0430\u0439\u043b <strong>S5D9.h<\/strong> \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0441\u043b\u0435\u0433\u043a\u0430 \u043f\u043e\u0434\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0432 \u043d\u0435\u043c \u043d\u0435 \u0431\u044b\u043b\u043e \u043f\u043e \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043f\u0440\u0438\u0447\u0438\u043d\u0435 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 PFS \u043f\u043e\u0440\u0442\u043e\u0432 <strong>P208, P209, P210, P211, P214<\/strong><\/p>\n<h3>\u0418\u0437\u0431\u0430\u0432\u043b\u044f\u0435\u043c\u0441\u044f \u043e\u0442 \u043c\u0430\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442  <\/h3>\n<p>\u041d\u0435 \u0432\u0441\u0435, \u043d\u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u0430\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0440\u0430\u0441\u043a\u0440\u044b\u0442\u044c \u0438 \u043e\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435\u00a0 \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u0435\u0442\u044c \u043e\u0442 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0432 SSP. \u0412 \u0444\u0430\u0439\u043b\u0435 <strong>bsp_mcu_family_cfg.h<\/strong> \u0435\u0441\u0442\u044c \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c\u044b\u0435 \u0432\u043e Flash \u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0435 \u0440\u0430\u0431\u043e\u0442\u043e\u0439 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0445 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432 , \u0432\u043e\u0442\u0447\u0434\u043e\u0433\u0430\u043c\u0438 , \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u043e\u043c \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f. \u0424\u0430\u0439\u043b \u0431\u044b\u043b \u043c\u043d\u043e\u0439 \u0441\u0438\u043b\u044c\u043d\u043e \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d, \u0447\u0442\u043e\u0431\u044b \u044d\u0442\u0438\u043c\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438 \u0431\u044b\u043b\u043e \u0443\u0434\u043e\u0431\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043f\u0440\u044f\u043c\u043e \u0432 \u044d\u0442\u043e\u043c \u0444\u0430\u0439\u043b\u0435.\u00a0<\/p>\n<p>\u041a \u0441\u0432\u0435\u0434\u0435\u043d\u0438\u044e, <em>\u0441\u0435\u0439\u0447\u0430\u0441 \u0432\u043e\u0442\u0447\u0434\u043e\u0433 \u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d<\/em>! \u042d\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0434\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u043e\u0442\u043b\u0430\u0434\u043a\u0438.<\/p>\n<h3>\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u0432 RTOS  <\/h3>\n<p>\u0412 Azure RTOS \u0435\u0441\u0442\u044c \u043c\u0430\u043a\u0440\u043e\u0441\u044b, \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0436\u043d\u043e \u0432\u043d\u0435\u0441\u0442\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0432 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0437\u0430\u0434\u0430\u0447. \u041c\u044b \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043f\u043e\u043b\u044f:\u00a0<\/p>\n<pre><code>#define TX_THREAD_EXTENSION_0                   ULONG       environment; #define TX_THREAD_EXTENSION_1                   ULONG       driver;<\/code><\/pre>\n<p>\u042d\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0434\u043b\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u044b\u0445 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u043e\u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u0432\u043e\u0434\u0430-\u0432\u044b\u0432\u043e\u0434\u0430. \u041e\u0431 \u044d\u0442\u043e\u043c \u0431\u044b\u043b\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435<a href=\"https:\/\/habr.com\/ru\/articles\/582742\/\" rel=\"noopener noreferrer nofollow\"><u> \u0437\u0434\u0435\u0441\u044c<\/u><\/a><\/p>\n<h3>\u0418\u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u043e\u0448\u0438\u0431\u043a\u0438 \u0441\u0442\u0435\u043a\u0430 USB \u0432 Azure RTOS  <\/h3>\n<p>\u041f\u0440\u0438 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432 \u0432 SSP \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0442\u0430\u043c \u0432\u044b\u0431\u043e\u0440 \u043a\u043b\u0430\u0441\u0441\u043e\u0432 USB \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043c\u0435\u043d\u044c\u0448\u0435 \u0447\u0435\u043c \u0435\u0441\u0442\u044c \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u0430\u0440\u0438\u0438 UsbX Azure RTOS. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u043e\u0442\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u043e\u0442 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432 SSP \u0438 \u043f\u0435\u0440\u0435\u0448\u0451\u043b \u043d\u0430 UsbX \u0438\u0437 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u0430\u0440\u0438\u044f.\u00a0\u00a0<\/p>\n<p>\u0411\u044b\u043b\u0430 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 \u0432 \u0444\u0430\u0439\u043b\u0435 <strong>ux_dcd_synergy_initialize.c<\/strong> \u043f\u0440\u0438 \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0438 \u0438\u043c\u0451\u043d \u0441\u0435\u043c\u0430\u0444\u043e\u0440\u0430\u043c. \u0421\u0442\u0440\u043e\u043a\u0430\u043c \u0438\u043c\u0451\u043d \u0441\u0435\u043c\u0430\u0444\u043e\u0440\u043e\u0432 \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u043b\u0438\u0441\u044c \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u0443\u044e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u0438\u0437 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u0442\u0435\u043a\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0438. \u0412\u043f\u043e\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0438\u043c\u0451\u043d \u0437\u0430\u0442\u0438\u0440\u0430\u043b\u043e\u0441\u044c \u0438 \u0432\u043c\u0435\u0441\u0442\u043e \u0438\u043c\u0451\u043d \u0432 \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a\u0435 \u0432\u044b\u0432\u043e\u0434\u0438\u043b\u0438\u0441\u044c \u0445\u0430\u043e\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u044b. \u041e\u0448\u0438\u0431\u043a\u0430 \u0432\u0438\u0434\u043d\u0430 \u043f\u0440\u044f\u043c\u043e \u0441\u0440\u0430\u0437\u0443 \u0432 \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a\u0435 IAR. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043e\u043d\u0430 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0443\u0436\u0435 \u043f\u0430\u0440\u0443 \u043b\u0435\u0442, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u0442\u044c \u043a\u0430\u043a \u043c\u0430\u043b\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u0435\u0442\u0441\u044f \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u043e\u0441\u0442\u044f\u043c\u0438 \u0441\u0442\u0435\u043a\u0430 USB.\u00a0\u00a0<\/p>\n<p>\u0427\u0442\u043e\u0431\u044b USB \u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0442\u043d\u044b\u0439 \u0434\u0435\u0432\u0430\u0439\u0441 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u043b \u043d\u0443\u0436\u043d\u043e \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u043c\u0430\u043a\u0440\u043e\u0441 <strong>UX_DEVICE_COMPOSITE_ENABLE<\/strong> \u0432 \u0444\u0430\u0439\u043b\u0435 <strong>sf_el_ux_dcd_common.h<\/strong><\/p>\n<p>USB \u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043a\u0430\u043a \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c DMA, \u0442\u0430\u043a \u0438 \u0431\u0435\u0437 \u043d\u0435\u0433\u043e. \u0414\u043b\u044f \u0432\u044b\u0431\u043e\u0440\u0430 \u0442\u043e\u0433\u043e \u0438\u043b\u0438 \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430 \u043d\u0443\u0436\u043d\u043e \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0439 \u043d\u0438\u0436\u0435 \u043d\u0430\u0437\u043d\u0430\u0447\u0438\u0442\u044c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u043a\u0430\u043d\u0430\u043b\u043e\u0432 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u043f\u043e DMA\u00a0 \u0438\u043b\u0438 \u043f\u0440\u0438\u0441\u0432\u043e\u0438\u0442\u044c \u0438\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 NULL<\/p>\n<pre><code class=\"cpp\">static UINT _USB_initialize_transfer_support(ULONG dcd_io) {   UX_DCD_SYNERGY_TRANSFER dcd_transfer;   dcd_transfer.ux_synergy_transfer_tx =(transfer_instance_t)&amp;usb_transfer_tx; \/\/  NULL; \/\/   dcd_transfer.ux_synergy_transfer_rx =(transfer_instance_t *)&amp;usb_transfer_rx; \/\/  NULL; \/\/   return (UINT)ux_dcd_synergy_initialize_transfer_support(dcd_io, (UX_DCD_SYNERGY_TRANSFER *)&amp;dcd_transfer); } <\/code><\/pre>\n<p>\u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0444\u0430\u0439\u043b\u043e\u0432\u00a0 \u043f\u043e USB \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c DMA \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u0440\u0430\u0441\u0442\u0438 \u043f\u0440\u0438\u0431\u043b\u0438\u0437\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0430 40% \u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 \u043e\u0431\u043c\u0435\u043d\u043e\u043c \u0431\u0435\u0437 DMA.\u00a0<\/p>\n<p>\u041f\u0440\u0438 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0438 USB \u0441\u0442\u0435\u043a\u043e\u0432 \u043d\u0443\u0436\u043d\u043e\u00a0 \u0432\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u043b\u0435\u0434\u0438\u0442\u044c \u0437\u0430 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0441\u0442\u044c\u044e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0438\u043e\u0434\u0430 \u0442\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f RTOS, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u0441\u0442\u0435\u043a\u0435 \u0435\u0441\u0442\u044c \u0441\u0432\u043e\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0433\u043e \u043f\u0435\u0440\u0438\u043e\u0434\u0430.<\/p>\n<p>\u0421\u0442\u043e\u0438\u0442 \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u043c\u0430\u043a\u0440\u043e\u0441 <strong>TX_ENABLE_EVENT_TRACE<\/strong> , \u0438\u043d\u0430\u0447\u0435 \u0432\u0441\u0435 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0430\u0445 SSP\u00a0 \u0431\u0443\u0434\u0443\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0432\u044b\u0437\u043e\u0432\u044b \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430. \u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0439 \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u043d\u0435 \u0442\u0430\u043a \u0443\u0434\u043e\u0431\u0435\u043d \u043a\u0430\u043a \u0434\u0432\u0438\u0436\u043e\u043a ITM \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0435\u0433\u043e \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c.<\/p>\n<h3>\u041a\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0430\u044f \u0437\u0430\u043f\u043b\u0430\u0442\u0430  <\/h3>\n<p>\u0411\u044b\u043b\u0430 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0430 \u043e\u0447\u0435\u043d\u044c \u043a\u043e\u0432\u0430\u0440\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430 \u0432 \u0441\u0435\u0442\u0435\u0432\u043e\u043c \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0435 USB ECM .\u00a0<\/p>\n<p>\u041f\u0440\u0438\u0440\u043e\u0434\u0430 \u043e\u0448\u0438\u0431\u043a\u0438 \u043e\u0441\u0442\u0430\u043b\u0430\u0441\u044c \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u043e\u0439. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0431\u0430\u0433 \u0436\u0435\u043b\u0435\u0437\u0430. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0430 \u043f\u0440\u043e\u0441\u0442\u043e \u0437\u0430\u043f\u043b\u0430\u0442\u0430 \u043d\u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432 \u043f\u043e \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044e \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <strong>ux_hcd_synergy_asynch_queue_process_brdy<\/strong>. \u0412\u043e\u0442 \u0442\u0430\u043a\u0430\u044f:<\/p>\n<pre><code class=\"cpp\">if (ed->ux_synergy_pipe_index == 2) {   hcd_synergy -> ux_hcd_synergy_ed_irq[ed -> ux_synergy_pipe_index] = hcd_synergy -> ux_hcd_synergy_ed_irq[ed -> ux_synergy_pipe_index] &amp; (~(UX_SYNERGY_HC_ED_BRDY));   return; } <\/code><\/pre>\n<p>\u0418\u043d\u0430\u0447\u0435 \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 Ethernet \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u0440\u043e\u043f\u0430\u0434\u0430\u043b\u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c\u044b\u0435 \u043f\u0430\u043a\u0435\u0442\u044b. \u0421\u0432\u044f\u0437\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u043b\u0430\u0441\u044c, \u043d\u043e \u0441 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u044b\u043c\u0438 \u043f\u0435\u0440\u0435 \u043f\u043e\u0432\u0442\u043e\u0440\u0430\u043c\u0438 \u0438 \u0441\u0431\u043e\u044f\u043c\u0438.   <\/p>\n<h3>\u0418\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u0443\u0435\u043c fault tolerant exFAT  <\/h3>\n<p>\u0414\u0430, \u0444\u0430\u0439\u043b\u043e\u0432\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0432 Azure RTOS \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u0430 \u0438 <a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/rtos\/filex\/chapter1#fault-tolerant-support\" rel=\"noopener noreferrer nofollow\"><u>\u0443\u0436\u0430\u0441\u043d\u043e \u043d\u0430\u0434\u0451\u0436\u043d\u0430\u044f<\/u><\/a>. <\/p>\n<p>\u041d\u043e!  \u0421\u0435\u0440\u0432\u0435\u0440 FTP \u0438\u0437 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u0430\u0440\u0438\u044f Azure RTOS \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 exFAT.\u00a0\u041f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043f\u0435\u0440\u0435\u0434\u0435\u043b\u0430\u0442\u044c \u0441\u0435\u0440\u0432\u0435\u0440 FTP. \u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0444\u0430\u0439\u043b\u0435 <strong>NXD_exFAT_ftp_server.c<\/strong> <\/p>\n<p>\u0414\u043b\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a \u0441\u0435\u0440\u0432\u0435\u0440\u0443 FTP \u043d\u0443\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0430\u0441\u0441\u0438\u0432\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c, \u0438\u043d\u0430\u0447\u0435 \u043a\u0430\u043d\u0430\u043b \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0435 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f. \u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0444\u0430\u0439\u043b\u043e\u0432 \u043d\u0430 FTP \u0432 \u0441\u0440\u0435\u0434\u043d\u0435\u043c \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 200 \u043a\u0431\u0430\u0439\u0442 \u0432 \u0441\u0435\u043a. \u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u044f 730 \u043a\u0431\u0430\u0439\u0442 \u0432 \u0441\u0435\u043a. \u041f\u0440\u0438 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u0444\u0438\u0440\u043c\u0432\u0430\u0440\u0435 \u043f\u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0438 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 RNDIS. \u0412 \u0440\u0435\u0436\u0438\u043c\u0435 ECM \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0431\u0443\u0434\u0435\u0442 \u043e\u043a\u043e\u043b\u043e 520 \u043a\u0431\u0430\u0439\u0442 \u0432 \u0441\u0435\u043a. \u043d\u0430 \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u0435.\u00a0<\/p>\n<p>\u0412 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 <strong>exFAT<\/strong> \u043d\u0435 \u0432\u0441\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0445\u043e\u0440\u043e\u0448\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0432\u043e \u0432\u0441\u0435\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 System Volume Information \u043d\u0435 \u0443\u0434\u0430\u0451\u0442\u0441\u044f, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 FileX \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0432\u0430\u0435\u0442 \u0442\u0430\u043c \u0437\u0430\u043f\u0438\u0441\u0438 \u0441\u00a0 <strong>Entry Type = 0xE5<\/strong> , \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0432 exFAT. \u0427\u0442\u043e\u0431\u044b \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u044d\u0442\u043e \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043a\u0430\u0440\u0442\u0443 \u043d\u0430\u0434\u043e \u043f\u0435\u0440\u0435\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0435 \u043f\u043e\u0434 exFAT.\u00a0<\/p>\n<p>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043e\u043f\u0446\u0438\u0438 <strong>FX_ENABLE_FAULT_TOLERANT<\/strong> \u0441\u043d\u0438\u0436\u0430\u0435\u0442 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 exFAT \u043d\u0430 SD \u043a\u0430\u0440\u0442\u0435 \u043d\u0430 50% \u0441\u00a0 2400 \u0434\u043e 1600 \u043a\u0431\u0430\u0439\u0442 \u0432 \u0441\u0435\u043a. \u043f\u0440\u0438 \u0442\u0430\u043a\u0442\u043e\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u043e\u0442\u0435 \u043a\u0430\u0440\u0442\u044b 30 \u041c\u0413\u0446 \u0438 \u0440\u0430\u0437\u043c\u0435\u0440\u0435 \u0444\u0430\u0439\u043b\u043e\u0432 8 \u043a\u0431\u0430\u0439\u0442. \u0424\u0430\u0439\u043b\u043e\u0432\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 exFAT \u043d\u0430 \u0437\u0430\u043f\u0438\u0441\u044c \u043f\u0440\u0438\u0431\u043b\u0438\u0437\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0432 \u0434\u0432\u0430 \u0440\u0430\u0437\u0430 \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u0435\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0447\u0435\u043c FAT32. \u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0447\u0442\u0435\u043d\u0438\u044f \u043d\u0435 \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f. <\/p>\n<p>Fault Tolerant \u0444\u0430\u0439\u043b\u043e\u0432\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 FAT32 c \u0442\u0430\u043a\u0442\u043e\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u043e\u0442\u043e\u0439 SD \u043a\u0430\u0440\u0442\u044b 30 \u041c\u0413\u0446 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430 \u0437\u0430\u043f\u0438\u0441\u044c \u0441\u043e \u0441\u0440\u0435\u0434\u043d\u0435\u0439 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c\u044e 2100 \u043a\u0431\u0430\u0439\u0442 \u0432 \u0441\u0435\u043a., \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0447\u0442\u0435\u043d\u0438\u044f 9800 \u043a\u0431\u0430\u0439\u0442 \u0432 \u0441\u0435\u043a. \u0434\u043b\u044f \u0444\u0430\u0439\u043b\u043e\u0432 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u0432 8 \u043a\u0431\u0430\u0439\u0442. \u0414\u043b\u044f \u0444\u0430\u0439\u043b\u043e\u0432 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c 32768 \u0431\u0430\u0439\u0442 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0431\u0443\u0434\u0443\u0442 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u00a0 5400 \u0438 12800 \u043a\u0431\u0430\u0439\u0442 \u0432 \u0441\u0435\u043a. \u041f\u0440\u0438 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u0444\u0438\u0440\u043c\u0432\u0430\u0440\u0435 \u043f\u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438.\u00a0\u0411\u0435\u0437 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u0444\u0430\u0439\u043b\u043e\u0432 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c 32768 \u0431\u0430\u0439\u0442 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0431\u0443\u0434\u0443\u0442 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u00a0 5200 \u0438 12700 \u043a\u0431\u0430\u0439\u0442 \u0432 \u0441\u0435\u043a.<\/p>\n<h3>\u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b  <\/h3>\n<p>\u041f\u0440\u0438\u0432\u0435\u0434\u0451\u043d\u043d\u044b\u0435 \u0432\u044b\u0448\u0435 \u0446\u0438\u0444\u0440\u044b \u0434\u0430\u043d\u044b \u043b\u0438\u0448\u044c \u0434\u043b\u044f \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u043a\u0438. \u0414\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 SD \u043a\u0430\u0440\u0442\u044b \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u0442\u0435\u0441\u0442\u044b \u0434\u043b\u044f \u0431\u043e\u043b\u044c\u0448\u0435\u0439 \u0443\u0432\u0435\u0440\u0435\u043d\u043d\u043e\u0441\u0442\u0438. \u0418 \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0435\u0441\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u0443\u043d\u043a\u0442 \u043c\u0435\u043d\u044e\u00a0\u0434\u043b\u044f \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/a4d\/2bd\/aa6\/a4d2bdaa65ebf07d21b6351668a90eec.png\" alt=\"\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0437\u0430\u043f\u0438\u0441\u0438 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b\" title=\"\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0437\u0430\u043f\u0438\u0441\u0438 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b\" width=\"707\" height=\"434\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/a4d\/2bd\/aa6\/a4d2bdaa65ebf07d21b6351668a90eec.png\"\/><\/p>\n<div><figcaption>\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0437\u0430\u043f\u0438\u0441\u0438 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b<\/figcaption><\/div>\n<\/figure>\n<p>\u0417\u0430\u0445\u043e\u0434\u0438\u043c \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0447\u0435\u0440\u0435\u0437 Telnet , \u0442\u0430\u043c \u043d\u0430\u0445\u043e\u0434\u0438\u043c \u043c\u0435\u043d\u044e \u0434\u043b\u044f \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f FS \u0438 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u043d\u0443\u0436\u043d\u044b\u0439 \u043f\u0443\u043d\u043a\u0442. \u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u0438, \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0447\u0442\u0435\u043d\u0438\u044f, \u0432\u0440\u0435\u043c\u044f \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u044f \u0438 \u0437\u0430\u043a\u0440\u044b\u0442\u0438\u044f \u0444\u0430\u0439\u043b\u043e\u0432, \u0432\u0440\u0435\u043c\u044f \u0441\u0442\u0438\u0440\u0430\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u043e\u0432, \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043f\u0440\u0438 \u043d\u0430\u043a\u043e\u043f\u043b\u0435\u043d\u0438\u0438 \u0444\u0430\u0439\u043b\u043e\u0432 \u0438 \u043f\u0440\u0438 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u0445 \u043d\u0430 \u043e\u0434\u0438\u043d\u043e\u0447\u043d\u043e\u043c \u0444\u0430\u0439\u043b\u0435. \u041d\u0430\u0431\u043b\u044e\u0434\u0430\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043f\u0440\u0438 \u043f\u043e\u0431\u043b\u043e\u0447\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 \u0432 \u043e\u0434\u0438\u043d \u0444\u0430\u0439\u043b. <\/p>\n<h3>\u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0432 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u0430 mDNS Azure RTOS. <\/h3>\n<p>\u0421\u0435\u0442\u0435\u0432\u043e\u0439 \u0441\u0435\u0440\u0432\u0438\u0441 mDNS \u043d\u0443\u0436\u0435\u043d \u0434\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u0432 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0435\u0442\u0438 \u043d\u0435 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u043b\u043e\u0441\u044c \u0440\u0430\u0437\u044b\u0441\u043a\u0438\u0432\u0430\u0442\u044c IP \u0430\u0434\u0440\u0435\u0441 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430, \u0430 \u043e\u0431\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u043a \u043d\u0435\u043c\u0443 \u043f\u043e \u0438\u043c\u0435\u043d\u0438 \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u043c\u0443 \u0432 \u0441\u0430\u043c\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e. \u0412 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u0435\u0442\u044f\u0445 \u0447\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0443\u0435\u0442 DHCP \u0441\u0435\u0440\u0432\u0435\u0440 \u0438 \u043d\u0430\u0448\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u043f\u0440\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u0432 \u0441\u0435\u0442\u044c \u0434\u043e\u043b\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0432\u043e\u0435\u0433\u043e DHCP \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c IP \u0430\u0434\u0440\u0435\u0441.  \u041a\u0430\u043a\u043e\u0439 \u0430\u0434\u0440\u0435\u0441 \u043e\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u043c\u044b \u043e\u0431\u044b\u0447\u043d\u043e \u043d\u0435 \u0437\u043d\u0430\u0435\u043c. \u0410\u0434\u0440\u0435\u0441 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e \u0438\u0437 \u043f\u0443\u043b\u0430 \u0430\u0434\u0440\u0435\u0441\u043e\u0432.  \u041d\u043e \u0435\u0441\u043b\u0438 \u0432 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435 \u0435\u0441\u0442\u044c \u0441\u0435\u0440\u0432\u0438\u0441 mDNS, \u0442\u043e \u043e\u043d\u043e \u0433\u0440\u043e\u043c\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u043e\u0431\u044a\u044f\u0432\u0438\u0442 \u0432 \u0441\u0435\u0442\u044c \u043a\u0430\u043a\u043e\u0435 \u0443 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0438\u043c\u044f \u0438 \u043a\u0430\u043a\u043e\u0439 \u0430\u0434\u0440\u0435\u0441 \u043e\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e \u043e\u0442 DHCP \u0441\u0435\u0440\u0432\u0435\u0440\u0430. \u042d\u0442\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u0438\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u044e\u0442 \u0432\u0441\u0435 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u044b \u0432 \u0441\u0435\u0442\u0438 \u0438 \u043c\u043e\u0433\u0443\u0442 \u0443\u0436\u0435 \u043e\u0431\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u043a \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0443 \u043f\u043e \u0438\u043c\u0435\u043d\u0438 \u0430 \u043d\u0435 \u043f\u043e IP \u0430\u0434\u0440\u0435\u0441\u0443.  <\/p>\n<p>\u0422\u0430\u043a \u0432\u043e\u0442 \u0432 \u0441\u0442\u0435\u043a\u0435 NetX Duo \u0435\u0441\u0442\u044c \u0443\u0436\u0430\u0441\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430 \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0430 \u043f\u0440\u043e\u0431\u0438\u043d\u0433\u0430. \u0422\u0430\u043c \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u0443\u0442\u0430\u043d\u0438\u0446\u0430 \u0441\u043e \u0437\u043d\u0430\u043a\u043e\u0432\u044b\u043c\u0438 \u0438 \u0431\u0435\u0437\u0437\u043d\u0430\u043a\u043e\u0432\u044b\u043c\u0438 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u043c\u0438. \u0418\u0437-\u0437\u0430 \u044d\u0442\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b \u043f\u0440\u043e\u0431\u0438\u043d\u0433\u0430 \u043c\u043e\u0436\u0435\u0442 \u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u043f\u043e\u0447\u0442\u0438 \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u044b\u043c. \u0422.\u0435. \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0441\u0435\u0440\u0432\u0438\u0441 mDNS \u0431\u0443\u0434\u0435\u0442 \u0443\u043f\u043e\u0440\u043d\u043e \u043c\u043e\u043b\u0447\u0430\u0442\u044c. \u0412 \u043d\u0430\u0448\u0435\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u044d\u0442\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0430. <\/p>\n<p>\u041f\u043e \u0445\u043e\u0434\u0443 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b\u0430\u0441\u044c \u043d\u0435\u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c \u0432 \u0441\u0435\u0442\u0435\u0432\u043e\u043c \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0435 SSP \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0435\u043c \u0447\u0435\u0440\u0435\u0437 \u043a\u043b\u0430\u0441\u0441 <strong>USB ECM<\/strong> \u0438\u043b\u0438 <strong>USB RNDIS<\/strong>. \u0422\u0430\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u044b <strong>NX_LINK_MULTICAST_JOIN<\/strong> \u0438 <strong>NX_LINK_MULTICAST_LEAVE<\/strong> \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u043b\u0438 \u0441\u0442\u0430\u0442\u0443\u0441 \u043e\u0448\u0438\u0431\u043a\u0438 \u0438 \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0448\u0438\u0440\u043e\u043a\u043e\u043f\u043e\u043b\u043e\u0441\u043d\u044b\u0435 \u043f\u043e\u0441\u044b\u043b\u043a\u0438 \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0435 \u0432\u044b\u0445\u043e\u0434\u0438\u043b\u0438 \u0438\u0437 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430. <\/p>\n<h3>\u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0432 \u0441\u0435\u0440\u0432\u0438\u0441\u0435 \u0442\u043e\u0447\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 Azure RTOS. <\/h3>\n<p>\u0412 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d \u043a\u043b\u0438\u0435\u043d\u0442 SNTP. \u0422\u043e\u0447\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0432\u0435\u0441\u044c\u043c\u0430 \u043f\u043e\u043b\u0435\u0437\u043d\u043e \u043f\u0440\u0438 \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043e\u0442\u043b\u0430\u0434\u043a\u0435 \u0438 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u043e\u0442\u043b\u0430\u0434\u043a\u0438 \u0432 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0435 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e \u0442\u043e\u0447\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043d\u0435 \u043f\u043e\u043c\u0435\u0448\u0430\u0435\u0442 \u043f\u0440\u0438 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0437\u0430\u0449\u0438\u0449\u0451\u043d\u043d\u043e\u0433\u043e \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u043e\u0433\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f. <\/p>\n<p>\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u043a\u043b\u0438\u0435\u043d\u0442 \u0432 \u0441\u043e\u0441\u0442\u0430\u0432\u0435 Azure RTOS \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442. \u042f \u0440\u0435\u0448\u0438\u043b \u0447\u0442\u043e \u0432\u0440\u0435\u043c\u044f \u043f\u043e\u043b\u0438\u043d\u0433\u0430 \u043b\u0443\u0447\u0448\u0435 \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u0438 \u0432\u044b\u0432\u0435\u043b \u0435\u0433\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 \u0432 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b API \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u0432\u0440\u0435\u043c\u0435\u043d\u0438. <\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/dfe\/e09\/2b9\/dfee092b937c28c454800aa043e0160a.png\" alt=\"\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u0442\u043e\u0447\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438\" title=\"\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u0442\u043e\u0447\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438\" width=\"605\" height=\"280\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/dfe\/e09\/2b9\/dfee092b937c28c454800aa043e0160a.png\"\/><\/p>\n<div><figcaption>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u0442\u043e\u0447\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438<\/figcaption><\/div>\n<\/figure>\n<p>\u0422\u0430\u043a\u0436\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043b \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0443\u044e \u0437\u0430\u0434\u0430\u0447\u0443 \u0434\u043b\u044f \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0438 \u0432\u0432\u0451\u043b \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 \u0442\u0440\u0435\u0445 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432 \u0442\u043e\u0447\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0434\u043b\u044f \u0431\u043e\u043b\u044c\u0448\u0435\u0439 \u043d\u0430\u0434\u0451\u0436\u043d\u043e\u0441\u0442\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u0435\u0440\u0432\u0438\u0441\u0430.   <\/p>\n<h2>\u041d\u0435\u043c\u043d\u043e\u0433\u043e \u0442\u044e\u043d\u0438\u043d\u0433\u0430<\/h2>\n<p>\u041a\u0430\u043a \u0432\u0441\u0435\u0433\u0434\u0430 \u043d\u0435 \u043e\u0431\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0431\u0435\u0437 \u0442\u044e\u043d\u0438\u043d\u0433\u0430 \u043f\u043b\u0430\u0442\u044b. \u0427\u0442\u043e\u0431\u044b \u0441 \u043f\u043b\u0430\u0442\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u0430\u043b \u0430\u0434\u0430\u043f\u0442\u0435\u0440 USB-Ethernet \u043d\u0430 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043d\u0430\u0434\u043e \u043f\u043e\u0434\u0430\u0442\u044c +5 \u0432\u043e\u043b\u044c\u0442 \u0438\u0437 \u043f\u043b\u0430\u0442\u044b. \u041c\u044b \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u043c \u043f\u043e\u0434\u043f\u0430\u044f\u0432 \u043f\u0435\u0440\u0435\u043c\u044b\u0447\u043a\u0443 \u043d\u0430 VD8<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/a69\/46c\/d64\/a6946cd64df776b546b6a0e3bf8adb1d.png\" width=\"1258\" height=\"376\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/a69\/46c\/d64\/a6946cd64df776b546b6a0e3bf8adb1d.png\"\/><\/figure>\n<p>\u041f\u0440\u043e\u0441\u0442\u043e \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u043d\u0435 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u043b\u043e\u0441\u044c \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u0440\u0435\u0436\u0438\u043c USB \u0445\u043e\u0441\u0442\u0430 \u0432 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0435. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0434\u0440\u0430\u0439\u0432\u0435\u0440 USB ECM \u043d\u0435 \u0431\u044b\u043b \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d \u0432 SSP. \u041d\u043e \u043e\u043f\u044b\u0442 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f Azure RTOS \u043f\u043e\u043a\u0430\u0437\u0430\u043b \u043e\u0447\u0435\u043d\u044c \u0445\u043e\u0440\u043e\u0448\u0443\u044e \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u0443\u0435\u043c\u043e\u0441\u0442\u044c \u0435\u0451 \u043f\u043e\u0434 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u043e\u0435 \u0436\u0435\u043b\u0435\u0437\u043e. \u0418 \u0445\u043e\u0441\u0442 \u0440\u0435\u0448\u0435\u043d\u043e \u0431\u044b\u043b\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c.  <\/p>\n<figure class=\"float\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/1c3\/f69\/f48\/1c3f69f481998142ac520c10635756ab.png\" width=\"276\" height=\"129\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/1c3\/f69\/f48\/1c3f69f481998142ac520c10635756ab.png\"\/><\/figure>\n<p>\u0421 \u0440\u0435\u0436\u0438\u043c\u0430 \u0445\u043e\u0441\u0442\u0430 \u043d\u0430 \u0440\u0435\u0436\u0438\u043c \u0434\u0435\u0432\u0430\u0439\u0441\u0430 USB \u043c\u043e\u0436\u043d\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a.  <\/p>\n<p>\u0412 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0434\u0430\u043d \u043f\u0435\u0440\u0435\u0447\u0435\u043d\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0445 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 USB, \u0435\u0441\u043b\u0438  \u0438\u0445 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0447\u0435\u0440\u0435\u0437 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b. <\/p>\n<p>\u041c\u043e\u0436\u0435\u0442 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u0441 \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u044a\u0451\u043c\u043e\u043c \u0441\u043e\u0444\u0442\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0431\u0443\u0434\u0435\u0442 \u043e\u0447\u0435\u043d\u044c \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u043c \u0438 \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c. \u041d\u043e \u044d\u0442\u043e \u043d\u0435 \u0442\u0430\u043a. \u0412\u043e\u0442 \u043a\u0430\u043a\u0443\u044e \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043e\u043a\u043d\u043e \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 FreeMaster. \u0417\u0434\u0435\u0441\u044c \u0437\u0435\u043b\u0451\u043d\u0430\u044f \u043b\u0438\u043d\u0438\u044f &#8212; \u044d\u0442\u043e \u0443\u0441\u0440\u0435\u0434\u043d\u0451\u043d\u043d\u0430\u044f \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430. \u041d\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0432 100% \u0431\u0443\u0434\u0435 \u043d\u0430 \u0433\u0440\u0430\u0444\u0438\u043a\u0435 \u0438\u043c\u0435\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 1000 (\u0442\u0430\u043a \u043d\u0443\u0436\u043d\u043e \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0441 \u043f\u043b\u0430\u0432\u0430\u044e\u0449\u0435\u0439 \u0442\u043e\u0447\u043a\u043e\u0439). \u041a\u0430\u043a \u0432\u0438\u0434\u043d\u043e \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043d\u0435 \u043f\u0440\u0435\u0432\u044b\u0448\u0430\u0435\u0442 14%. \u0418 \u0434\u0430\u0436\u0435 \u044d\u0442\u043e \u0432\u044b\u0437\u0432\u0430\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e  \u043b\u0438\u0448\u044c \u0438\u043d\u0442\u0435\u043d\u0441\u0438\u0432\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u043e\u0439 \u043a\u043b\u0438\u0435\u043d\u0442\u0430 FreeMaster, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u0435\u0434\u0451\u0442 \u043e\u043f\u0440\u043e\u0441 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430  \u043a\u0430\u0436\u0434\u044b\u0435 10 \u043c\u0441\u0435\u043a. \u0411\u0435\u0437 \u044d\u0442\u043e\u0433\u043e \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0435\u0432\u044b\u0448\u0430\u0442\u044c 6% \u043f\u0440\u0438 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u043c \u0445\u043e\u0441\u0442\u0435 USB \u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0432 \u0441\u0435\u0442\u0438. <\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/11a\/4a7\/6a9\/11a4a76a9fbbacd0bcd3aaa2c954e6b6.gif\" width=\"600\" height=\"371\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/11a\/4a7\/6a9\/11a4a76a9fbbacd0bcd3aaa2c954e6b6.gif\"\/><\/figure>\n<p>\u041f\u043e \u043e\u0431\u044a\u0451\u043c\u0443 \u0437\u0430\u043d\u044f\u0442\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u0442\u0430\u043a\u0430\u044f:<\/p>\n<pre><code>  672'258 bytes of readonly  code memory    64'380 bytes of readonly  data memory   396'572 bytes of readwrite data memory<\/code><\/pre>\n<p>\u041f\u0440\u043e\u0435\u043a\u0442 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f <a href=\"https:\/\/github.com\/Indemsys\/MC50\/tree\/main\/Middleware_porting_project\" rel=\"noopener noreferrer nofollow\">\u0437\u0434\u0435\u0441\u044c<\/a><\/p>\n<p>\u0420\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u0442\u0441\u044f \u2026<\/p>\n<\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \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\/727640\/\"> https:\/\/habr.com\/ru\/articles\/727640\/<\/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>\u0421\u0445\u0435\u043c\u0430 \u0438 \u043f\u043b\u0430\u0442\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 &#8212;<a href=\"https:\/\/habr.com\/ru\/articles\/707738\/\" rel=\"noopener noreferrer nofollow\"><u> \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435<\/u><\/a>.<br \/>\u041f\u0435\u0440\u0432\u044b\u0435 \u0448\u0430\u0433\u0438 \u043f\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 \u0431\u044b\u043b\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u044b\u00a0 <a href=\"https:\/\/habr.com\/ru\/articles\/724586\/\" rel=\"noopener noreferrer nofollow\"><u>\u0437\u0434\u0435\u0441\u044c<\/u><\/a>. \u0410 \u0442\u0435\u043f\u0435\u0440\u044c \u0437\u0430\u0439\u043c\u0451\u043c\u0441\u044f \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u043c \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u0435\u043c. \u041f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u043e\u0435 \u041f\u041e &#8212; \u044d\u0442\u043e \u0442\u043e, \u0447\u0442\u043e \u043f\u0440\u0438\u0434\u0430\u0451\u0442 \u043d\u0430\u0448\u0435\u043c\u0443 \u0434\u0435\u0432\u0430\u0439\u0441\u0443 \u043e\u0441\u043d\u043e\u0432\u043d\u0443\u044e \u043c\u0430\u0441\u0441\u0443 \u0444\u0438\u0447\u0435\u0439. RTOS \u0434\u043b\u044f \u0432\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c \u043f\u0440\u0438\u043e\u0431\u0440\u0435\u0442\u0430\u044e\u0442 \u043e\u0441\u043e\u0431\u0443\u044e \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u0441\u0442\u044c \u043a\u043e\u0433\u0434\u0430 \u0441\u043e\u043f\u0440\u043e\u0432\u043e\u0436\u0434\u0430\u044e\u0442\u0441\u044f \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u043c \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u043c \u0441\u043e\u0444\u0442\u043e\u043c.   <\/p>\n<p>RTOS <a href=\"https:\/\/habr.com\/ru\/articles\/724586\/\" rel=\"noopener noreferrer nofollow\"><u>\u0443\u0436\u0435 \u043d\u0430\u043c\u0438 \u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0430 <\/u><\/a>, \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u043c \u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u0443\u044e \u043a \u0441\u0431\u043e\u044f\u043c \u0444\u0430\u0439\u043b\u043e\u0432\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443 exFAT, \u0441\u0442\u0435\u043a TCP\/IP \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u043f\u0440\u0438\u043a\u043b\u0430\u0434\u043d\u044b\u043c\u0438\u00a0 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430\u043c\u0438 HTTP, MQTT, SNTP, DNS, mDNS, FTP, Telnet , \u0441\u0442\u0435\u043a USB \u0432 \u0440\u0435\u0436\u0438\u043c\u0430\u0445 \u0434\u0435\u0432\u0430\u0439\u0441\u0430 \u0438 \u0445\u043e\u0441\u0442\u0430 \u0441 \u043a\u043b\u0430\u0441\u0441\u0430\u043c\u0438 CDC ACM, CDC ECM, RNDIS, Storage, HID, \u0434\u0432\u0438\u0436\u043e\u043a \u043b\u043e\u0433\u0433\u0435\u0440\u0430, \u0434\u0432\u0438\u0436\u043e\u043a \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u043d\u0430 \u0431\u0430\u0437\u0435 JSON \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0438, \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u044b\u0435\u00a0 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u044b, \u0434\u0432\u0438\u0436\u043e\u043a FreeMaster.\u00a0\u00a0\u00a0\u00a0<\/p>\n<p>\u0421\u0442\u0435\u043a \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u0432 TCP\/IP \u043d\u0430\u043c \u0437\u0434\u0435\u0441\u044c \u043d\u0443\u0436\u0435\u043d, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043e\u043d, \u0432\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0431\u043b\u0435\u0433\u0447\u0430\u0435\u0442 \u0434\u0438\u0441\u0442\u0430\u043d\u0446\u0438\u043e\u043d\u043d\u0443\u044e \u043e\u0442\u043b\u0430\u0434\u043a\u0443 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430. \u0412\u043e-\u0432\u0442\u043e\u0440\u044b\u0445, \u0441\u0435\u0442\u044c \u0443\u043f\u0440\u043e\u0449\u0430\u0435\u0442 \u0433\u0440\u0443\u043f\u043f\u043e\u0432\u043e\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0438 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0432 \u043e\u0434\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f. \u0418 \u0432-\u0442\u0440\u0435\u0442\u044c\u0438\u0445, \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0443\u043f\u0440\u043e\u0449\u0430\u0435\u0442\u0441\u044f \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0432 \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0435\u0435 \u041f\u041e \u0434\u043b\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u0435\u043c\u00a0 \u0442\u0430\u043a\u043e\u0435 \u043a\u0430\u043a: <a href=\"https:\/\/www.eclipse.org\/4diac\/index.php\" rel=\"noopener noreferrer nofollow\"><u>Eclipse 4diac<\/u><\/a>, <a href=\"https:\/\/se.mathworks.com\/products.html?s_tid=gn_ps\" rel=\"noopener noreferrer nofollow\"><u>MATLAB<\/u><\/a>, <a href=\"https:\/\/nodered.org\/\" rel=\"noopener noreferrer nofollow\"><u>Node-RED<\/u><\/a>, <a href=\"https:\/\/www.openhab.org\/docs\/\" rel=\"noopener noreferrer nofollow\"><u>openHAB<\/u><\/a>\u00a0 \u0438 \u0442.\u043f. \u0415\u0449\u0435 \u043e\u0434\u043d\u0430 \u043d\u0435\u043e\u0447\u0435\u0432\u0438\u0434\u043d\u0430\u044f \u043f\u0440\u0438\u0447\u0438\u043d\u0430 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043d\u0438\u043a USB-Ethernet \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u0433\u0430\u043b\u044c\u0432\u0430\u043d\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0440\u0430\u0437\u0432\u044f\u0437\u043a\u0443. \u0418 \u044d\u0442\u0430 \u0440\u0430\u0437\u0432\u044f\u0437\u043a\u0430 \u0435\u0441\u0442\u044c \u0432 \u043b\u044e\u0431\u043e\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435 \u0441 \u0440\u0430\u0437\u044a\u0451\u043c\u043e\u043c Ethernet. \u041f\u0440\u043e \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044e \u0442\u0430\u043a\u043e\u0433\u043e \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043d\u0438\u043a\u0430 \u0432 Azure RTOS \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e <a href=\"https:\/\/habr.com\/ru\/articles\/676120\/\" rel=\"noopener noreferrer nofollow\"><u>\u0437\u0434\u0435\u0441\u044c<\/u><\/a>.<\/p>\n<p>\u041d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043f\u043e\u0447\u0442\u0438 \u0432\u0441\u0435 \u043d\u0443\u0436\u043d\u044b\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u0432\u044b\u0431\u0438\u0440\u0430\u044e\u0442\u0441\u044f \u0432 \u043e\u043a\u043d\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 <a href=\"https:\/\/www.renesas.com\/us\/en\/products\/microcontrollers-microprocessors\/renesas-synergy-platform-mcus\" rel=\"noopener noreferrer nofollow\"><u>Synergy Software Package (SSP)<\/u><\/a> \u0432 IDE <a href=\"https:\/\/www.renesas.com\/us\/en\/software-tool\/e-studio-renesas-synergy\" rel=\"noopener noreferrer nofollow\"><u>e\u00b2 studio<\/u><\/a><\/p>\n<p>\u041a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043c\u043d\u043e\u0433\u043e. \u0414\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043d\u0430\u0434\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0442\u044c \u0440\u0443\u0442\u0438\u043d\u043d\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u043f\u043e \u0432\u044b\u0431\u043e\u0440\u0443 \u043e\u043f\u0446\u0438\u0439, \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043d\u043e\u043c\u0435\u0440\u043e\u0432 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439, \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u043e\u0432 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439, \u043d\u043e\u043c\u0435\u0440\u043e\u0432 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u044b\u0445 \u043a\u0430\u043d\u0430\u043b\u043e\u0432 \u0438 \u0442\u0438\u043f\u043e\u0432 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u044b\u0445 \u043a\u0430\u043d\u0430\u043b\u043e\u0432, \u0440\u0430\u0437\u0440\u0443\u043b\u0438\u0432\u0430\u0442\u044c \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u044b \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u043e\u0432 \u0438 \u043d\u0430\u0437\u043d\u0430\u0447\u0430\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u0441\u043b\u0443\u0436\u0435\u0431\u043d\u044b\u0445 \u0431\u0443\u0444\u0435\u0440\u043e\u0432 \u0438 \u0441\u0442\u0435\u043a\u043e\u0432.<\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u041e\u043a\u043d\u043e \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u043e\u0433\u043e \u041f\u041e \u0432 SSP<\/figcaption><\/div>\n<\/figure>\n<p>\u0420\u0430\u0431\u043e\u0442\u0430, \u043d\u0430\u0434\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0442\u044f\u0436\u0435\u043b\u0435\u0439\u0448\u0430\u044f. \u041d\u0430 \u0432\u0441\u043a\u0438\u0434\u043a\u0443 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043d\u0435 \u043e\u0434\u0438\u043d \u043c\u0435\u0441\u044f\u0446 \u0447\u0442\u043e\u0431\u044b \u043e\u0432\u043b\u0430\u0434\u0435\u0442\u044c \u0432\u0441\u0435\u043c\u0438 \u0445\u0438\u0442\u0440\u043e\u0441\u0442\u044f\u043c\u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432 e2studio \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0440\u0430\u0431\u043e\u0447\u0438\u0445 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432, \u0435\u0441\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u043b\u043d\u044b\u0439 \u043d\u0430\u0431\u043e\u0440 \u0441\u0442\u0435\u043a\u043e\u0432 \u0438\u0437 SSP \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435.\u00a0<\/p>\n<p>\u041d\u043e, \u043a \u0441\u0447\u0430\u0441\u0442\u044c\u044e, \u044f \u0432\u0441\u044e \u044d\u0442\u0443 \u0440\u0430\u0431\u043e\u0442\u0443 \u0443\u0436\u0435 \u043f\u0440\u043e\u0434\u0435\u043b\u0430\u043b \u0438 \u0442\u0443\u0442 \u0432\u044b\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u044e \u0433\u043e\u0442\u043e\u0432\u044b\u0439 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u0441\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u0439 \u0438\u0437 \u0442\u043e\u0433\u043e \u0447\u0442\u043e \u0435\u0441\u0442\u044c \u0432 SSP \u0438 \u0442\u043e\u0433\u043e \u0447\u0442\u043e \u0435\u0441\u0442\u044c \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u0430\u0440\u0438\u0438 Azure RTOS.\u00a0\u00a0\u00a0<\/p>\n<p>\u0418\u0442\u0430\u043a, \u043f\u043e\u0441\u043b\u0435 \u0430\u0432\u0442\u043e \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432 \u0438\u0437 SSP \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c 2125 \u0444\u0430\u0439\u043b\u043e\u0432 \u0441 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0430\u043c\u0438. \u0421\u0430\u043c\u043e\u0435 \u0446\u0435\u043d\u043d\u043e\u0435 \u0432 \u043d\u0438\u0445 &#8212; \u044d\u0442\u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0441\u043e\u0431\u043e \u0441\u043b\u043e\u0436\u043d\u044b\u0435 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a:\u00a0 SDIO, USB, DMA, \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u0430\u044f \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u044f, \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0443\u0441\u043a\u043e\u0440\u0438\u0442\u0435\u043b\u044c.\u00a0<\/p>\n<p>\u0411\u043e\u043b\u044c\u0448\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432 \u0431\u0443\u0434\u0435\u0442 \u043e\u0434\u043d\u0430\u043a\u043e \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u043c \u0441\u043e\u0444\u0442\u043e\u043c Azure RTOS. \u0412 SSP \u0438\u0434\u0451\u0442 \u0441\u0432\u043e\u044f \u0432\u0435\u0440\u0441\u0438\u044f Azure RTOS, \u043e\u043d\u0430 \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u0442\u043e\u0439 \u0447\u0442\u043e \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u0430\u0440\u0438\u0438 \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043e\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0439 \u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u043c \u0445\u0435\u0434\u0435\u0440\u043e\u0432 \u0441 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u043c\u0438 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0430\u043c\u0438.\u00a0 \u041a \u044f\u0434\u0440\u0443 RTOS \u0438\u0434\u0451\u0442 \u0441\u0432\u043e\u0439 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u0440\u0442 \u0434\u043b\u044f \u0441\u0435\u043c\u0435\u0439\u0441\u0442\u0432\u0430 Synergy. \u041d\u0430 \u043c\u043e\u043c\u0435\u043d\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0441\u0442\u0430\u0442\u044c\u0438 \u0440\u0435\u043b\u0438\u0437 \u044f\u0434\u0440\u0430 RTOS \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u0430\u0440\u0438\u0438 Azure RTOS \u0431\u044b\u043b 6.20, \u0430 \u0440\u0435\u043b\u0438\u0437 \u044f\u0434\u0440\u0430 \u0432 SSP 2.4.0 \u0431\u044b\u043b \u0432\u0435\u0440\u0441\u0438\u0438 6.1.9. \u041e\u0442\u0441\u0442\u0430\u0432\u0430\u043d\u0438\u0435 \u0445\u043e\u0442\u044c \u0438 \u043d\u0435\u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435, \u043d\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 API \u043d\u0435 \u0434\u0430\u0434\u0443\u0442 \u0442\u0430\u043a \u043f\u0440\u043e\u0441\u0442\u043e \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u043e\u0434\u043d\u043e \u0434\u0440\u0443\u0433\u0438\u043c. <\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0439 \u043f\u043e\u0441\u043b\u0435 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0438\u0437 SSP<\/figcaption><\/div>\n<\/figure>\n<h3>\u0410 \u0442\u0435\u043f\u0435\u0440\u044c \u0443\u0431\u0435\u0440\u0451\u043c \u043b\u0438\u0448\u043d\u0435\u0435 \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u043d\u0443\u0436\u043d\u043e\u0435.<\/h3>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043c\u044b \u0443\u0432\u0438\u0434\u0438\u043c \u0436\u0438\u0440\u043d\u044b\u0439 \u0441\u043b\u043e\u0439 HAL \u0438\u0437\u043e\u043b\u0438\u0440\u0443\u044e\u0449\u0438\u0439 \u043d\u0430\u0441 \u043e\u0442 \u043f\u0440\u044f\u043c\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u0438. HAL \u0445\u043e\u0440\u043e\u0448\u043e \u043f\u043e\u0441\u043b\u0443\u0436\u0438\u0432\u0448\u0438\u0439 \u043d\u0430\u043c \u043d\u0430 \u043f\u0435\u0440\u0432\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u0442\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u0443\u0436\u0435 \u043c\u0435\u0448\u0430\u0442\u044c.\u00a0 \u041d\u0430\u043c \u043d\u0443\u0436\u0435\u043d \u043f\u0440\u044f\u043c\u043e\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043f\u043e\u0440\u0442\u0430\u043c , \u043a \u0434\u0432\u0438\u0436\u043a\u0443 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u043c\u0435\u0436\u0434\u0443 \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u0435\u0439, \u043a \u043a\u043e\u043c\u043c\u0443\u043d\u0438\u043a\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u0438 \u0438 \u043f\u0440\u043e\u0447.<\/p>\n<p>\u0417\u0434\u0435\u0441\u044c \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0442\u0449\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u0435 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432 \u0438 \u043e\u0446\u0435\u043d\u043a\u0430 \u0441\u0432\u043e\u0438\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439. \u041f\u043e\u043b\u043d\u043e\u0441\u0442\u044c \u0438\u0437\u0431\u0430\u0432\u0438\u0442\u044c\u0441\u044f \u043e\u0442 HAL \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0432 \u043e\u0431\u043e\u0437\u0440\u0438\u043c\u043e\u0439 \u043f\u0435\u0440\u0441\u043f\u0435\u043a\u0442\u0438\u0432\u0435. \u041d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0440\u044f\u043c\u043e\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u043a\u00a0 \u043f\u043e\u0440\u0442\u0430\u043c \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0442\u0440\u0438\u0432\u0438\u0430\u043b\u044c\u043d\u043e. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0430\u0434\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0440\u044f\u043c\u043e \u043e\u0431\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u043a \u043f\u043e\u0440\u0442\u0430\u043c. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0447\u0442\u043e\u0431\u044b \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434\u043e\u043c \u043e\u0431\u044a\u044f\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434\u0430<\/p>\n<pre><code class=\"cpp\">#define     RED_LED            R_PFS->P504PFS_b.PODR<\/code><\/pre>\n<p>\u0410 \u0434\u0430\u043b\u0435\u0435 \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u043c <strong><em>RED_LED = 1<\/em><\/strong> \u0438\u043b\u0438 \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0435\u043c <strong><em>RED_LED = 0<\/em><\/strong> \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434. \u041f\u0440\u043e\u0449\u0435 \u0447\u0435\u043c \u0432 Arduino. \u041a\u0430\u043a \u043f\u043e\u043a\u0430\u0437\u0430\u043b \u0430\u043d\u0430\u043b\u0438\u0437, \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u043e\u0432 \u0441 HAL \u0442\u0443\u0442 \u043d\u0435 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u0435\u0442. \u0422\u043e\u043b\u044c\u043a\u043e \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0430\u0434\u043e \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u0443\u0441\u0442\u043e\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443\u00a0<\/p>\n<pre><code class=\"cpp\">const ioport_cfg_t g_bsp_pin_cfg = {   .number_of_pins = 0,   .p_pin_cfg_data =0, }; <\/code><\/pre>\n<p>\u042d\u0442\u0430 \u0442\u0430 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u0443\u044e HAL \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0439 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0438\u043d\u043e\u0432. \u041f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0435\u0451 \u0443\u0434\u0430\u043b\u044f\u0442\u044c \u043d\u0435\u043b\u044c\u0437\u044f, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0442\u043e\u0433\u0434\u0430 \u043e\u0442\u043a\u0430\u0436\u0443\u0442\u0441\u044f \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u044b\u00a0 SPI, I2C \u0432 \u0441\u043e\u0441\u0442\u0430\u0432\u0435 HAL. \u041d\u043e \u0438 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0430\u044f \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043e\u0442 HAL \u043d\u0430\u043c \u0442\u043e\u0436\u0435 \u043d\u0435 \u043d\u0443\u0436\u043d\u0430. \u0423 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0441\u0432\u043e\u0439 <a href=\"https:\/\/github.com\/Indemsys\/MC50\/blob\/main\/Middleware_porting_project\/src\/SoC_periphery\/Pins.c\" rel=\"noopener noreferrer nofollow\">\u0431\u043e\u043b\u0435\u0435 \u0443\u0434\u043e\u0431\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442<\/a>. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u044b\u0431\u0440\u0430\u043d \u0442\u0430\u043a\u043e\u0439 \u043a\u043e\u043c\u043f\u0440\u043e\u043c\u0438\u0441\u0441.\u00a0<\/p>\n<p>\u041d\u0435 \u0437\u0430\u0431\u044b\u0442\u044c \u0442\u0430\u043a\u0436\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043c\u0430\u043a\u0440\u043e\u0441 \u0434\u043b\u044f \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f  \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043f\u0438\u043d\u043e\u0432 \u043d\u0430 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0435.  <\/p>\n<pre><code class=\"cpp\">#define IOPORT_CFG_PARAM_CHECKING_ENABLE (0)<\/code><\/pre>\n<p>\u0415\u0449\u0435 \u0432\u0430\u0436\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e HAL \u043f\u043e\u0441\u043b\u0435 \u0441\u0432\u043e\u0435\u0439 \u0444\u0430\u0437\u044b \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0437\u0430\u043f\u0440\u0435\u0449\u0430\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u043c.\u00a0 \u042d\u0442\u043e\u0442 \u0434\u043e\u0441\u0442\u0443\u043f \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u043f\u043e\u0441\u043b\u0435 \u043e\u0442\u0440\u0430\u0431\u043e\u0442\u043a\u0438 HAL \u043d\u0430 \u0441\u0442\u0430\u0440\u0442\u0435.\u00a0<\/p>\n<p>\u0421\u043b\u043e\u0432\u043e\u043c \u0432\u043e\u0442 \u0442\u0430\u043a\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b \u043c\u043e\u0436\u043d\u043e \u0432\u0441\u0442\u0440\u0435\u0442\u0438\u0442\u044c \u0432 \u043c\u043e\u0435\u043c \u043a\u043e\u0434\u0435 \u0434\u043b\u044f \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u043c\u00a0<\/p>\n<pre><code class=\"cpp\">   \/\/ \u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u043c \u0437\u0430\u043f\u0438\u0441\u044c \u0432 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b \u043f\u0438\u043d\u043e\u0432     R_PMISC->PWPR_b.BOWI  = 0;     R_PMISC->PWPR_b.PFSWE = 1;      R_SYSTEM->PRCR = 0xA50B; \/\/ \u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0434\u043e\u0441\u0442\u0443\u043f \u043d\u0430 \u0437\u0430\u043f\u0438\u0441\u044c \u043a \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u043c <\/code><\/pre>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043e\u0447\u0435\u043d\u044c \u0432\u0430\u0436\u043d\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0434\u0432\u0438\u0436\u043e\u043a \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u043e\u0439 \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0438 \u0432 \u0447\u0438\u043f\u0435. \u042d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u043c\u0438:<\/p>\n<pre><code class=\"cpp\">trckcr = *((uint8_t*)(TRCKCR_REG)); trckcr = 0x80; *((uint8_t*)(TRCKCR_REG)) = trckcr; \/\/ \u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u043c \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u0441 \u0447\u0430\u0441\u0442\u043e\u0442\u0439 120 \u041c\u0413\u0446<\/code><\/pre>\n<p>\u00a0\u0412\u0441\u0435 \u044d\u0442\u0438 \u043c\u0430\u043d\u0438\u043f\u0443\u043b\u044f\u0446\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0432 \u0444\u0430\u0439\u043b\u0435 <strong>BSP_init.c<\/strong> . \u0422\u0430\u043c \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0445\u0432\u0430\u0442 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0447\u0430\u0441\u0442\u0435\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043d\u0430 \u0441\u0442\u0430\u0440\u0442\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b.\u00a0   <\/p>\n<h3>\u0421\u0430\u043c\u043e\u0435 \u0441\u043b\u043e\u0436\u043d\u043e\u0435 \u0432 HAL \u043e\u0442\u00a0 Synergy &#8212; \u044d\u0442\u043e \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f.  <\/h3>\n<p>HAL Synergy \u0431\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u044b\u0439 \u0447\u0435\u043c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, HAL STM32. \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438\u00a0 \u0438\u0437 Renesas \u0440\u0435\u0448\u0438\u043b\u0438 \u0441\u0438\u043b\u044c\u043d\u0435\u0435 \u0430\u0431\u0441\u0442\u0440\u0430\u0433\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043e\u0442 \u0436\u0435\u043b\u0435\u0437\u0430. \u0412\u0432\u0435\u043b\u0438 \u0444\u0430\u0439\u043b\u043e\u0432\u0443\u044e \u043c\u0435\u0442\u0430\u0444\u043e\u0440\u0443 \u0441\u0440\u043e\u0434\u043d\u0438 \u041b\u0438\u043d\u0443\u043a\u0441\u0443, \u0438 \u0441\u043e\u043f\u0440\u043e\u0432\u043e\u0434\u0438\u043b\u0438 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u044e \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u043e-\u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u043c\u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430\u043c\u0438 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0440\u0430\u0437\u043c\u0435\u0449\u0430\u0435\u043c\u044b\u043c\u0438 \u043b\u0438\u043d\u043a\u0435\u0440\u043e\u043c.\u00a0<\/p>\n<p>\u0412 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0435 Synergy \u043d\u0435\u0442 \u0436\u0451\u0441\u0442\u043a\u043e \u0437\u0430\u043a\u0440\u0435\u043f\u043b\u0451\u043d\u043d\u044b\u0445 \u0437\u0430 \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u0435\u0439 \u043d\u043e\u043c\u0435\u0440\u043e\u0432 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439. \u041b\u044e\u0431\u043e\u043c\u0443 \u0441\u0438\u0433\u043d\u0430\u043b\u0443 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f \u043e\u0442 \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0434\u0430\u0442\u044c \u043b\u044e\u0431\u043e\u0439 \u043d\u043e\u043c\u0435\u0440 \u0432 NVIC \u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0432\u0435\u043a\u0442\u043e\u0440. \u041d\u043e\u043c\u0435\u0440\u0430 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f\u043c \u0437\u0430\u0434\u0430\u044e\u0442\u0441\u044f \u0432 \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u0439\u043d\u043e\u043c \u0431\u043b\u043e\u043a\u0435\u00a0 \u043f\u043e\u0434 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c <strong>Interrupt Controller Unit (ICU)<\/strong> \u043d\u0430 \u044d\u0442\u0430\u043f\u0435 \u0441\u0442\u0430\u0440\u0442\u0430 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438.\u00a0<\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 ICU<\/figcaption><\/div>\n<\/figure>\n<p>\u0411\u043b\u043e\u043a ICU, \u043a\u0430\u043a \u0432\u0438\u0434\u043d\u043e \u0438\u0437 \u0441\u0445\u0435\u043c\u044b, \u0441\u0442\u043e\u0438\u0442 \u043c\u0435\u0436\u0434\u0443 \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u0435\u0439 \u0438 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u043c \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439 NVIC \u044f\u0434\u0440\u0430 ARM. \u041f\u043e \u0441\u0432\u043e\u0435\u0439 \u0441\u0443\u0442\u0438 \u0433\u0438\u0431\u043a\u043e\u0435 \u0438 \u0443\u0434\u043e\u0431\u043d\u043e\u0435\u00a0 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u044b SSP \u043f\u0440\u0435\u0432\u0440\u0430\u0442\u0438\u043b\u0438 \u0432 \u043d\u0435\u043f\u0440\u043e\u0445\u043e\u0434\u0438\u043c\u044b\u0439 \u043a\u0432\u0435\u0441\u0442.\u00a0<\/p>\n<p>\u041f\u0435\u0440\u0432\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441 \u0442\u043e\u0433\u043e \u0447\u0442\u043e \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u043e\u0431\u044a\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0432 SSP \u0442\u0440\u0435\u043c\u044f \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u043c\u0430\u043a\u0440\u043e\u0441\u0430\u043c\u0438\u00a0 <strong>SSP_VECTOR_DEFINE<\/strong>, <strong>SSP_VECTOR_DEFINE_CHAN<\/strong>, <strong>SSP_VECTOR_DEFINE_UNIT<\/strong>. \u041a\u0430\u043a\u043e\u0439 \u043c\u0430\u043a\u0440\u043e\u0441 \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u0434\u043b\u044f \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0442\u0438\u043f\u0430 \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u0438. \u041f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u044f \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u043e \u043b\u043e\u0433\u0438\u043a\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u0432 Renesas \u043e\u0434\u0438\u043d\u043e\u0447\u043d\u0430\u044f, \u043c\u0443\u043b\u044c\u0442\u0438\u043a\u0430\u043d\u0430\u043b\u044c\u043d\u0430\u044f \u0438 \u043c\u0443\u043b\u044c\u0442\u0438 \u044e\u043d\u0438\u0442\u043e\u0432\u0430\u044f. \u0427\u0435\u043c \u043e\u0442\u043b\u0438\u0447\u0430\u044e\u0442\u0441\u044f \u043a\u0430\u043d\u0430\u043b\u044b \u0438 \u044e\u043d\u0438\u0442\u044b \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u0438 \u0434\u0430\u0436\u0435 \u043d\u0435 \u0441\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0439\u0442\u0435.\u00a0<\/p>\n<p>\u0412\u0442\u043e\u0440\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u044d\u0442\u0438\u0445 \u043c\u0430\u043a\u0440\u043e\u0441\u043e\u0432. \u0412\u043e\u0442 \u043f\u0440\u0438\u043c\u0435\u0440 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u043d\u0438\u0445:<\/p>\n<pre><code class=\"cpp\">#define SSP_VECTOR_DEFINE_UNIT(isr,ip,unit_name,signal,channel) \\     void isr (void); \\     static void * gp_ctrl_##ip##_##unit_name##_##channel##_##signal; \\     const ssp_vector_t g_vector_##ip##_##unit_name##_##channel##_##signal \\         BSP_PLACE_IN_SECTION_V2(\".vector.\"#ip\"_\"#unit_name\"_\"#channel\"_\"#signal )=isr; \\     const ssp_vector_info_t g_vector_info_##ip##_##unit_name##_##channel##_##signal  \\         BSP_PLACE_IN_SECTION_V2(\".vector_info.\"#ip\"_\"#unit_name\"_\"#channel\"_\"#signal)= \\         {.event_number=ELC_EVENT_##ip##unit_name##_##signal, \\         .ip_id = SSP_IP_##ip, .ip_channel=(channel), .ip_unit=SSP_IP_UNIT_##ip##unit_name, \\         .ip_signal=SSP_SIGNAL_##ip##_##signal, .pp_ctrl = &amp;gp_ctrl_##ip##_##unit_name##_##channel##_##signal}; <\/code><\/pre>\n<p>\u042d\u0442\u043e \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0432\u043e\u0442 \u0432 \u0442\u0430\u043a\u043e\u0439 \u043a\u043e\u0434 \u043f\u043e\u0441\u043b\u0435 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u0440\u0435\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043e\u043c<\/p>\n<pre><code class=\"cpp\">\/\/ \u041e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439 void                      usbfs_int_isr (void);  \/\/ \u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u0430\u044f \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f \u043d\u0430 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0441 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0435\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 static void              *gp_ctrl_USB_FS_0_INT;    \/\/ \u041d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0432\u0435\u043a\u0442\u043e\u0440 \u0442.\u0435. \u0430\u0434\u0440\u0435\u0441 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 \u043d\u0430 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0443 \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f. \u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0430 \u0432 \u0441\u0435\u043a\u0446\u0438\u0438 .vector.*  const ssp_vector_t        g_vector_USB_FS_0_INT      __attribute__ ((section(\".vector.USB_FS_0_INT\")))      __attribute__ ((__used__))=usbfs_int_isr;  \/\/ \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0441 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043c \u0442\u0438\u043f\u0430 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f. \u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0430 \u0432 \u0441\u0435\u043a\u0446\u0438\u0438 .vector_info.* const ssp_vector_info_t   g_vector_info_USB_FS_0_INT __attribute__ ((section(\".vector_info.USB_FS_0_INT\"))) __attribute__ ((__used__))= {   . event_number = ELC_EVENT_USBFS_INT,   . ip_id        =  SSP_IP_USB,           \/\/ \u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0438\u0437 \u044d\u043d\u0443\u043c\u0435\u0440\u0430\u0442\u043e\u0440\u0430 e_ssp_ip   . ip_channel   = (0),   . ip_unit      = SSP_IP_UNIT_USBFS,     \/\/ \u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0438\u0437 \u044d\u043d\u0443\u043c\u0435\u0440\u0430\u0442\u043e\u0440\u0430 e_ssp_ip_unit                                            \/\/ (\u0442\u0430\u043c \u0435\u0441\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e USB)   . ip_signal    = SSP_SIGNAL_USB_INT,    \/\/ \u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0438\u0437 \u044d\u043d\u0443\u043c\u0435\u0440\u0430\u0442\u043e\u0440\u0430 e_ssp_signal   . pp_ctrl      = &amp;gp_ctrl_USB_FS_0_INT  \/\/ \u0421\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u043d\u0443\u044e \u0440\u0430\u043d\u0435\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u044e                                           \/\/  \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 };;<\/code><\/pre>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0435. \u0412 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u043c \u0444\u0430\u0439\u043b\u0435 \u043b\u0438\u043d\u043a\u0435\u0440\u0430 \u0432\u0438\u0434\u0430 *.icf (\u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 r7fs5d97e3a01cfp.icf )\u00a0 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0442\u0441\u044f \u0442\u0430\u043a\u0438\u0435 \u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0441\u0435\u043a\u0446\u0438\u0438\u00a0<\/p>\n<pre><code>define block VECT_INFO         { ro section .vector_info.*  }; keep                           { section    .vector*        }; place at start of VECT_region  { ro section .vectors        }; place in VECT_region           { ro section .vector.*       }; place at start of FLASH_region { block VECT_INFO            }; <\/code><\/pre>\n<p>\u0417\u0434\u0435\u0441\u044c \u0441\u0435\u043a\u0446\u0438\u044f .vectors \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0430 \u0434\u043b\u044f \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0445 \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u0432 \u044f\u0434\u0440\u0430 ARM \u043e\u0442 Reset \u0434\u043e SysTick. \u0410 \u0432 \u0441\u0435\u043a\u0446\u0438\u0438 <strong>.vector.*<\/strong> \u0431\u0443\u0434\u0443\u0442 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u044b \u0430\u0434\u0440\u0435\u0441\u0430 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043e\u0432 \u043d\u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439 \u043a\u043e\u0442\u043e\u0440\u044b\u0435. \u0418\u0437 \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0432\u044b\u0448\u0435 \u0442\u0443\u0434\u0430 \u043f\u043e\u043f\u0430\u0434\u0451\u0442 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f <strong>g_vector_USB_FS_0_INT<\/strong>\u00a0 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0449\u0430\u044f \u043d\u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a usbfs_int_isr.\u00a0<\/p>\n<p>\u0412 \u0441\u0435\u043a\u0446\u0438\u044e <strong>.vector_info.*<\/strong> \u043f\u043e\u043f\u0430\u0434\u0451\u0442 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f\u00a0 <strong>g_vector_info_USB_FS_0_INT<\/strong> , \u043e\u043d\u0430 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0441 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043c \u0442\u0438\u043f\u0430 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f \u0438 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0435\u043c \u043d\u0430 \u0441\u043e\u043f\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435.<\/p>\n<p>\u041f\u0440\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<ul>\n<li>\n<p>\u041d\u0430 \u0441\u0442\u0430\u0440\u0442\u0435 \u0444\u0438\u0440\u043c\u0432\u0430\u0440\u0435 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b HAL \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u044e\u0442 ICU \u0438\u0437 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0445\u0440\u0430\u043d\u044f\u0449\u0438\u0445\u0441\u044f \u0432 \u0441\u0435\u043a\u0446\u0438\u0438\u00a0 <strong>.vector_info.*<\/strong>. \u0422\u0430\u043c \u0431\u0443\u0434\u0435\u0442 \u0438\u043c\u0435\u043d\u043d\u043e \u043c\u0430\u0441\u0441\u0438\u0432, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043f\u0440\u0438 \u0441\u0431\u043e\u0440\u043a\u0435 \u043b\u0438\u043d\u043a\u0435\u0440 \u0430\u043a\u043a\u0443\u0440\u0430\u0442\u043d\u043e \u0432\u0441\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0442\u0438\u043f\u0430\u00a0 <strong>g_vector_info_*<\/strong> \u0431\u0443\u0434\u0435\u0442 \u0441\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0442\u044c<\/p>\n<\/li>\n<\/ul>\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-417195","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/417195","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=417195"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/417195\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=417195"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=417195"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=417195"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}