{"id":305249,"date":"2020-06-12T03:00:12","date_gmt":"2020-06-12T03:00:12","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=305249"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=305249","title":{"rendered":"\u041f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430 \u0438 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0432\u044b\u0442\u0435\u0441\u043d\u044f\u044e\u0449\u0438\u0439 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u0434\u043b\u044f CortexM"},"content":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/post\/506414\/\">\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/_y\/4d\/wb\/_y4dwblkg3ul7bzga83il5b9aoq.png\" alt=\"image\" align=\"left\"><br \/>  <br clear=\"left\">  \u0421 \u043a\u0430\u0436\u0434\u044b\u043c \u0433\u043e\u0434\u043e\u043c \u043a\u0443\u0440\u0441\u043e\u0432\u044b\u0435 \u0434\u043b\u044f \u043c\u043e\u0438\u0445 \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u043e\u0432 \u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f \u0432\u0441\u0435 \u043e\u0431\u044a\u0435\u043c\u043d\u0435\u0435. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432 \u044d\u0442\u043e\u043c \u0433\u043e\u0434\u0443 \u043e\u0434\u043d\u0438\u043c \u0438\u0437 \u0437\u0430\u0434\u0430\u043d\u0438\u0439 \u0431\u044b\u043b\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043c\u0435\u0442\u0435\u043e\u0441\u0442\u0430\u043d\u0446\u0438\u0438, \u0432\u0435\u0434\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043b\u0435\u043d\u0438\u0432\u044b\u0439 \u043d\u0435 \u0434\u0435\u043b\u0430\u0435\u0442 \u043c\u0435\u0442\u0435\u043e\u0441\u0442\u0430\u043d\u0446\u0438\u0438, \u0430 \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u044b \u043e\u043d\u0438 \u043f\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044e \u043d\u0435 \u043b\u0435\u043d\u0438\u0432\u044b\u0435, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u043e\u043b\u0436\u043d\u044b \u0435\u0451 \u0441\u0434\u0435\u043b\u0430\u0442\u044c. \u0415\u0451 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u043e \u043d\u0430\u043a\u0438\u0434\u0430\u0442\u044c \u0432 Cube \u0438\u043b\u0438 \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u043d\u0430 \u0410\u0440\u0434\u0443\u0438\u043d\u043e, \u043d\u043e \u0437\u0430\u0434\u0430\u0447\u0430 \u043a\u0443\u0440\u0441\u043e\u0432\u043e\u0433\u043e \u043d\u0435 \u0432 \u044d\u0442\u043e\u043c. \u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430 \u2014 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e, \u0441 \u043d\u0443\u043b\u044f \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0441 \u043c\u043e\u0434\u0443\u043b\u044f\u043c\u0438 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430, \u043f\u0440\u043e\u0434\u0443\u043c\u0430\u0442\u044c \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0443 \u041f\u041e, \u0438 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0437\u0430\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u043d\u0430 \u0421++, \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u043e\u0442 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 \u0438 \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430\u043c\u0438 \u0420\u0422\u041e\u0421. \u041a\u043e\u043c\u0443 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e, \u0437\u0434\u0435\u0441\u044c <a href=\"https:\/\/yadi.sk\/i\/YIC26s2Hiuey_A\" title=\"\u0422\u0432\u043e\u0440\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u043e\u0432\" rel=\"nofollow\">\u043f\u0440\u0438\u043c\u0435\u0440 \u043e\u0442\u0447\u0435\u0442\u0430 \u043f\u043e \u0442\u0430\u043a\u043e\u043c\u0443 \u043a\u0443\u0440\u0441\u043e\u0432\u043e\u043c\u0443<\/a><\/p>\n<p>  <\/p>\n<p>\u0422\u0430\u043a \u0432\u043e\u0442 \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e, \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0439 IAR \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0434\u0435\u043b\u0430\u0442\u044c \u041f\u041e \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c \u043d\u0435 \u0431\u043e\u043b\u0435\u0435 30 \u043a\u0411\u0430\u0439\u0442. \u0410 \u044d\u0442\u043e \u0443\u0436\u0435 \u0432\u043f\u0440\u0438\u0442\u044b\u043a \u043a \u0440\u0430\u0437\u043c\u0435\u0440\u0443 \u043a\u0443\u0440\u0441\u043e\u0432\u043e\u0433\u043e \u0432 \u043d\u0435\u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u0432\u0438\u0434\u0435. \u0410\u043d\u0430\u043b\u0438\u0437 \u043a\u043e\u0434\u0430 \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u043e\u0432 \u0432\u044b\u044f\u0432\u0438\u043b, \u0447\u0442\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e 1\/4 \u0447\u0430\u0441\u0442\u044c \u0438\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 FreeRtos \u2014 \u043e\u043a\u043e\u043b\u043e 6 \u043a\u0411\u0430\u0439\u0442, \u0445\u043e\u0442\u044f \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0432\u044b\u0442\u0435\u0441\u043d\u044f\u044e\u0449\u0443\u044e \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u043b\u043a\u0443 \u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u043b\u043a\u0443 \u0437\u0430\u0434\u0430\u0447\u0430\u043c\u0438 \u0445\u0432\u0430\u0442\u0438\u043b\u043e \u0431\u044b, \u043d\u0430\u0432\u0435\u0440\u043d\u043e\u0435\u2026 \u0434\u0430 \u0431\u0430\u0439\u0442 500 \u043f\u0440\u0438\u0447\u0435\u043c \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 3 \u0437\u0430\u0434\u0430\u0447\u0430\u043c\u0438 (\u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434\u043d\u044b\u043c\u0438 \u043c\u043e\u0440\u0433\u0443\u043d\u0447\u0438\u043a\u0430\u043c\u0438).<\/p>\n<p>  <\/p>\n<p>\u042d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u0430 \u0442\u043e\u043c\u0443 \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u041e\u0447\u0435\u043d\u044c \u041f\u0440\u043e\u0441\u0442\u043e\u0439 \u041f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a(\u043e\u043d \u0436\u0435 SST), \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u0432 <a href=\"https:\/\/www.embedded.com\/build-a-super-simple-tasker\/\" rel=\"nofollow\">\u0441\u0442\u0430\u0442\u044c\u0435 \u0430\u0436 2006 \u0433\u043e\u0434\u0430<\/a> \u0438 \u0441\u0435\u0439\u0447\u0430\u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0439 <a href=\"http:\/\/www.state-machine.com\/products\/\" rel=\"nofollow\">Quantum Leaps<\/a> \u0432 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0435 <a href=\"http:\/\/www.state-machine.com\/qpcpp\/\" rel=\"nofollow\">Qp framework<\/a>. <\/p>\n<p>  <\/p>\n<p>\u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u044d\u0442\u043e\u0433\u043e \u044f\u0434\u0440\u0430 \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442, \u0438 \u043e\u043d\u043e \u043e\u0447\u0435\u043d\u044c \u0445\u043e\u0440\u043e\u0448\u043e \u043c\u043e\u0436\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445 \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u0430\u043c\u0438 (\u0438 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e), \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e 5 \u043a\u0411\u0430\u0439\u0442 \u0432 \u0441\u0432\u043e\u0435 \u0440\u0430\u0441\u043f\u043e\u0440\u044f\u0436\u0435\u043d\u0438\u0435.<\/p>\n<p>  <\/p>\n<p>\u042f \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u044e \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u0430\u043a\u043e\u0439 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u0441\u0430\u043c\u043e\u043c\u0443. \u0427\u0442\u043e\u0431\u044b \u043d\u0435 \u0441\u0438\u043b\u044c\u043d\u043e \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0441\u0442\u0430\u0442\u044c\u044e, \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u044e \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430 \u043d\u0430 CortexM0 \u0443 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043d\u0435\u0442 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u043c\u043e\u0434\u0443\u043b\u044f \u0441 \u043f\u043b\u0430\u0432\u0430\u044e\u0449\u0435\u0439 \u0442\u043e\u0447\u043a\u043e\u0439.<\/p>\n<p>  <\/p>\n<p>\u0412\u0441\u0435 \u043a\u0442\u043e \u0437\u0430\u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043e\u0432\u0430\u043b\u0441\u044f \u0438 \u0445\u043e\u0447\u0435\u0442 \u043f\u043e\u043d\u044f\u0442\u044c \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442, \u0434\u043e\u0431\u0440\u043e \u043f\u043e\u0436\u0430\u043b\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0434 \u043a\u0430\u0442.<\/p>\n<p><a name=\"habracut\"><\/a>  <\/p>\n<h2 id=\"nebolshoe-otstuplenie\">\u041d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043e\u0442\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0435<\/h2>\n<p>  <\/p>\n<p>\u0418\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u044f \u0445\u043e\u0442\u0435\u043b \u043e\u043f\u0438\u0441\u0430\u0442\u044c \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u0432 &quot;\u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u044b\u0445&quot; \u0420\u0422\u041e\u0421 \u0438 \u043f\u043e\u0442\u043e\u043c \u0443\u0436\u0435 \u043e\u043f\u0438\u0441\u0430\u0442\u044c \u043a\u0430\u043a \u043e\u043d \u0441\u0434\u0435\u043b\u0430\u043d \u0432 \u041f\u0440\u043e\u0441\u0442\u043e\u043c \u041f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0435 \u0438 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440 \u0442\u0430\u043a\u043e\u0433\u043e \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430 \u043d\u0430 \u044f\u0434\u0440\u0435 CortexM4, \u043d\u043e \u0441\u0442\u0430\u0442\u044c\u044f \u043f\u043e\u043b\u0443\u0447\u0430\u043b\u0430\u0441\u044c \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0438 \u043d\u0435\u043f\u043e\u043d\u044f\u0442\u043d\u043e\u0439, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u0440\u0435\u0448\u0438\u043b \u0435\u0451 \u0443\u043f\u0440\u043e\u0441\u0438\u0442\u044c (\u043d\u0435 \u0443\u0432\u0435\u0440\u0435\u043d, \u0447\u0442\u043e \u043e\u043d\u0430 \u0441\u0442\u0430\u043b\u0430 \u043f\u043e\u043d\u044f\u0442\u043d\u0435\u0435, \u043d\u043e \u0442\u043e\u0447\u043d\u043e \u043c\u0435\u043d\u044c\u0448\u0435, \u0445\u043e\u0442\u044f \u0432\u0441\u0435 \u0440\u0430\u0432\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u043e\u0439) \u0438 \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u0432\u0435\u043b \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0438 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044f:<\/p>\n<p>  <\/p>\n<ul>\n<li>\u0420\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u043c \u044f\u0434\u0440\u043e CortexM0, \u043d\u0443 \u0438\u043b\u0438 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u044b \u0441 ARM \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043e\u0439, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0449\u0438\u0435 \u0442\u043e\u043b\u044c\u043a\u043e<br \/> \n<ul>\n<li>Thumb \u043d\u0430\u0431\u043e\u0440 \u043a\u043e\u043c\u0430\u043d\u0434<\/li>\n<li>\u0418\u043c\u0435\u044e\u0449\u0438\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438\u0432\u0438\u043b\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c<\/li>\n<li>\u041d\u0435 \u0438\u043c\u0435\u044e\u0449\u0438\u0435 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u0431\u043b\u043e\u043a\u0430 \u0441 \u043f\u043b\u0430\u0432\u0430\u044e\u0449\u0435\u0439 \u0442\u043e\u0447\u043a\u043e\u0439<\/li>\n<\/ul>\n<\/li>\n<li>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0441\u0442\u0435\u043a <em>MSP<\/em><\/li>\n<li>\u0421\u0447\u0438\u0442\u0430\u0435\u043c, \u0447\u0442\u043e \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0438\u043c\u0435\u0435\u0442 \u043a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u0434\u0432\u0443\u0445\u0441\u0442\u0430\u0434\u0438\u0439\u043d\u044b\u0439 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440<\/li>\n<li>\u041d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0438<\/li>\n<li>\u041d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 (\u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u044b\u0445 \u043a\u043b\u0430\u0441\u0441\u043e\u0432), \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u043e\u043b\u0438\u043c\u043e\u0440\u0444\u0438\u0437\u043c<\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u0418 \u0445\u043e\u0442\u044f \u0442\u0430\u043a\u043e\u0439 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u0432 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0438 \u043d\u0430 CortexM3 \u0438 \u0434\u0430\u0436\u0435 \u043d\u0430 CortexM4 (\u0441 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u043c <em>FPU<\/em> \u0431\u043b\u043e\u043a\u043e\u043c), \u0434\u043b\u044f \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0438\u0445 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438, \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0432\u043d\u0435\u0441\u0442\u0438 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0435 <em>PendSV<\/em> \u0438 <em>SVC<\/em> \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439.<\/p>\n<p>  <\/p>\n<p>\u0412 \u043e\u0431\u0449\u0435\u043c \u0434\u0435\u043b\u0430\u0442\u044c \u0435\u0433\u043e \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u043f\u043e \u043c\u043e\u0434\u043d\u043e\u043c\u0443, \u043d\u0430 \u0421++17, \u0431\u0435\u0437 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0435\u0439, \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u0432, \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u0447 \u0432 \u0440\u0430\u043d\u0442\u0430\u0439\u043c\u0435 \u0438 \u043f\u0440\u043e\u0447\u0435\u0439 &quot;\u0435\u0440\u0443\u043d\u0434\u044b&quot;, \u0430 \u043f\u043e\u043b\u0430\u0433\u0430\u0442\u044c\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u0441\u043empiler time, \u0447\u0442\u043e\u0431\u044b \u0432\u0441\u0435 \u0432\u0441\u0435 \u0431\u044b\u043b\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e, \u0430 \u0437\u0430\u043e\u0434\u043d\u043e, \u043f\u043e-\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438, \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u043e \u0443\u0436\u0435 \u043d\u0430 \u044d\u0442\u0430\u043f\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438.<\/p>\n<p>  <\/p>\n<h2 id=\"vvedenie\">\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435<\/h2>\n<p>  <\/p>\n<p>\u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0432\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043d\u0430\u0432\u0435\u0440\u043d\u043e\u0435 \u043b\u0443\u0447\u0448\u0435 \u0432\u0441\u0435\u0433\u043e \u043f\u043e\u0434\u043e\u0439\u0434\u0435\u0442 \u0446\u0438\u0442\u0430\u0442\u0430 \u0438\u0437 \u0432\u044b\u0448\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 2006 \u0433\u043e\u0434\u0430<\/p>\n<p>  <\/p>\n<blockquote><p>\u0411\u043e\u043b\u044c\u0448\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0436\u0434\u0443\u0442 \u043a\u0430\u043a\u043e\u0433\u043e-\u0442\u043e \u0441\u043e\u0431\u044b\u0442\u0438\u044f, \u0442\u0430\u043a\u043e\u0433\u043e \u043a\u0430\u043a \u0442\u0438\u043a \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u043d\u0430\u0436\u0430\u0442\u0438\u0435 \u043a\u043d\u043e\u043f\u043a\u0438, \u0433\u043e\u0442\u043e\u0432\u043d\u043e\u0441\u0442\u0438 \u0410\u0426\u041f \u0438\u043b\u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043f\u0430\u043a\u0435\u0442\u0430 \u0434\u0430\u043d\u043d\u044b\u0445. \u041f\u043e\u0441\u043b\u0435 \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u043d\u0438\u044f \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0440\u0435\u0430\u0433\u0438\u0440\u0443\u044e\u0442, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044f \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f. \u042d\u0442\u0430 \u0440\u0435\u0430\u043a\u0446\u0438\u044f \u043c\u043e\u0436\u0435\u0442 \u0432\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0432 \u0441\u0435\u0431\u044f \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u044b\u043c\u0438 \u043c\u043e\u0434\u0443\u043b\u044f\u043c\u0438 \u0438\u043b\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0432\u0442\u043e\u0440\u0438\u0447\u043d\u044b\u0445 \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u0431\u0438\u0437\u043d\u0435\u0441 \u043b\u043e\u0433\u0438\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u044e\u0442 \u0434\u0440\u0443\u0433\u0438\u0435 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438. \u041f\u043e\u0441\u043b\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043f\u043e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u0442\u0430\u043a\u0438\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u044f\u0442 \u0432 \u0441\u043f\u044f\u0449\u0435\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0432 \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u0441\u043e\u0431\u044b\u0442\u0438\u044f.<\/p><\/blockquote>\n<p>\u0411\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e RTOS \u0434\u043b\u044f \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c \u0432\u044b\u043d\u0443\u0436\u0434\u0430\u044e\u0442 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u0432 \u043c\u043e\u0434\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u0438 \u043f\u0440\u043e\u0441\u0442\u044b\u0435, \u0434\u0438\u0441\u043a\u0440\u0435\u0442\u043d\u044b\u0435 \u0440\u0435\u0430\u043a\u0446\u0438\u0438 \u043d\u0430 \u0441\u043e\u0431\u044b\u0442\u0438\u044f, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0437\u0430\u0434\u0430\u0447\u0438, \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u044b\u0435 \u043a\u0430\u043a \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u044b\u0435 \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0435 \u0446\u0438\u043a\u043b\u044b.<\/p>\n<p>  <\/p>\n<p>\u041f\u043e \u0431\u043e\u043b\u044c\u0448\u043e\u043c\u0443 \u0441\u0447\u0435\u0442\u0443, \u0432\u0441\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u2014 \u044d\u0442\u043e \u043e\u0434\u0438\u043d \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0438\u043b\u0438 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442. \u0418 \u043d\u0430\u0448\u0438 \u0441\u0442\u0430\u0440\u0448\u0438\u0435 \u0431\u0440\u0430\u0442\u044c\u044f \u0432 \u043c\u0438\u0440\u0435 \u041f\u041e \u043f\u043e\u0434 &quot;\u0435\u0449\u0435 \u0431\u043e\u043b\u0435\u0435 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u044b\u0435&quot; \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0434\u0430\u0432\u043d\u043e \u0443\u0436\u0435 \u0438\u043c\u0435\u044e\u0442 \u043a\u0443\u0447\u0443 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u043e\u0432 \u0434\u043b\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0445 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u043e\u0432 \u2014 \u043f\u043e\u0442\u043e\u043a\u0438, \u043a\u043e\u0440\u0443\u0442\u0438\u043d\u044b, \u0444\u0438\u0431\u0435\u0440\u044b \u2014 \u0442\u043e\u043c\u0443 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435. \u0412 \u041f\u041e \u0436\u0435 \u0434\u043b\u044f \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432 \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043b\u0438\u0431\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u043e\u0432\u0441\u0435\u043c \u043d\u0435\u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0435 \u0432\u0435\u0449\u0438 \u043e\u0431\u044b\u0447\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 (\u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u043e\u0442 \u0437\u0430\u0434\u0430\u0447\u0438 \u043a \u0437\u0430\u0434\u0430\u0447\u0435, \u0441\u043e \u0432\u0441\u0435\u043c\u0438 \u0432\u044b\u0442\u0435\u043a\u0430\u044e\u0449\u0438\u043c\u0438 (\u0434\u043e\u043b\u0433\u0438\u0435 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u0442\u0435\u0441\u0442\u0430, \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043d\u043e\u0432\u044b\u0445 \u0437\u0430\u0434\u0430\u0447 \u0441 \u0431\u043e\u043b\u044c\u0448\u0438\u043c\u0438 \u0441\u0442\u0435\u043a\u0430\u043c\u0438)), \u043b\u0438\u0431\u043e \u0433\u043e\u0440\u043e\u0434\u0438\u0442\u044c \u0447\u0442\u043e-\u0442\u043e \u0441\u0432\u043e\u0435, \u043b\u0438\u0431\u043e \u043f\u043e \u0441\u0442\u0430\u0440\u0438\u043d\u043a\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043e\u0431\u044b\u0447\u043d\u044b\u043c switch\u043e\u043c.<\/p>\n<p>  <\/p>\n<p>\u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u0436\u0435 \u0441 SST \u044f\u0434\u0440\u043e \u0438 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u044b \u0438 \u0435\u043c\u0443 \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u0441\u0442\u0435\u043a\u0430\u043c\u0438. \u0418 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0435 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u044d\u0442\u043e\u0433\u043e \u044f\u0434\u0440\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u043e, \u0447\u0442\u043e \u043e\u043d\u043e \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0447\u0442\u043e\u0431\u044b \u0432\u0441\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u043b\u0438\u0441\u044c \u0434\u043e \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f (Run to completion), \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043e\u0434\u0438\u043d \u0441\u0442\u0435\u043a.<br \/>  \u0410 \u044d\u0442\u043e \u043a\u0441\u0442\u0430\u0442\u0438 \u0440\u0435\u0448\u0430\u0435\u0442 \u043e\u0434\u043d\u0443 \u0438\u0437 &quot;\u0432\u0435\u0447\u043d\u044b\u0445&quot; \u043f\u0440\u043e\u0431\u043b\u0435\u043c, \u0432\u0435\u0434\u044c \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0446\u0438\u043a\u043b \u0432 \u0421++ \u044d\u0442\u043e \u0432\u043e\u043e\u0431\u0449\u0435-\u0442\u043e UB. \u041d\u0435\u0442 \u0442\u0430\u043a\u0438\u0445 \u0446\u0438\u043a\u043b\u043e\u0432 \u2014 \u043d\u0435\u0442 UB, \u0430 \u0437\u0430\u043e\u0434\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u043d\u0430\u0448 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u0431\u0435\u0437 \u0435\u0434\u0438\u043d\u043e\u0433\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f, \u0447\u0442\u043e\u0431\u044b, \u0435\u0449\u0435 \u043c\u0435\u043d\u044c\u0448\u0435 UB \u043f\u0440\u043e\u043d\u0438\u043a\u043b\u0438 \u0432 \u043a\u043e\u0434 (\u043d\u0435 \u0443\u0432\u0435\u0440\u0435\u043d, \u0447\u0442\u043e \u043a\u043e\u0434 \u043d\u0430 \u0421++ \u043c\u043e\u0436\u043d\u043e \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0431\u0435\u0437 UB, \u043d\u043e \u0432\u0434\u0440\u0443\u0433).<\/p>\n<p>  <\/p>\n<p>\u041f\u0435\u0440\u0435\u0434 \u0442\u0435\u043c \u043a\u0430\u043a \u043d\u0430\u0447\u0438\u043d\u0430\u0442\u044c \u0441\u0442\u0430\u0442\u044c\u044e, \u044f \u0445\u043e\u0442\u0435\u043b \u0432\u043d\u0430\u0447\u0430\u043b\u0435 \u043d\u0430\u0439\u0442\u0438 \u043f\u0440\u043e\u0441\u0442\u043e\u0435 \u043e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0435, \u043a\u0430\u043a \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442 \u043d\u0430 CortexM \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435, \u0438\u0437 \u0431\u043e\u043b\u0435\u0435 \u043c\u0435\u043d\u0435\u0435 \u043f\u043e\u043d\u044f\u0442\u043d\u043e\u0433\u043e \u0438 \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e, \u043d\u0430\u0448\u0435\u043b \u0432\u043e\u0442 <a href=\"https:\/\/www.kit-e.ru\/assets\/files\/pdf\/2013_04_168.pdf\" rel=\"nofollow\">\u044d\u0442\u043e<\/a>. \u041d\u043e \u044f \u043d\u0435 \u0443\u0432\u0435\u0440\u0435\u043d, \u0447\u0442\u043e \u0431\u0435\u0437 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0437\u0430\u0433\u043b\u044f\u0434\u044b\u0432\u0430\u043d\u0438\u044f \u0432 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u043f\u043e \u044f\u0434\u0440\u0443 CortexM3 \u0438\u0437 \u044d\u0442\u043e\u0433\u043e \u0442\u0435\u043a\u0441\u0442\u0430 \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u043d\u0435\u0441\u0442\u0438 \u0447\u0442\u043e-\u0442\u043e, \u0447\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c.<\/p>\n<p>  <\/p>\n<p>\u0415\u0441\u0442\u044c \u0435\u0449\u0435 \u0441\u0442\u0430\u0442\u044c\u044f \u043d\u0430 \u0425\u0430\u0431\u0440\u0435: <a href=\"https:\/\/habr.com\/ru\/company\/embox\/blog\/330236\/\">\u041a\u0430\u043a \u0441\u0434\u0435\u043b\u0430\u0442\u044c context switch \u043d\u0430 STM32<\/a>.<br \/>  \u041d\u043e \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0432\u044b \u0438 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u043b\u0438 \u044d\u0442\u0438 \u0441\u0442\u0430\u0442\u044c\u0438, \u0432\u0441\u0435 \u0440\u0430\u0432\u043d\u043e \u0432\u0441\u0435 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043a\u0430\u043a \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u043e\u0432\u044b.<\/p>\n<p>  <\/p>\n<p>\u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0432\u043d\u0430\u0447\u0430\u043b\u0435 \u0440\u0430\u0437\u0431\u0435\u0440\u0435\u043c\u0441\u044f \u0441 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u043c \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430, \u043a\u0430\u043a \u044d\u0442\u043e \u0432\u043e\u043e\u0431\u0449\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442. \u0418 \u043f\u0435\u0440\u0432\u044b\u043c \u0434\u0435\u043b\u043e\u043c \u0437\u0430\u0439\u043c\u0435\u043c\u0441\u044f \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u0435\u043c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0445 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430 \u043f\u043e\u043d\u044f\u0442\u0438\u0439.<\/p>\n<p>  <\/p>\n<h2 id=\"komandy-cortexm-mikrokontrollerov\">\u041a\u043e\u043c\u0430\u043d\u0434\u044b CortexM \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432<\/h2>\n<p>  <\/p>\n<p>\u0423 CortexM \u0431\u044b\u0432\u0430\u0435\u0442 \u0442\u0440\u0438 \u043d\u0430\u0431\u043e\u0440\u0430 \u043a\u043e\u043c\u0430\u043d\u0434:<\/p>\n<p>  <\/p>\n<ul>\n<li><em>ARM<\/em> \u2014 \u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043d\u0430\u0431\u043e\u0440 32 \u0431\u0438\u0442\u043d\u044b\u0439 \u043d\u0430\u0431\u043e\u0440 \u043a\u043e\u043c\u0430\u043d\u0434.<\/li>\n<li><em>Thumb<\/em> \u2014 \u0421\u043e\u043a\u0440\u0430\u0449\u0451\u043d\u043d\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 16 \u0431\u0438\u0442\u043d\u044b\u0445 \u043a\u043e\u043c\u0430\u043d\u0434.<\/li>\n<li><em>Thumb-2<\/em> \u2014 16 \u0431\u0438\u0442\u043d\u044b\u0439 <em>Thumb<\/em> \u043d\u0430\u0431\u043e\u0440 + \u043d\u0435\u043c\u043d\u043e\u0433\u043e 32 \u0431\u0438\u0442\u043d\u044b\u0445 \u043a\u043e\u043c\u0430\u043d\u0434, \u044d\u0434\u0430\u043a\u0430\u044f \u0441\u043c\u0435\u0441\u044c <em>ARM<\/em> \u0438 <em>Thumb<\/em>, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430 \u043e\u0431\u043e\u0438\u0445 \u0441\u0438\u0441\u0442\u0435\u043c \u043a\u043e\u043c\u0430\u043d\u0434.<\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u0422\u0430\u043a \u0432\u043e\u0442 \u043d\u0430\u0448 CortexM0 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e <em>Thumb<\/em> \u043d\u0430\u0431\u043e\u0440, \u043d\u0443 \u043d\u0435 \u0441\u0447\u0438\u0442\u0430\u044f \u043f\u0430\u0440\u043e\u0447\u043a\u0438 \u043a\u043e\u043c\u0430\u043d\u0434 \u0438\u0437 <em>Thumb-2<\/em>, \u043d\u043e \u0437\u0430\u043a\u0440\u043e\u0435\u043c \u043d\u0430 \u044d\u0442\u043e \u0433\u043b\u0430\u0437\u0430.<br \/>  \u041d\u0430 \u0432\u0441\u044f\u043a\u0438\u0439 \u0441\u043b\u0443\u0447\u0430\u0439, CortexM3 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 <em>Thumb-2<\/em> \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e.<\/p>\n<p>  <\/p>\n<h2 id=\"rezhimy-raboty-processora\">\u0420\u0435\u0436\u0438\u043c\u044b \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430<\/h2>\n<p>  <\/p>\n<p>Cortex-M \u0438\u043c\u0435\u0435\u0442 \u0434\u0432\u0430 \u0440\u0435\u0436\u0438\u043c\u0430 \u0440\u0430\u0431\u043e\u0442\u044b: \u0440\u0435\u0436\u0438\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 (<em>Thread<\/em>) \u0438 \u0440\u0435\u0436\u0438\u043c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 (<em>Handle<\/em>):<\/p>\n<p>  <\/p>\n<ul>\n<li>\u0420\u0435\u0436\u0438\u043c <em>Handle<\/em> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439(\u043e\u0447\u0435\u043d\u044c \u043e\u0431\u0440\u0430\u0437\u043d\u043e \u0433\u043e\u0432\u043e\u0440\u044f \u2014 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439, \u0445\u043e\u0442\u044f \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f \u2014 \u044d\u0442\u043e \u043b\u0438\u0448\u044c \u043f\u043e\u0434\u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439) \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0441 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u043c <em>MSP<\/em> \u0441\u0442\u0435\u043a\u043e\u043c<\/li>\n<li>\u0420\u0435\u0436\u0438\u043c <em>Thread<\/em> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0438 \u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u043c \u0441\u0442\u0435\u043a\u043e\u043c(<em>MSP<\/em>) \u0438\u043b\u0438 \u0441\u0442\u0435\u043a\u043e\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 (<em>PSP<\/em>)<br \/>  \u041f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0438\u0437 \u043e\u0434\u043d\u043e\u0433\u043e \u0440\u0435\u0436\u0438\u043c\u0430 \u0432 \u0434\u0440\u0443\u0433\u043e\u0439 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432 \u043c\u043e\u043c\u0435\u043d\u0442 \u0432\u0445\u043e\u0434\u0430 \u0438\u043b\u0438 \u0432\u044b\u0445\u043e\u0434\u0430 \u0438\u0437 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f.<\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u041f\u0440\u043e \u0441\u0442\u0435\u043a\u0438 \u0443\u0437\u043d\u0430\u0435\u043c \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u043e\u0437\u0436\u0435, \u0430 \u043f\u043e\u043a\u0430 \u044d\u0442\u043e \u0432\u0441\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043f\u043e \u0440\u0435\u0436\u0438\u043c\u0430\u043c, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043d\u0443\u0436\u043d\u043e \u0437\u043d\u0430\u0442\u044c \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430. \u0418 \u0434\u0430, \u043c\u044b \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0441\u0442\u0435\u043a <em>MSP<\/em>.<\/p>\n<p>  <\/p>\n<h2 id=\"cortexm0-registry\">CortexM0 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b<\/h2>\n<p>  <\/p>\n<p>CortexM0 \u0438\u043c\u0435\u0435\u0442 16 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 \u043e\u0431\u0449\u0435\u0433\u043e \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f:<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/u4\/0y\/o7\/u40yo7pftqno8gamefmpdldik3i.png\" alt=\"image\" align=\"left\"> <\/p>\n<p>  <\/p>\n<ul>\n<li>\u041c\u043b\u0430\u0434\u0448\u0438\u0435 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b (r0-r7)\n<ul>\n<li>\u0421\u0442\u0430\u0440\u0448\u0438\u0435 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b (r8-r12)<\/li>\n<li>\u0420\u0435\u0433\u0438\u0441\u0442\u0440 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f \u0441\u0442\u0435\u043a\u0430 <i>SP<\/i> (r13) \u0434\u043b\u044f \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430 (r8-r12)<\/li>\n<\/ul>\n<p>\u0412 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043b\u0438\u0431\u043e <i>MSP<\/i> (\u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0435\u043c \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u0441\u0442\u0435\u043a\u0430) \u043b\u0438\u0431\u043e <i>PSP<\/i> ( \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0435\u043c \u0441\u0442\u0435\u043a\u0430 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430). \u041d\u043e \u043c\u044b \u0436\u0435 \u043d\u0435 \u0437\u0430\u043c\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u043c\u0441\u044f, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0442\u043e\u043b\u044c\u043a\u043e <i>MSP<\/i>.  <\/li>\n<li>\u0420\u0435\u0433\u0438\u0441\u0442\u0440 \u0441\u0432\u044f\u0437\u0438 <i>LR<\/i> (r14)<\/li>\n<li> \u0420\u0435\u0433\u0438\u0441\u0442\u0440 \u0441\u0447\u0435\u0442\u0447\u0438\u043a\u0430 \u043a\u043e\u043c\u0430\u043d\u0434 <i>PC<\/i>(r15)<\/li>\n<\/ul>\n<p>  <\/p>\n<p><br clear=\"left\">  \u0418 \u0440\u044f\u0434 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f:<\/p>\n<p>  <\/p>\n<ul>\n<li>\u0420\u0435\u0433\u0438\u0441\u0442\u0440 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f <em>xPSR<\/em>, \u043e\u043d \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0432 \u0441\u0435\u0431\u0435 \u0444\u043b\u0430\u0433\u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0430\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439, \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0438 \u043d\u043e\u043c\u0435\u0440 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u043c\u043e\u0433\u043e \u0432 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f. \u0414\u043e\u0441\u0442\u0443\u043f \u043a \u043f\u043e\u043b\u044f\u043c \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430 \u043c\u043e\u0436\u0435\u0442 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u0442\u0440\u0438 \u043f\u0441\u0435\u0432\u0434\u043e\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0435 \u043e\u0431\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u043a \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u043c \u043e\u0431\u043b\u0430\u0441\u0442\u044f\u043c <em>xPSR<\/em>:<br \/> \n<ul>\n<li>\u0420\u0435\u0433\u0438\u0441\u0442\u0440 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f <em>APSR<\/em> \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0444\u043b\u0430\u0433\u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0430\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439<\/li>\n<li>\u0420\u0435\u0433\u0438\u0441\u0442\u0440 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f <em>EPSR<\/em> \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043d\u043e\u043c\u0435\u0440 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u043c\u043e\u0433\u043e \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f<\/li>\n<li>\u0420\u0435\u0433\u0438\u0441\u0442\u0440 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f <em>IPSR<\/em> \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0431\u0438\u0442 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0449\u0438\u0439 \u0432 \u043a\u0430\u043a\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 <em>Thumb<\/em> \u0438\u043b\u0438 <em>ARM<\/em>, \u0430 \u0442\u0430\u043a \u043a\u0430\u043a, \u043c\u044b \u0432\u044b\u044f\u0441\u043d\u0438\u043b\u0438, \u0447\u0442\u043e<br \/>  CortexM0 \u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0432 <em>Thumb<\/em> \u0440\u0435\u0436\u0438\u043c\u0435, \u0442\u043e \u044d\u0442\u043e\u0442 \u0431\u0438\u0442 \u0432\u0441\u0435\u0433\u0434\u0430 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0440\u0430\u0432\u0435\u043d <em>1<\/em>, \u0438\u043d\u0430\u0447\u0435 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u0442 \u043d\u0435\u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u043e\u0435.<\/li>\n<\/ul>\n<\/li>\n<li>\u0420\u0435\u0433\u0438\u0441\u0442\u0440 <em>PRIMASK<\/em>, \u0432 \u043d\u0435\u043c \u0432\u0441\u0435\u0433\u043e \u043e\u0434\u0438\u043d \u0431\u0438\u0442, \u0437\u0430\u043f\u0440\u0435\u0449\u0430\u044e\u0449\u0438\u0439 \u0432\u0441\u0435 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f \u0441 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0443\u0435\u043c\u044b\u043c \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u043e\u043c<\/li>\n<li>\u0420\u0435\u0433\u0438\u0441\u0442\u0440 <em>CONTROL<\/em>, \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0439 \u0432\u044b\u0431\u043e\u0440\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0430 (\u041f\u0440\u0438\u0432\u0438\u043b\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0438\u043b\u0438 \u043d\u0435\u0442(\u042d\u0442\u043e \u0435\u0449\u0435 \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435? \u0414\u0430 \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u044d\u0442\u0438\u0445 \u0440\u0435\u0436\u0438\u043c\u043e\u0432?, \u043d\u0435 \u0432\u043e\u043b\u043d\u0443\u0439\u0442\u0435\u0441\u044c, \u0434\u043b\u044f CortexM0 \u0440\u0435\u0436\u0438\u043c \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u0440\u0438\u0432\u0438\u043b\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435 \u043e\u0431\u0440\u0430\u0449\u0430\u0439\u0442\u0435 \u043d\u0430 \u044d\u0442\u043e \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435)) \u0438 \u0432\u044b\u0431\u043e\u0440\u043e\u043c \u0441\u0442\u0435\u043a\u0430 (\u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 <em>MSP<\/em> \u0438\u043b\u0438 \u0441\u0442\u0435\u043a \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 <em>PSP<\/em>)<\/li>\n<\/ul>\n<p>  <\/p>\n<h2 id=\"registr-ukazatelya-steka-r13sp\">\u0420\u0435\u0433\u0438\u0441\u0442\u0440 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f \u0441\u0442\u0435\u043a\u0430 (r13\/SP)<\/h2>\n<p>  <\/p>\n<p>\u042f \u043d\u0435 \u0431\u0443\u0434\u0443 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0441\u0442\u0435\u043a, \u0435\u0441\u0442\u044c \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0441\u0442\u0430\u0442\u0435\u0439 \u043d\u0430 \u044d\u0442\u0443 \u0442\u0435\u043c\u0443. \u041d\u043e \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043d\u044f\u0442\u044c \u043a\u0430\u043a \u043e\u043d \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430 CortexM \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0437\u043d\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u043e\u0432.<\/p>\n<p>  <\/p>\n<ul>\n<li>\u0423\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u0441\u0442\u0435\u043a\u0430 \u0432\u0441\u0435\u0433\u0434\u0430 \u0432\u044b\u0440\u0430\u0432\u043d\u0435\u043d \u043f\u043e \u0441\u043b\u043e\u0432\u0443 \u0438 \u0435\u0433\u043e \u0434\u0432\u0430 \u043c\u043b\u0430\u0434\u0448\u0438\u0435 \u0431\u0438\u0442\u0430 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0440\u0430\u0432\u043d\u044b 0.<\/li>\n<li>\u0421\u0442\u0435\u043a \u0432\u0441\u0435\u0433\u0434\u0430 \u0434\u0432\u0438\u0433\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u0441\u0442\u0430\u0440\u0448\u0438\u0445 \u0430\u0434\u0440\u0435\u0441\u043e\u0432 \u043a \u043c\u043b\u0430\u0434\u0448\u0438\u043c.<\/li>\n<li>\u0423\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u0441\u0442\u0435\u043a\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0441\u0442\u0435\u043a\u0443 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 <em>POP<\/em> \u0438 <em>PUSH<\/em>.<\/li>\n<li>\u0423\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u0441\u0442\u0435\u043a\u0430 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 <em>LDR<\/em>, <em>STR<\/em>, <em>SUB<\/em>, <em>ADD<\/em> \u0438 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435<\/li>\n<li>\u0418\u043c\u0435\u0435\u0442 \u0434\u0432\u043e\u0439\u043d\u043e\u0435 \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438 \u043c\u043e\u0436\u0435\u0442 \u044f\u0432\u043b\u044f\u0442\u044c\u0441\u044f:<br \/> \n<ul>\n<li><em>MSP<\/em>(Main Stack Pointer) \u2014 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0435\u043c \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0441\u0442\u0435\u043a,<\/li>\n<li><em>PSP<\/em> (Program Stack Pointer) \u2014 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0435\u043c \u043d\u0430 \u0441\u0442\u0435\u043a \u043f\u0440\u043e\u0446\u0435\u0441\u0441 PSP. +<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u0418 \u0445\u043e\u0442\u044f \u0432 \u043d\u0430\u0448\u0435\u0439 \u0437\u0430\u0434\u0430\u0447\u0435 \u043d\u0430\u043c \u043d\u0435 \u043d\u0443\u0436\u0435\u043d \u0441\u0442\u0435\u043a \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430, \u0434\u043b\u044f \u043e\u0431\u0449\u0435\u0433\u043e \u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u0441\u0435 \u0442\u0430\u043a\u0438 \u0443\u0442\u043e\u0447\u043d\u044e, \u0447\u0442\u043e \u0432 \u043a\u0430\u0436\u0434\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u0438\u0437 \u044d\u0442\u0438\u0445 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0435\u0439. \u0412 \u0440\u0435\u0436\u0438\u043c\u0435 <em>Handle<\/em> \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c <em>SP<\/em> \u0432\u0441\u0435\u0433\u0434\u0430 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 <em>MSP<\/em>, \u0430 \u0432\u043e\u0442 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 <em>Thread<\/em> \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043c\u043e\u0436\u0435\u0442 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043a\u0430\u043a \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0441\u0442\u0435\u043a <em>MSP<\/em>, \u0442\u0430\u043a \u0438 \u043d\u0430 \u0441\u0442\u0435\u043a \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 <em>PSP<\/em>. \u041a\u0430\u043a\u043e\u0439 \u0438\u043c\u0435\u043d\u043d\u043e \u0441\u0435\u0439\u0447\u0430\u0441 \u0441\u0442\u0435\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f, \u043c\u043e\u0436\u043d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e CONTROL \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430.<\/p>\n<p>  <\/p>\n<p>\u0412\u044b\u0445\u043e\u0434\u044f \u0438\u0437 \u0440\u0435\u0436\u0438\u043c\u0430 <em>Handle<\/em> \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u0441\u0442\u0435\u043a \u0443\u043a\u0430\u0437\u0430\u0432 \u0432\u043e\u043b\u0448\u0435\u0431\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0435 \u0438\u0437 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0438\u043b\u0438 \u0432 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0435 \u0441\u0432\u044f\u0437\u0438. \u0412\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u043c \u0440\u0435\u0433\u0438\u0441\u0442\u0440 \u0441\u0432\u044f\u0437\u0438.<\/p>\n<p>  <\/p>\n<h2 id=\"registr-svyazi-r14lr\">\u0420\u0435\u0433\u0438\u0441\u0442\u0440 \u0441\u0432\u044f\u0437\u0438 (r14\/LR)<\/h2>\n<p>  <\/p>\n<p>\u0423 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430 \u0441\u0432\u044f\u0437\u0438 \u0434\u0432\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438. \u041e\u0434\u043d\u0430 \u043f\u0440\u044f\u043c\u0430\u044f \u2014 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0430\u0434\u0440\u0435\u0441\u0430 \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0430:<\/p>\n<p>  <\/p>\n<ul>\n<li>\u0420\u0435\u0433\u0438\u0441\u0442\u0440 \u0441\u0432\u044f\u0437\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0430\u0434\u0440\u0435\u0441\u0430 \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0435 \u0438\u0437 \u043f\u043e\u0434\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c \u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0439, \u0432\u044b\u0437\u0432\u0430\u043d\u043d\u044b\u0445 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 BL.<\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u0418 \u0432\u0442\u043e\u0440\u0430\u044f \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 \u0432\u0430\u0436\u043d\u0430\u044f:<\/p>\n<p>  <\/p>\n<ul>\n<li>\u0412\u043e \u0432\u0440\u0435\u043c\u044f \u0432\u0445\u043e\u0434\u0430 \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0430 \u0438\u0437 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0432 LR \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f EXC_RETURN \u043a\u043e\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043a\u0430\u043a\u043e\u0439 \u0440\u0435\u0436\u0438\u043c \u0438 \u043a\u0430\u043a\u043e\u0439 \u0441\u0442\u0435\u043a \u043d\u0443\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0441\u043b\u0435 \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0430 \u0438\u0437 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f.<\/li>\n<\/ul>\n<p>  <\/p>\n<div class=\"scrollable-table\">\n<table>\n<thead>\n<tr>\n<th>EXC_RETURN<\/th>\n<th>\u0427\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>0xFFFFFFF1<\/td>\n<td>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u0441\u044f \u0432 <em>Handle<\/em> \u0440\u0435\u0436\u0438\u043c, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0441\u0442\u0435\u043a <em>MSP<\/em><\/td>\n<\/tr>\n<tr>\n<td>0xFFFFFFF9<\/td>\n<td>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u0441\u044f \u0432 <em>Thread<\/em> \u0440\u0435\u0436\u0438\u043c, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0441\u0442\u0435\u043a <em>MSP<\/em><\/td>\n<\/tr>\n<tr>\n<td>0xFFFFFFFD<\/td>\n<td>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u0441\u044f \u0432 <em>Thread<\/em> \u0440\u0435\u0436\u0438\u043c, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0441\u0442\u0435\u043a \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 <em>PSP<\/em><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>  <\/p>\n<h2 id=\"isklyuchenie\">\u0418\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h2>\n<p>  <\/p>\n<p>\u0418\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0432 ARM, \u044d\u0442\u043e \u0442\u0430\u043a\u043e\u0439 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u0440\u0435\u0440\u0432\u0430\u0442\u044c \u0431\u0435\u0437\u043c\u044f\u0442\u0435\u0436\u043d\u043e\u0435 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b. \u0418\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0432\u044b\u0437\u0432\u0430\u043d\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0432\u044b\u0437\u043e\u0432\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0438\u043b\u0438 \u0436\u0435 \u0432\u044b\u0437\u0432\u0430\u043d\u043e \u0432 \u043e\u0442\u0432\u0435\u0442 \u043d\u0430 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b, \u0442\u0430\u043a\u043e\u0435 \u043a\u0430\u043a \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435, \u043e\u0448\u0438\u0431\u043a\u0430 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f \u0438\u043b\u0438 \u043e\u0448\u0438\u0431\u043a\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043f\u0430\u043c\u044f\u0442\u0438.<br \/>  \u0418\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0431\u044b\u0432\u0430\u044e\u0442 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0435 \u0438 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0435. \u041f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u043c\u0438 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f\u043c\u0438. \u0410 \u0432\u043e\u0442 \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043e\u0448\u0438\u0431\u043a\u0438 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0441 \u0434\u043e\u0441\u0442\u0443\u043f\u043e\u043c \u043a \u043f\u0430\u043c\u044f\u0442\u0438 \u0438\u043b\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 \u2014 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0435 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f.<\/p>\n<p>  <\/p>\n<p>\u0418 \u0432 \u0446\u0435\u043b\u043e\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u044e\u0442 \u0434\u0432\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0441\u0442\u0430\u0434\u0438\u0438 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f:<\/p>\n<p>  <\/p>\n<ul>\n<li>\u0413\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f<\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u041c\u043e\u043c\u0435\u043d\u0442, \u043a\u043e\u0433\u0434\u0430 \u0432 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043d\u0435\u043a\u043e\u0435 \u0432\u0430\u0436\u043d\u043e\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0441\u0432\u044f\u0437\u0430\u043d\u043e \u0441 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c<\/p>\n<p>  <\/p>\n<ul>\n<li>\u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0438\u043b\u0438 \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u044f \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f<\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u042d\u0442\u043e \u043a\u043e\u0433\u0434\u0430 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u0443\u044e \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0434\u043b\u044f \u0432\u0445\u043e\u0434\u0430 \u0432 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435, \u043f\u043e\u0442\u043e\u043c \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043a\u043e\u0434 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0438 \u0432 \u043a\u043e\u043d\u0446\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0432\u044b\u0445\u043e\u0434\u0430 \u0438\u0437 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f. \u0418 \u0432 \u043e\u0431\u0449\u0435\u043c-\u0442\u043e \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043e\u0442 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0434\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043c\u0433\u043d\u043e\u0432\u0435\u043d\u043d\u044b\u043c.<\/p>\n<p>  <\/p>\n<p>\u0410 \u0442\u0435\u043f\u0435\u0440\u044c \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0439\u043c\u0435\u043c \u043a\u0430\u043a \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432\u0445\u043e\u0434 \u0438 \u0432\u044b\u0445\u043e\u0434 \u0438\u0437 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f, \u043d\u043e \u0434\u043b\u044f \u043f\u043e\u043b\u043d\u043e\u0442\u044b \u043a\u0430\u0440\u0442\u0438\u043d\u044b \u043f\u0440\u0435\u0436\u0434\u0435, \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u043a\u0430\u0434\u0440 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f.<\/p>\n<p>  <\/p>\n<h3 id=\"kadr-isklyucheniya\">\u041a\u0430\u0434\u0440 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f<\/h3>\n<p>  <\/p>\n<p>\u041a\u0430\u0434\u0440 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f (Exception Frame). \u0422\u0430\u043a \u0432\u043e\u0442, \u044d\u0442\u043e \u043d\u0430\u0431\u043e\u0440 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044e\u0442\u0441\u044f \u043f\u0440\u0438 \u0432\u0445\u043e\u0434\u0435 \u0432 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0438 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0438\u0437 \u043d\u0435\u0433\u043e \u043f\u0440\u0438 \u0432\u044b\u0445\u043e\u0434\u0435 \u0438\u0437 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f. \u041a\u0430\u0434\u0440 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/x4\/bd\/qw\/x4bdqweayrzugslzcs00sdxwfsq.png\" alt=\"image\" align=\"left\"> \u0412 \u043a\u0430\u0434\u0440\u0435 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044e\u0442\u0441\u044f \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b R0-R3, R12 \u0438 LR, PC, xPSR.<br \/>  <br clear=\"left\">  <\/p>\n<p>  <\/p>\n<h3 id=\"vhod-v-isklyuchenie\">\u0412\u0445\u043e\u0434 \u0432 \u0418\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h3>\n<p>  <\/p>\n<p>\u042d\u0442\u043e \u0432\u0430\u0436\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0438 \u0432\u044b\u0445\u043e\u0434\u0430 \u0438\u0437 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f.<br \/>  \u0412\u0445\u043e\u0434 \u0432 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u0442\u043e\u0433\u0434\u0430, \u043a\u043e\u0433\u0434\u0430 \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0436\u0438\u0434\u0430\u044e\u0449\u0435\u0435 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0441 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u043c \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u043e\u043c \u0438:<\/p>\n<p>  <\/p>\n<ul>\n<li>\u041c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 <em>Thread<\/em> \u0440\u0435\u0436\u0438\u043c\u0435<\/li>\n<li>\u0418\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0438\u043c\u0435\u0435\u0442 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442 \u0432\u044b\u0448\u0435, \u0447\u0435\u043c \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044e\u0449\u0435\u0435\u0441\u044f \u0432 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435. \u0412 \u0442\u0430\u043a\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0441 \u0432\u044b\u0441\u0448\u0438\u043c \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u043e\u043c \u0432\u044b\u0442\u0435\u0441\u043d\u044f\u0435\u0442 \u0442\u0435\u043a\u0443\u0449\u0435\u0435 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435, \u043f\u043e \u0434\u0440\u0443\u0433\u043e\u043c\u0443 \u044d\u0442\u043e \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u043c\u0438 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f\u043c\u0438.<\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u041a\u043e\u0433\u0434\u0430 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043e\u043d \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u043a\u0430\u0434\u0440 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0432 \u0441\u0442\u0435\u043a\u0435. \u042d\u0442\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u043f\u043e \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f &quot;stacking&quot;. \u041f\u043e \u0440\u0443\u0441\u0441\u043a\u0438 \u0437\u0432\u0443\u0447\u0438\u0442 \u0441\u0442\u0440\u0430\u043d\u043d\u043e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0435 \u0431\u0443\u0434\u0443 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u0442\u044c. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u0441\u0442\u0435\u043a\u0430 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0440\u0430\u0437\u043c\u0435\u0440 \u043a\u0430\u0434\u0440\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/c4\/lm\/fw\/c4lmfwmivnjyi-jdkrt6jjgrb6c.png\">  <\/p>\n<p>\u041a\u0430\u043a \u0431\u044b\u043b\u043e \u0443\u0436\u0435 \u0441\u043a\u0430\u0437\u0430\u043d\u043e \u0432\u044b\u0448\u0435, \u0441\u0442\u0435\u043a \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043a\u0430\u0434\u0440 \u0438\u0437 8 \u0441\u043b\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u043f\u043e\u0434\u0447\u0438\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0441\u0442\u044b\u043c \u043f\u0440\u0430\u0432\u0438\u043b\u0430\u043c.<\/p>\n<p>  <\/p>\n<ul>\n<li>\n<p>\u0421\u0442\u0435\u043a \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u043d\u0435\u043d \u043f\u043e 8 \u0431\u0430\u0439\u0442\u043e\u0432\u043e\u043c\u0443 \u0430\u0434\u0440\u0435\u0441\u0443 (\u0434\u0432\u0443\u043c \u0441\u043b\u043e\u0432\u0430\u043c).<\/p>\n<p>  <\/li>\n<li>\n<p>\u0421\u0442\u0435\u043a \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0430\u0434\u0440\u0435\u0441 \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0430 \u0438\u0437 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u2014 \u0430\u0434\u0440\u0435\u0441 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0432 \u043f\u0440\u0435\u0440\u0432\u0430\u043d\u043d\u043e\u0439 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u043f\u043e\u0434\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435. \u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0438 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u044f \u0432 PC \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0430 \u0438\u0437 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f.<\/p>\n<p>  <\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u041c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440, \u0430 \u0442\u043e\u0447\u043d\u0435\u0435 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u0441\u0442\u0430\u0440\u0442\u043e\u0432\u044b\u0439 \u0430\u0434\u0440\u0435\u0441 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u0432 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439 \u0438 \u043a\u043e\u0433\u0434\u0430 &quot;stacking&quot; \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d, \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f. \u0412 \u0442\u043e \u0436\u0435 \u0432\u0440\u0435\u043c\u044f \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u0434 \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0430 \u2014 <em>EXC_RETURN<\/em> \u0432 \u0440\u0435\u0433\u0438\u0441\u0442\u0440 <em>LR<\/em>, \u043a\u0430\u043a \u043c\u044b \u0443\u0436\u0435 \u0432\u044b\u044f\u0441\u043d\u0438\u043b\u0438 \u044d\u0442\u043e\u0442 \u043a\u043e\u0434 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0442\u0438\u043f \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f \u0441\u0442\u0435\u043a\u0430 (<em>MSP<\/em> \u0438\u043b\u0438 <em>PSP<\/em>) \u0438 \u0432 \u043a\u0430\u043a\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 \u0431\u044b\u043b \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0434\u043e \u0432\u0445\u043e\u0434\u0430 \u0432 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435.<\/p>\n<p>  <\/p>\n<p>\u0415\u0441\u043b\u0438 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0432\u0445\u043e\u0434\u0430 \u0432 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043d\u0435 \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u043e \u0431\u043e\u043b\u0435\u0435 \u0432\u044b\u0441\u043e\u043a\u043e-\u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u043d\u043e\u0433\u043e \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f, \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f. \u041c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u0442 \u0441\u0442\u0430\u0442\u0443\u0441 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043d\u0430 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0435.<\/p>\n<p>  <\/p>\n<p>\u0415\u0441\u043b\u0438 \u0431\u043e\u043b\u0435\u0435 \u0432\u044b\u0441\u043e\u043a\u043e\u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u043d\u043e\u0435 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u043e \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0432\u0445\u043e\u0434\u0430 \u0432 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435, \u0442\u043e \u0441\u0442\u0430\u0442\u0443\u0441 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0431\u0443\u0434\u0435\u0442 &quot;\u043e\u0436\u0438\u0434\u0430\u043d\u0438\u0435&quot;. \u0422\u0430\u043a \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u043e\u0435 &quot;\u043f\u043e\u0437\u0434\u043d\u0435\u0435 \u043f\u0440\u0438\u0431\u044b\u0442\u0438\u0435&quot;.<\/p>\n<p>  <\/p>\n<p>\u0412 \u043e\u0431\u0449\u0435\u043c-\u0442\u043e \u0438 \u0432\u0441\u0435, \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438, \u0442\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u0434\u043e \u0438\u0437 \u043d\u0435\u0433\u043e \u0432\u044b\u0439\u0442\u0438.<\/p>\n<p>  <\/p>\n<h3 id=\"vozvrat-iz-isklyucheniya\">\u0412\u043e\u0437\u0432\u0440\u0430\u0442 \u0438\u0437 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f<\/h3>\n<p>  <\/p>\n<p>\u0412\u043e\u0437\u0432\u0440\u0430\u0442 \u0438\u0437 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043a\u043e\u0433\u0434\u0430 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 <em>Handler<\/em> \u0440\u0435\u0436\u0438\u043c\u0435 \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u0430 \u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439, \u043f\u044b\u0442\u0430\u044e\u0449\u0438\u0445\u0441\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c <em>PC<\/em> \u0432 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0435 <em>EXC_RETURN<\/em> \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 :<\/p>\n<p>  <\/p>\n<ul>\n<li><em>POP<\/em> \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438\u0437 \u0441\u0442\u0435\u043a\u0430 \u0432 <em>PC<\/em>.<\/li>\n<li><em>BX<\/em> \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0430\u044f \u043b\u044e\u0431\u043e\u0439 \u0440\u0435\u0433\u0438\u0441\u0442\u0440<\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u041c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 EXC_RETURN \u0432 <em>LR<\/em> \u043f\u0440\u0438 \u0432\u0445\u043e\u0434\u0435 \u0432 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<br \/>  \u041c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439 \u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u0447\u0442\u043e\u0431\u044b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043a\u043e\u0433\u0434\u0430 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0442 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f.<\/p>\n<p>  <\/p>\n<p><strong>\u0411\u0438\u0442\u044b[31:4]<\/strong> <\/p>\n<p>  <\/p>\n<ul>\n<li><em>EXC_RETURN<\/em> \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u044b \u0432 0xFFFFFFF. \u041a\u043e\u0433\u0434\u0430 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u044d\u0442\u0438 \u0431\u0438\u0442\u044b \u0432 <em>PC<\/em>, \u044d\u0442\u043e \u0434\u0430\u0435\u0442 \u043f\u043e\u043d\u044f\u0442\u044c \u044f\u0434\u0440\u0443, \u0447\u0442\u043e \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0431\u044b\u0447\u043d\u043e\u0439, \u0430 \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0435 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f. \u041a\u0430\u043a \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0442\u0430\u043a\u043e\u0433\u043e &quot;\u043e\u043f\u043e\u0432\u0435\u0449\u0435\u043d\u0438\u044f&quot; \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0430 \u0438\u0437 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f.<\/li>\n<\/ul>\n<p>  <\/p>\n<p><strong>\u0411\u0438\u0442\u044b[3:0]<\/strong> <\/p>\n<p>  <\/p>\n<ul>\n<li><em>EXC_RETURN<\/em> \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u043d\u0430 \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u044b\u0439 \u0441\u0442\u0435\u043a \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0430 \u0438 \u0440\u0435\u0436\u0438\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430.<\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u041f\u0440\u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0435 \u0438\u0437 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043e\u0431\u0440\u0430\u0442\u043d\u0430\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u2014 unstacking, \u0435\u0449\u0435 \u0431\u043e\u043b\u0435\u0435 \u0441\u0442\u0440\u0430\u043d\u043d\u043e \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u044f\u0449\u0430\u044f\u0441\u044f \u043d\u0430 \u0440\u0443\u0441\u0441\u043a\u0438\u0439 \u044f\u0437\u044b\u043a. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u0432 <em>PC<\/em> \u0430\u0434\u0440\u0435\u0441 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0438\u0437 \u043a\u0430\u0434\u0440\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f, \u0438 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442 \u043d\u0430 \u0435\u0451 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435.<\/p>\n<p>  <\/p>\n<p>\u042f \u0442\u0443\u0442 \u043f\u043e\u043f\u044b\u0442\u0430\u043b\u0441\u044f \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u0437\u0430\u043b\u0438\u043f\u0430\u044e\u0449\u0443\u044e \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443, \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u043d\u0435 \u043e\u0447\u0435\u043d\u044c, \u043d\u043e \u043d\u0435 \u043f\u0440\u043e\u043f\u0430\u0434\u0430\u0442\u044c \u0436\u0435 2-\u0447\u0430\u0441\u043e\u0432\u0443 \u0442\u0440\u0443\u0434\u0443 \u0437\u0440\u044f.<\/p>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u0417\u0430\u043b\u0438\u043f\u0430\u044e\u0449\u0430\u044f \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/qo\/v7\/gp\/qov7gpcgyp0mbzf0g2wxnnd4chs.gif\"><\/p>\n<\/div><\/div>\n<p>  \u041d\u043e \u044f \u043b\u044e\u0431\u043b\u044e \u0441\u0442\u0430\u0442\u0438\u043a\u0443, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u043e\u0442 \u043e\u0431\u044b\u0447\u043d\u0430\u044f \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430:<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/pi\/6p\/4u\/pi6p4uukalg2xaqvcfyblxbixnc.png\">  <\/p>\n<h2>\u041f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430<\/h2>\n<p>  \u041d\u0430\u043a\u043e\u043d\u0435\u0446-\u0442\u043e \u0432\u0441\u044f \u0442\u0435\u043e\u0440\u0438\u044f \u0438\u0437\u0443\u0447\u0435\u043d\u0430, \u043e\u0441\u0442\u0430\u043b\u0438\u0441\u044c \u043c\u0435\u043b\u043e\u0447\u0438, \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430 \u0438 \u0432\u044b\u0442\u0435\u0441\u043d\u044f\u044e\u0449\u0443\u044e \u043c\u043d\u043e\u0433\u043e\u0437\u0430\u0434\u0430\u0447\u043d\u043e\u0441\u0442\u044c.  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u0412\u0441\u0435 \u0442\u0430\u043a\u0438 \u0441\u0434\u0435\u043b\u0430\u044e \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043e\u0442\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0435:<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<p>\u0412 &quot;\u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u044b\u0445&quot; RTOS, \u0438\u0434\u0435\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0437\u0430\u0434\u0430\u0447\u0430\u043c\u0438 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b <em>PSP<\/em> \u0441\u0442\u0435\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u0437\u0430\u0434\u0430\u0447\u0430\u043c\u0438, \u0430 <em>MSP<\/em> \u0441\u0442\u0435\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c\u0438 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439 \u0438 \u044f\u0434\u0440\u043e\u043c. \u041a\u043e\u0433\u0434\u0430 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435, \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442 \u0437\u0430\u0434\u0430\u0447\u0438 \u043f\u043e\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u0432 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u0441\u0442\u0435\u043a\u0430 <em>PSP<\/em>, \u0430 \u0437\u0430\u0442\u0435\u043c \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 <em>MSP<\/em> \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f.<\/p>\n<p>  <\/p>\n<p>\u0421 \u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u044d\u0442\u043e \u0445\u043e\u0440\u043e\u0448\u043e \u2014 \u044d\u0442\u043e \u043f\u043e\u0434\u0440\u0430\u0437\u0443\u043c\u0435\u0432\u0430\u0435\u0442 \u043d\u0435\u043a\u043e\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 \u0441\u0442\u0435\u043a\u0430\u043c\u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439 \u0438 \u0437\u0430\u0434\u0430\u0447, \u0432\u0430\u0448\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u0432\u0441\u0435\u0433\u0434\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441\u043e \u0441\u0442\u0435\u043a\u043e\u043c <em>PSP<\/em> \u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a <em>MSP<\/em> \u043d\u0435\u0442.<\/p>\n<p>  <\/p>\n<p>\u0421 \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b, \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430 \u043d\u0435 \u0442\u0430\u043a\u043e\u0435 \u0431\u044b\u0441\u0442\u0440\u043e\u0435, \u0430 \u0438\u0437-\u0437\u0430 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043a\u0430\u0436\u0434\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430 \u0438\u043c\u0435\u0435\u0442 \u0441\u0432\u043e\u0439 \u0441\u0442\u0435\u043a \u2014 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0441\u0445\u043e\u0434\u0443\u0435\u0442\u0441\u044f \u041e\u0417\u0423.<\/p>\n<\/div><\/div>\n<p>  <\/p>\n<p>\u0418\u0442\u0430\u043a \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442 \u0443 \u043d\u0430\u0441 \u0434\u043e\u043b\u0436\u0435\u043d \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0442\u044c\u0441\u044f \u043f\u043e \u043a\u0430\u043a\u043e\u043c\u0443-\u0442\u043e \u0441\u043e\u0431\u044b\u0442\u0438\u044e. \u041f\u0443\u0441\u0442\u044c \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u043b\u044e\u0431\u043e\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0435\u0435 \u0432 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u043e \u0442\u0430\u0439\u043c\u0435\u0440\u0443, \u0438\u043b\u0438 \u043f\u0440\u0438\u0445\u043e\u0434\u0443 \u0441\u0438\u043c\u0432\u043e\u043b\u0430 \u0432 UART, \u0438\u043b\u0438 \u043b\u044e\u0431\u043e\u043c\u0443 \u0434\u0440\u0443\u0433\u043e\u043c\u0443, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0438\u043d\u0438\u0446\u0438\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u0447\u0435\u0433\u043e-\u0442\u043e. \u041a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u043e \u0442\u0430\u043a\u043e\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u0435 \u043c\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u0439\u0434\u0435\u0442 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0443\u044e \u0437\u0430\u0434\u0430\u0447\u0443 \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442 \u0435\u0451, \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0432\u044b\u0442\u0438\u0441\u043d\u0443\u0432 \u0443\u0436\u0435 \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043d\u044b\u0435 \u043c\u0435\u043d\u0435\u0435 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u043d\u044b\u0435.<\/p>\n<p>  <\/p>\n<p>\u041b\u043e\u0433\u0438\u0447\u043d\u043e, \u0447\u0442\u043e \u0442\u0430\u043a\u0438\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u043c\u043e\u0433\u0443\u0442 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442\u044c \u0438\u0437 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439, \u0442.\u0435 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 <em>Handle<\/em>, \u0430 \u0432\u043e\u0442 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u0438 \u0437\u0430\u0434\u0430\u0447\u0438 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u044b \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 <em>Thread<\/em>. \u041a\u0430\u043a \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c?<\/p>\n<p>  <\/p>\n<p>\u041a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u043f\u0440\u0438 \u0432\u044b\u0445\u043e\u0434\u0435 \u0438\u0437 \u043b\u044e\u0431\u043e\u0433\u043e \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0441\u043e\u0431\u044b\u0442\u0438\u0435 \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 <em>PendSV<\/em>, \u0438 \u0443\u0436\u0435 \u0432 \u043d\u0435\u043c \u0434\u0435\u043b\u0430\u0442\u044c \u043c\u0430\u0433\u0438\u044e \u043f\u043e \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044e \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430: \u0432 \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u043d\u043e\u043c \u0432\u0438\u0434\u0435 \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a:<\/p>\n<p>  <\/p>\n<pre><code class=\"cpp\"> static void OnTimerExpired()  {     \/\/ \u041f\u043e\u0441\u043b\u0430\u0442\u044c \u0441\u043e\u0431\u044b\u0442\u0438\u0435 \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u0434\u0430\u0447\u0435, \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 targerThread     Tasker::PostEvent&lt;targetThread&gt;(eventsToPost) ;      \/\/ \u0412\u044b\u0437\u0432\u0430\u0442\u044c \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 PendSV \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430 \u0438 \u0432\u044b\u0442\u0435\u0441\u043d\u0435\u043d\u0438\u044f \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0437\u0430\u0434\u0430\u0447\u0438     Tasker::IsrExit() ;    }  .....\/\/ Tasker::IsrExit()  static void IsrExit()  {     \/\/ \u0413\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 PendSV     SCB::ICSR::PENDSVSET::PendingState::Set();    } <\/code><\/pre>\n<p>  <\/p>\n<p>\u0422.\u0435. \u0432\u043c\u0435\u0441\u0442\u043e \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0432 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0438 \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a, \u043c\u044b \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 <em>PendSV<\/em> \u0438 \u0443\u0436\u0435 \u043f\u0440\u0438 \u0432\u044b\u0445\u043e\u0434\u0435 \u0438\u0437 \u043d\u0435\u0433\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043c \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043d\u0438\u043c\u0430\u0442\u044c\u0441\u044f \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u0437\u0430\u0434\u0430\u0447.<\/p>\n<p>  <\/p>\n<p>\u0421\u0440\u0430\u0437\u0443 \u0436\u0435 \u043f\u043e\u0441\u043b\u0435 \u0432\u044b\u0445\u043e\u0434\u0430 \u0438\u0437 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f, \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0432\u0448\u0435\u0433\u043e \u0441\u043e\u0431\u044b\u0442\u0438\u0435 \u0434\u043b\u044f \u043a\u0430\u043a\u043e\u0439 \u043b\u0438\u0431\u043e \u0437\u0430\u0434\u0430\u0447\u0438, \u043c\u044b \u043f\u043e\u043f\u0430\u0434\u0435\u043c \u0432 <em>PendSV<\/em> \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0434\u043e\u043b\u0436\u043d\u044b:<\/p>\n<p>  <\/p>\n<ul>\n<li>\u0421\u043a\u0438\u043d\u0443\u0442\u044c \u0444\u043b\u0430\u0433 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f PendSV<\/li>\n<li>\u0417\u0430\u043f\u0440\u0435\u0442\u0438\u0442\u044c \u0432\u0441\u0435 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f<\/li>\n<li>\u0412\u044b\u0437\u0432\u0430\u0442\u044c \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a<\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u041d\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u043c \u043f\u0443\u043d\u043a\u0442\u0435 \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c\u0441\u044f \u043f\u043e\u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043b\u0435\u0433\u043a\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0434\u0430 \u043a\u0430\u043a \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c&#8230;<\/p>\n<p>  <\/p>\n<h2 id=\"vyzov-planirovschika\">\u0412\u044b\u0437\u043e\u0432 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430<\/h2>\n<p>  <\/p>\n<p>\u041d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u0438\u0437 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f <em>PendSV<\/em>, \u0442\u0430\u043a \u0447\u0442\u043e\u0431\u044b \u043e\u043d \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0441\u044f \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 <em>Thread<\/em>, \u043d\u043e \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043f\u0430\u0441\u0442\u044c \u0432 \u044d\u0442\u043e\u0442 \u0440\u0435\u0436\u0438\u043c \u043d\u0443\u0436\u043d\u043e \u0432\u044b\u0439\u0442\u0438 \u0438\u0437 <em>PendSV<\/em>.<br \/>  \u041a\u0430\u043a \u0432\u044b \u043f\u043e\u043c\u043d\u0438\u0442\u0435 \u043f\u0440\u0438 \u0432\u0445\u043e\u0434\u0435 \u0432 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435, \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u043b \u043a\u0430\u0434\u0440 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u043d\u0430 \u0441\u0442\u0435\u043a\u0435.<br \/>  \u0410 \u0435\u0441\u043b\u0438 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u0441\u0442\u0435\u043a\u0430 \u0442\u0430\u043a \u0438 \u043e\u0441\u0442\u0430\u043d\u0435\u0442\u0441\u044f \u043d\u0430 \u0432\u0435\u0440\u0448\u0438\u043d\u0435 \u044d\u0442\u043e\u0433\u043e \u043a\u0430\u0434\u0440\u0430, \u0442\u043e \u043f\u0440\u0438 \u0432\u044b\u0437\u043e\u0432\u0435 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430, \u0442.\u0435. \u0432\u044b\u0445\u043e\u0434\u0435 \u0438\u0437 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f, \u044d\u0442\u043e\u0442 \u043a\u0430\u0434\u0440 \u043f\u0440\u043e\u043f\u0430\u0434\u0435\u0442, \u0442\u0430\u043a \u043a\u0430\u043a \u043f\u0440\u0438 \u0432\u044b\u0445\u043e\u0434\u0435 \u0438\u0437 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0441\u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f unstacking. <\/p>\n<p>  <\/p>\n<p>\u0417\u043d\u0430\u0447\u0438\u0442 \u043d\u0430\u043c \u043d\u0430\u0434\u043e \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u043e\u0434\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u0435\u043a, \u0447\u0442\u043e\u0431\u044b, \u043f\u0440\u0438 \u0432\u044b\u0437\u043e\u0432\u0435 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430 \u043c\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 \u0441 \u0434\u0440\u0443\u0433\u0438\u043c \u043a\u0430\u0434\u0440\u043e\u043c. \u0422.\u0435. \u043a \u0442\u0435\u043a\u0443\u0449\u0435\u043c\u0443 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044e \u0441\u0442\u0435\u043a\u0430 \u043d\u0443\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c (\u0430 \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0441\u0442\u0435\u043a \u0440\u0430\u0441\u0442\u0435\u0442 \u0432 \u0441\u0442\u043e\u0440\u043e\u043d\u0443 \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u044f \u0430\u0434\u0440\u0435\u0441\u043e\u0432, \u0442\u043e \u0443\u0431\u0430\u0432\u0438\u0442\u044c) \u0441\u0442\u0435\u043a \u043d\u0430 \u0440\u0430\u0437\u043c\u0435\u0440 \u0435\u0449\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u0442\u0430\u043a\u043e\u0433\u043e \u0436\u0435 \u043a\u0430\u0434\u0440\u0430, \u043d\u043e \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0434\u043b\u044f \u0432\u044b\u0437\u043e\u0432\u0430 \u041f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430.<\/p>\n<p>  <\/p>\n<p>\u0418 \u0432 \u044d\u0442\u043e\u043c \u043a\u0430\u0434\u0440\u0435 \u0432 <em>PC<\/em> \u043c\u044b \u043f\u043e\u043b\u043e\u0436\u0438\u043c \u0430\u0434\u0440\u0435\u0441 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430, \u0432 <em>LR<\/em> \u0430\u0434\u0440\u0435\u0441 \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0430 \u043f\u043e\u0441\u043b\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430, \u0430 \u0432 xPSR \u043d\u0430\u0434\u043e \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u043c 1 \u0432 \u0431\u0438\u0442 <em>T<\/em>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u043c\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 \u043d\u0430\u0431\u043e\u0440\u043e\u043c \u043a\u043e\u043c\u0430\u043d\u0434 <em>Thumb<\/em>, \u0430 \u0442\u043e \u0432\u044b\u0439\u0434\u0435\u0442 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u043e\u0448\u0438\u0431\u043a\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439.<\/p>\n<p>  <\/p>\n<p>\u0412\u043e\u0442 \u0442\u0430\u043a \u043c\u044b \u0440\u0443\u043a\u0430\u043c\u0438 \u043f\u043e\u043c\u0435\u043d\u044f\u0435\u043c \u043d\u0430\u0448 \u0441\u0442\u0435\u043a \u0432 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0435 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f <em>PendSV<\/em> \u0434\u043b\u044f \u0432\u044b\u0437\u043e\u0432\u0430 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/76\/8l\/uk\/768lukg3cuum33stnat0u5d5qtw.png\">  <\/p>\n<h2 id=\"vozvrat-iz-planirovschika\">\u0412\u043e\u0437\u0432\u0440\u0430\u0442 \u0438\u0437 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430<\/h2>\n<p>  <\/p>\n<p>\u041a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u0441\u0432\u043e\u044e \u0440\u0430\u0431\u043e\u0442\u0443, \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0432\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f \u043a\u0443\u0434\u0430-\u0442\u043e, \u0433\u0434\u0435 \u043d\u0430\u0434\u043e \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0441\u0434\u0435\u043b\u0430\u0442\u044c, \u0447\u0442\u043e-\u0442\u043e, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0432\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f \u043a \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u043f\u0440\u0435\u0440\u0432\u0430\u043d\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0435. \u0422.\u0435. \u043c\u044b \u043e\u043f\u044f\u0442\u044c \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u0443\u0434\u0435\u043c \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u043a\u043e\u0435-\u0442\u043e \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435, \u0438 \u0432 \u043d\u0435\u043c \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0442\u043e\u0442 \u043a\u0430\u0434\u0440 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f, \u0447\u0442\u043e \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u0432 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c \u043f\u0443\u043d\u043a\u0442\u0435. \u0418 \u0443\u0436\u0435 \u043f\u0440\u0438 \u0432\u044b\u0445\u043e\u0434\u0435 \u0438\u0437 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f, \u0443 \u043d\u0430\u0441 \u0441\u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 unstacking \u0441 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043e\u043c \u043d\u0430 \u043f\u0440\u0435\u0440\u0432\u0430\u043d\u043d\u0443\u044e \u0437\u0430\u0434\u0430\u0447\u0443.<\/p>\n<p>  <\/p>\n<p>\u0414\u043b\u044f \u043b\u0443\u0447\u0448\u0435\u0433\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f, \u044f \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u043b \u0446\u0435\u043b\u0443\u044e \u043a\u0430\u0440\u0442\u0438\u043d\u0443, \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0438, \u043d\u043e \u0447\u0435\u0441\u0442\u043d\u043e \u0441\u0442\u0430\u0440\u0430\u043b\u0441\u044f \u0438 \u0432 \u043e\u0431\u0449\u0435\u043c-\u0442\u043e \u043f\u043e\u0441\u044b\u043b \u043f\u0435\u0440\u0435\u0434\u0430\u043b \u0432\u0435\u0440\u043d\u043e.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/op\/tb\/3h\/optb3hwluqrh_smttbretbu1ptc.png\">  <\/p>\n<ul>\n<li>\u0412\u043d\u0430\u0447\u0430\u043b\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 <em>SomeTask<\/em><\/li>\n<li>\u041a\u0430\u043a\u043e\u0435-\u0442\u043e \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u0441\u044b\u043b\u0430\u0435\u0442 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u0437\u0430\u0434\u0430\u0447\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u0435 \u0438 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 <em>PendSV<\/em><\/li>\n<li>\u041d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441\u0442\u0430\u0434\u0438\u044f \u0432\u0445\u043e\u0434\u0430 \u0432 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f stacking, \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u0434\u0440 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u043d\u0430 <em>MSP<\/em> \u0441\u0442\u0435\u043a\u0435<\/li>\n<li>\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f <em>PendSV<\/em><\/li>\n<li>\u0412 \u043d\u0435\u043c \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043a \u0441\u0442\u0435\u043a\u0443 \u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u0440\u0443\u043a\u043e\u0442\u0432\u043e\u0440\u043d\u043e-\u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043a\u0430\u0434\u0440 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f, \u043a\u0443\u0434\u0430 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u0430\u0434\u0440\u0435\u0441 \u0430\u0434\u0440\u0435\u0441 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430, \u0430\u0434\u0440\u0435\u0441 \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0430 \u043f\u043e\u0441\u043b\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430 \u0438 \u043d\u0430\u0431\u043e\u0440 \u043a\u043e\u043c\u0430\u043d\u0434 <em>Thumb<\/em><\/li>\n<li>\u0412\u044b\u0445\u043e\u0434\u0438\u043c \u0438\u0437 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u0441\u0442\u0430\u0434\u0438\u044e unstacking, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0432\u044b\u0442\u0430\u0441\u043a\u0438\u0432\u0430\u0435\u0442 \u043d\u0430\u0448\u0438 \u043f\u043e\u0434\u043c\u0435\u043d\u043d\u044b\u0435 <em>PC<\/em>, <em>LR<\/em> \u0438 <em>xPSR<\/em>, \u0438 \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441 \u043d\u0438\u043c\u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442 \u043d\u0430 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a.<\/li>\n<li>\u041f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u0434\u0435\u043b\u0430\u0435\u0442 \u0441\u0432\u043e\u044e \u0440\u0430\u0431\u043e\u0442\u0443 \u0443\u0436\u0435 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 <em>Thread<\/em> \u2014 \u0438\u0449\u0435\u0442 \u043d\u043e\u0432\u0443\u044e \u0432\u044b\u0441\u043e\u043a\u043e\u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u043d\u0443\u044e \u0437\u0430\u0434\u0430\u0447\u0443, \u0438 \u0435\u0441\u043b\u0438 \u043d\u0430\u0448\u0435\u043b \u2014 \u043f\u0440\u043e\u0441\u0442\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u0435\u0435, \u0442\u0430\u043a\u0436\u0435 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 <em>Thread<\/em>, \u043e\u043d\u0430 \u0442\u043e\u0436\u0435 \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u0442\u0435\u0441\u043d\u0438\u0442\u044c\u0441\u044f \u0435\u0449\u0435 \u0431\u043e\u043b\u0435\u0435 \u0432\u044b\u0441\u043e\u043a\u043e\u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u043d\u043e\u0439.<\/li>\n<li>\u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0432\u044b\u0441\u043e\u043a\u043e\u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u043d\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430<\/li>\n<li>\u041f\u043e \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044e \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0432 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a<\/li>\n<li>\u0410 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0432 \u043c\u0435\u0441\u0442\u043e, \u0433\u0434\u0435 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f <em>SVC<\/em> \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/li>\n<li>\u0418 \u0441\u043d\u043e\u0432\u0430 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0432\u0445\u043e\u0434\u0430 \u0432 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 <em>SVC<\/em><\/li>\n<li>\u0412 \u043d\u0435\u043c \u043c\u044b \u0443\u0431\u0438\u0440\u0430\u0435\u043c \u0441\u043e \u0441\u0442\u0435\u043a\u0430 \u0442\u043e\u0442 \u0444\u0438\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u043a\u0430\u0434\u0440 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f, \u0447\u0442\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u0432 <em>PendSV<\/em> \u0438 \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u0430\u0434\u0440 \u043e\u0442 \u0432\u044b\u0442\u0435\u0441\u043d\u0435\u043d\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438<\/li>\n<li>\u0412\u044b\u0445\u043e\u0434\u0438\u043c \u0438\u0437 <em>SVC<\/em>, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c unstacking \u0438 \u043f\u043e\u043f\u0430\u0434\u0430\u0435\u043c \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0432 \u0432\u044b\u0442\u0435\u0441\u043d\u0435\u043d\u043d\u0443\u044e \u0437\u0430\u0434\u0430\u0447\u0443<\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u041e\u043f\u0430 \u0438 \u0432\u0441\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c\u2026 \u0422\u0435\u043f\u0435\u0440\u044c \u0442\u043e\u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u043d\u0430 <del>lisp<\/del> (\u043d\u0435 \u043d\u0430\u0448\u0435\u043b, \u043a\u0430\u043a \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043a\u043e\u0434 \u043d\u0430 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0435, \u0447\u0442\u043e\u0431\u044b \u043e\u043d \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u043b\u0441\u044f, \u0438 \u0431\u044b\u043b\u0438 \u0432\u0438\u0434\u043d\u044b \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u0441\u0442\u0430\u0432\u0438\u043b \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0443 \u043a\u0430\u043a \u043d\u0430 lisp) \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0435. <\/p>\n<p>  <\/p>\n<pre><code class=\"lisp\">  RSEG CODE:CODE:NOROOT(2)    PUBLIC  HandlePendSv   PUBLIC  HandleSvc    EXTERN  Schedule  ; \u0418\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0432 Hanlder \u0440\u0435\u0436\u0438\u043c, \u043d\u043e \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u0434\u043e\u043b\u0436\u0435\u043d \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c\u0441\u044f \u0432 ; Thread \u0440\u0435\u0436\u0438\u043c\u0435. \u042d\u0442\u043e\u0442 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u0443\u0435\u0442 \u043a\u0430\u0434\u0440 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0438 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 ; Thread \u0440\u0435\u0436\u0438\u043c \u0447\u0435\u0440\u0435\u0437 \u044d\u0442\u0430\u043f \u0432\u044b\u0445\u043e\u0434 \u0438\u0437 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 \u0432 Schedule \u0444\u0443\u043d\u043a\u0446\u0438\u044e HandlePendSv:    ; \u041e\u0447\u0438\u0449\u0430\u0435\u043c \u0431\u0438\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043d\u0430 PendSv, \u043f\u0443\u0442\u0435\u043c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 PendSvClr \u0431\u0438\u0442\u0430(#27) \u0432 ICSR \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0435   ; \u0410\u0434\u0440\u0435\u0441 ICSR(Interrupt Control and State Register) \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430 0xE000ED04   LDR     r3,=0xE000ED04   LDR     r1,=1&lt;&lt;27   ; \u0417\u0430\u043f\u0440\u0435\u0449\u0430\u0435\u043c \u0432\u0441\u0435 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f   CPSID   i   ; \u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0441\u043a\u0438\u0434\u044b\u0432\u0430\u0435\u043c \u0431\u0438\u0442 PendSvClr   STR     r1,[r3]   ; \u041a\u043e\u0433\u0434\u0430 \u043c\u044b \u0432\u0435\u0440\u043d\u0435\u043c\u0441\u044f \u0438\u0437 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f XPSR \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u0442\u043e\u044f\u0442\u044c T - bit(1 &lt;&lt; 24), \u0433\u043e\u0432\u043e\u0440\u044f\u0449\u0438\u0439   ; \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u0443 \u043d\u0430\u0441 Thumb \u043d\u0430\u0431\u043e\u0440 \u043a\u043e\u043c\u0430\u043d\u0434, \u0430 \u0442\u043e \u0435\u0441\u043b\u0438 \u043e\u043d \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0441\u0442\u043e\u044f\u0442\u044c, \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435   ; \u043a\u043e\u043c\u0430\u043d\u0434 \u043d\u0430\u043a\u0440\u043e\u0435\u0442\u0441\u044f \u043c\u0435\u0434\u043d\u044b\u043c \u0442\u0430\u0437\u043e\u043c.   LDR     r3,=1&lt;&lt;24              ; \u041a\u043e\u0433\u0434\u0430 \u043c\u044b \u0432\u0435\u0440\u043d\u0435\u043c\u0441\u044f \u0438\u0437 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f, \u043c\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u043e\u043f\u0430\u0441\u0442\u044c \u0432 Schedule, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432 PC \u0434\u043e\u043b\u0436\u0435\u043d   ; \u0431\u044b\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u0430\u043d \u0430\u0434\u0440\u0435\u0441 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 Schedule \u0438 \u043e\u043d \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0447\u0435\u0442\u043d\u044b\u043c   LDR     r2,=Schedule - 1   ; \u0410 \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u044e Schedule \u043c\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0432\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 ScheduleReturn   ; \u0417\u0430\u043f\u0438\u0448\u0435\u043c \u044d\u0442\u043e\u0442 \u0430\u0434\u0440\u0435\u0441 \u0432 LR   LDR     r1,=ScheduleReturn   ; \u0422\u0435\u043f\u0435\u0440\u044c \u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u0443\u0435\u043c \u043c\u0435\u0441\u0442\u043e \u043f\u043e\u0434 \u043a\u0430\u0434\u0440 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0432\u044b\u0445\u043e\u0434\u0430 \u0438\u0437 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f   SUB     sp,sp,#8*4               ADD     r0,sp,#5*4 ; \u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u0435\u043c\u0441\u044f \u0432 \u043c\u0435\u0441\u0442\u043e \u0434\u043b\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f XPSR, PC, LR   ; \u0418 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u0432 \u043d\u0435\u0433\u043e \u043d\u043e\u0432\u044b\u0435 XPSR, PC, LR ( r3- xPSR, R2 - PC, r1-LR)   STM     r0!,{r1-r3}              ; r0 = 0xFFFFFFF9 - Thread \u0440\u0435\u0436\u0438\u043c \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c MSP \u0441\u0442\u0435\u043a   LDR     r0,=0xFFFFFFF9                 ; \u0412\u044b\u0445\u043e\u0434\u0438\u043c \u0438\u0437 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c 0xFFFFFFF9 \u0438 \u043f\u043e\u043f\u0430\u0434\u0430\u0435\u043c \u043f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0432 Schedule   BX      r0  ; \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u0441\u044f \u0441\u044e\u0434\u044f \u0438\u0437 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 Schedule, \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u043c \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435 \u0438 ; \u0438 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 SVC, \u0447\u0442\u043e\u0431\u044b \u0432\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f \u0432 \u0432\u044b\u0442\u0435\u0441\u043d\u0435\u043d\u043d\u0443\u044e \u0437\u0430\u0434\u0430\u0447\u0443 ScheduleReturn:   CPSIE   i   ; SVC \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 CPSIE, \u0442\u0430\u043a \u043a\u0430\u043a Cortext M0 \u0438\u043c\u0435\u0435\u0442 \u0434\u0432\u0443\u0445\u0441\u0442\u0430\u0434\u0438\u0439\u043d\u044b\u0439 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440.   ; \u041c\u0435\u0436\u0434\u0443 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f \u0438 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 SVC \u0447\u0438\u0441\u0442\u043e \u0442\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043c\u043e\u0436\u0435\u0442    ; \u0432\u043a\u043b\u0438\u043d\u0438\u0442\u044c\u0441\u044f \u0435\u0449\u0435 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435, \u043d\u043e \u0443 \u043d\u0430\u0441 \u0434\u0432\u0443\u0445-\u0441\u0442\u0430\u0434\u0438\u0439\u043d\u044b\u0439 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440 \u0438 \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u0431\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b   ; \u0443\u0436\u0435 \u0432 \u043d\u0435\u043c, \u043d\u0438\u0447\u0442\u043e \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u0442\u044c \u0432\u044b\u0437\u043e\u0432 SVC,  \u0440\u0435\u0431\u044f\u0442\u0430 \u0441 Quantum Leaps \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0442\u0443\u0442    ; \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044e  NMI, \u0447\u0442\u043e\u0431\u044b \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 NMI \u043f\u0435\u0440\u0435\u0434 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435\u043c \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439   SVC #0  ; \u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043d\u0430 SVC \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u043f\u0430\u0434\u0430\u0435\u043c \u0441\u044e\u0434\u0430 HandleSvc:   ; \u0423\u0434\u0430\u043b\u044f\u0435\u043c \u043a\u0430\u0434\u0440 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u0432 PendSV,   ; \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u0430\u0434\u0440 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043e\u0442 \u0432\u044b\u0442\u0435\u0441\u043d\u0435\u043d\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438   ADD     sp,sp,#(8*4)  ; \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u0441\u044f \u0432 \u0432\u044b\u0442\u0435\u0441\u043d\u0435\u043d\u043d\u0443\u044e \u0437\u0430\u0434\u0430\u0447\u0443   BX      lr   END<\/code><\/pre>\n<p>  <\/p>\n<h2 id=\"planirovschik\">\u041f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a<\/h2>\n<p>  <\/p>\n<p>\u041d\u0443 \u0430 \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a \u0443\u0441\u0442\u0440\u043e\u0435\u043d \u041e\u043e\u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a. \u0427\u0442\u043e\u0431\u044b \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043e\u043d \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u2014 \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u043a\u0430\u0436\u0443 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443, \u043e\u043d\u0430 \u043c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u044f\u0441\u043d\u0438\u0442: \u0412\u0441\u0435\u0433\u043e 4 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u0432, \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u0441\u043a\u0440\u044b\u0442\u043e \u043e\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0433\u0440\u0435\u0445\u0430 \u043f\u043e\u0434\u0430\u043b\u044c\u0448\u0435.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/wz\/ee\/3i\/wzee3i2shf78ykm2gi1kbgj3ugw.png\">  <\/p>\n<p>\u041a\u0430\u043a \u0432\u044b \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442\u0435, \u0432\u0441\u044f \u0441\u0443\u0442\u044c \u0442\u0443\u0442 \u0437\u0430\u043b\u043e\u0436\u0435\u043d\u0430 \u0432 \u043c\u0435\u0442\u043e\u0434\u0435 <em>Schedule()<\/em> \u0438 \u043e\u043d \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u044d\u043a\u0441\u0442\u0440\u0435\u043c\u0430\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u044b\u043c. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442 \u0437\u0430\u0434\u0430\u0447\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u043b\u0441\u044f \u0435\u0451 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c \u0432 \u0441\u043f\u0438\u0441\u043a\u0435 \u0437\u0430\u0434\u0430\u0447. \u041d\u0443 \u0442.\u0435., \u0447\u0442\u043e\u0431\u044b \u0435\u0441\u043b\u0438 \u043c\u044b \u0437\u0430\u0434\u0430\u043b\u0438 \u0431\u044b \u0437\u0430\u0434\u0430\u0447\u0438 \u0442\u0430\u043a:<\/p>\n<p>  <\/p>\n<pre><code class=\"cpp\">struct myTasker: Tasker&lt;HighPriorityTask, NormalPriorityTask, LowPriorityTask,  idleTask&gt; {} ; <\/code><\/pre>\n<p>  <\/p>\n<p>\u0422\u043e \u044d\u0442\u043e \u0431\u044b \u043e\u0437\u043d\u0430\u0447\u0430\u043b\u043e, \u0447\u0442\u043e \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442 HighPriorityTask \u2014 \u0441\u0430\u043c\u044b\u0439 \u0432\u044b\u0441\u043e\u043a\u0438\u0439, \u0430 idleTask \u2014 \u0441\u0430\u043c\u044b\u0439 \u043d\u0438\u0437\u043a\u0438\u0439. \u042d\u0442\u043e \u043d\u0430\u043c \u0440\u0435\u0448\u0438\u0442 \u043a\u0443\u0447\u0443 \u043f\u0440\u043e\u0431\u043b\u0435\u043c, \u0441 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u043e\u0439 \u0441\u043f\u0438\u0441\u043a\u0430 \u0437\u0430\u0434\u0430\u0447. \u0417\u0430\u0434\u0430\u0447\u0438 \u0432\u0441\u0435\u0433\u0434\u0430 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u044b \u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u044f \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u0430.<\/p>\n<p>  <\/p>\n<p>\u0422\u043e\u0433\u0434\u0430 \u043d\u0430\u0448 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0432\u0441\u0435\u043c \u0441\u043e\u0432\u0441\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u044b\u043c.<\/p>\n<p>  <\/p>\n<pre><code class=\"cpp\">   static void Schedule()   {     if(preempted)     {       preempted = false;       const auto preemptedTaskId = activeTaskId; \/\/ \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u043c \u043d\u043e\u043c\u0435\u0440 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0437\u0430\u0434\u0430\u0447\u0438       auto nextTaskId = GetFirstActiveTaskId(); \/\/ \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043d\u043e\u043c\u0435\u0440 \u043f\u0435\u0440\u0432\u043e\u0439 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438        \/\/ \u0415\u0441\u043b\u0438 \u043d\u043e\u043c\u0435\u0440 \u0437\u0430\u0434\u0430\u0447\u0438 \u043c\u0435\u043d\u044c\u0448\u0435 \u043d\u043e\u043c\u0435\u0440\u0430 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0437\u0430\u0434\u0430\u0447\u0438,       \/\/ \u0442\u043e \u0443 \u043d\u0435\u0451 \u0432\u044b\u0448\u0435 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442 \u0438 \u0435\u0451 \u043d\u0430\u0434\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c       while (nextTaskId &lt; activeTaskId)       {         activeTaskId = nextTaskId;         CallTask(nextTaskId); \/\/ \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c \u0437\u0430\u0434\u0430\u0447\u0443 \u0438 \u0441\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u043c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u043e\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u0435         nextTaskId = GetFirstActiveTaskId(); \/\/ \u0432\u0434\u0440\u0443\u0433 \u0435\u0441\u0442\u044c \u0435\u0449\u0435 \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0437\u0430\u0434\u0430\u0447\u0438       }       activeTaskId = preemptedTaskId; \/\/\u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c \u043d\u043e\u043c\u0435\u0440 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0437\u0430\u0434\u0430\u0447\u0438     }   } <\/code><\/pre>\n<p>  <\/p>\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0437\u0430\u0434\u0430\u0447\u0438 \u0442\u043e\u0436\u0435 \u043f\u0440\u043e\u0441\u0442\u0430 \u043a\u0430\u043a \u043f\u044f\u0442\u044c \u043a\u043e\u043f\u0435\u0435\u043a:<\/p>\n<p>  <\/p>\n<pre><code class=\"cpp\"> __forceinline  template&lt;const auto&amp; task&gt; static void CallTaskHelper() {   task.events = noEvents;   \/\/ \u0441\u043a\u0438\u0434\u044b\u0432\u0430\u0435\u043c \u0441\u043e\u0431\u044b\u0442\u0438\u0435   __enable_interrupt() ;    \/\/ \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u043c \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u0434\u0430\u0447\u0443 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0432\u044b\u0442\u0435\u0441\u043d\u0438\u0442\u044c   task.OnEvent();           \/\/ \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0437\u0430\u0434\u0430\u0447\u0443   __disable_interrupt() ;   \/\/ \u0437\u0430\u043f\u0440\u0435\u0449\u0430\u0435\u043c \u0441\u043d\u043e\u0432\u0430 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435 }<\/code><\/pre>\n<p>  <\/p>\n<p>\u041a\u0430\u043a \u0432\u0438\u0434\u043d\u043e, \u0437\u0430\u0434\u0430\u0447\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u043c\u0435\u0442\u043e\u0434 OnEvent().<br \/>  \u0418 \u0434\u0430, \u043c\u044b \u0436\u0435 \u043d\u0435 \u0445\u043e\u0442\u0435\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0437\u0430\u0434\u0430\u0447\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u0447\u0435\u0440\u0435\u0437 \u0441\u0441\u044b\u043b\u043a\u0438, \u043a\u0430\u043a \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u0448\u0430\u0431\u043b\u043e\u043d\u0430.<\/p>\n<p>  <\/p>\n<pre><code class=\"cpp\">template&lt;const auto&amp; ...tasks&gt; class Tasker { ... }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0418 \u043f\u0440\u043e\u0431\u0435\u0433\u0430\u0435\u043c\u0441\u044f \u043f\u043e \u044d\u0442\u043e\u043c\u0443 \u0441\u043f\u0438\u0441\u043a\u0443 \u0442\u0430\u043a, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0439\u0442\u0438 \u043f\u0435\u0440\u0432\u0443\u044e (\u0441\u0430\u043c\u0443\u044e \u0432\u044b\u0441\u043e\u043a\u043e\u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u043d\u0443\u044e) \u0430\u043a\u0442\u0438\u0432\u043d\u0443\u044e \u0437\u0430\u0434\u0430\u0447\u0443:<\/p>\n<p>  <\/p>\n<pre><code class=\"cpp\"> static constexpr size_t GetFirstActiveTaskId()  {    return GetFisrtActiveTask&lt;tasks...&gt;(0U);  }   __forceinline template&lt;const auto&amp; task, const auto&amp; ...args&gt;  static constexpr size_t GetFisrtActiveTask(size_t result)  {    if constexpr (sizeof...(args) != 0U)    {      if (task.events != noEvents)      {        return result;      }      else      {        auto res = result + 1 ;        return GetFisrtActiveTask&lt;args...&gt;(res);      }    }    else    {      if (task.events != noEvents)      {        return result;      } else      {         return sizeof...(tasks); \/\/ \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c \u043d\u0435\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0443\u044e \u0437\u0430\u0434\u0430\u0447\u0443.      }    }  }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0438 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0442\u0430\u043a\u0436\u0435<\/p>\n<p>  <\/p>\n<pre><code class=\"cpp\">static void CallTask(size_t id) {   return CallTaskById&lt;tasks...&gt;(id, 0U); }  __forceinline template&lt;const auto&amp; task, const auto&amp; ...args&gt; static void CallTaskById(size_t id, size_t result) {    if constexpr (sizeof...(args) != 0U)    {      if (result == id)      {        CallTaskHelper&lt;task&gt;() ;      }      else      {        auto res = result + 1 ;        CallTaskById&lt;args...&gt;(id, res);      }    }    else    {      if (result == id)      {        CallTaskHelper&lt;task&gt;() ;      }      else      {           \/\/\u0435\u0441\u043b\u0438 \u043d\u0435 \u043d\u0430\u0448\u043b\u0438 \u0437\u0430\u0434\u0430\u0447\u0443, \u0442\u043e \u043d\u0438\u0447\u0435\u0433\u043e \u0438 \u043d\u0435 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c.      }    } } <\/code><\/pre>\n<p>  <\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u0437\u0430\u0434\u0430\u0447\u0430 \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043b\u0430\u0441\u044c \u0435\u0439 \u043d\u0430\u0434\u043e \u043f\u0440\u043e\u0441\u0438\u0433\u043d\u0430\u043b\u0438\u0442\u044c, \u043d\u0443 \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441\u043b\u0443\u0447\u0438\u043b\u0441\u044f \u0442\u0430\u0439\u043c\u0430\u0443\u0442 link layer \u0443 \u043a\u0430\u043a\u043e\u0433\u043e-\u043d\u0438\u0431\u0443\u0434\u044c \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 (\u0432 Modbus RTU \u0430\u0436 \u0434\u0432\u0430 \u0442\u0430\u0439\u043c\u0435\u0440 \u043d\u0430 3.5 \u0441\u0438\u043c\u0432\u043e\u043b\u0430 \u0438 1.5 \u0441\u0438\u043c\u0432\u043e\u043b) \u0438 \u043d\u0430\u0434\u043e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441\u043e\u0431\u044b\u0442\u0438\u0435 \u043f\u043e \u043f\u0440\u0438\u0435\u043c\u0443 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u2014 \u0434\u0430 \u0440\u0430\u0434\u0438 \u0431\u043e\u0433\u0430 \u2014 \u043f\u043e\u0441\u044b\u043b\u0430\u0435\u043c \u0438\u0437 \u0442\u0430\u0439\u043c\u0435\u0440\u0430 \u0437\u0430\u0434\u0430\u0447\u0435, \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0443 \u043f\u0440\u0438\u0435\u043c\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0441\u043e\u0431\u044b\u0442\u0438\u0435.<\/p>\n<p>  <\/p>\n<pre><code class=\"cpp\">  template&lt;const auto&amp; targetTask&gt;   static void PostEvent(const tStateEvents events)   {     const CriticalSection cs;     targetTask.events |= events;  \/\/ \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0441\u043e\u0431\u044b\u0442\u0438\u0435 \u0432 \u0437\u0430\u0434\u0430\u0447\u0435     preempted = true;     if (scheduleLockedCounter == 0U) \/\/ \u0415\u0441\u043b\u0438 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u043d\u0435 \u0437\u0430\u043f\u0440\u0435\u0449\u0435\u043d     {       Schedule(); \/\/\u0412\u0434\u0440\u0443\u0433 \u0437\u0430\u0434\u0430\u0447\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u043e\u0441\u043b\u0430\u043b\u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u0435 \u0438\u043c\u0435\u0435\u0442 \u0432\u044b\u0441\u0448\u0438\u0439 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442     }   }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412\u044b\u0448\u0435 \u044f \u0443\u0436\u0435 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u043b, \u0447\u0442\u043e \u043d\u0435\u043b\u044c\u0437\u044f \u043f\u0440\u043e\u0441\u0442\u043e \u0442\u0430\u043a \u0432\u0437\u044f\u0442\u044c \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u0438\u0437 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f, \u043d\u0443\u0436\u043d\u043e \u0438\u0437 \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f \u043a\u0430\u043a-\u0442\u043e \u0432\u044b\u0439\u0442\u0438 \u0432\u043d\u0430\u0447\u0430\u043b\u0435, \u0430 \u043f\u043e\u0442\u043e\u043c \u0443\u0436\u0435 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u2014 \u0438 \u044d\u0442\u043e \u043c\u044b \u0434\u0435\u043b\u0430\u0435\u043c \u043f\u0443\u0442\u0435\u043c \u0432\u044b\u0437\u043e\u0432\u0430 <em>PendSV<\/em>.<\/p>\n<p>  <\/p>\n<pre><code class=\"cpp\"> __forceinline static void IsrEntry()  {    assert(scheduleLockedCounter != 255U);    ++scheduleLockedCounter;  }   __forceinline static void IsrExit()  {    assert(scheduleLockedCounter != 0U);    --scheduleLockedCounter;    SCB::ICSR::PENDSVSET::PendingState::Set();   }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412 \u043f\u0440\u0438\u043c\u0435\u0440\u0435, \u044f \u0441\u0434\u0435\u043b\u0430\u043b \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u043e\u0442 \u0442\u0430\u0439\u043c\u0435\u0440\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u043b \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0433\u043e \u0442\u0430\u0439\u043c\u0435\u0440\u0430. \u041e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0433\u043e \u0442\u0430\u0439\u043c\u0435\u0440\u0430 \u043f\u043e\u043a\u0430\u0437\u0430\u043d \u043d\u0438\u0436\u0435:<\/p>\n<p>  <\/p>\n<pre><code class=\"cpp\">template &lt;typename Tasker, typename ...Timers&gt; struct TaskerTimerService {   static void OnSystemTick()   {      Tasker::IsrEntry() ;      (Timers::OnTick(), ...) ;      Tasker::IsrExit() ;   } } ;<\/code><\/pre>\n<p>  <\/p>\n<p>\u0410 \u0442\u0430\u0439\u043c\u0435\u0440\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u0441\u0442\u044f\u0442 \u0441\u043e\u0431\u044b\u0442\u0438\u044f<\/p>\n<p>  <\/p>\n<pre><code class=\"cpp\">template &lt;auto&amp; targetThread, std::uint32_t TimerFrequency, std::uint32_t msPeriod, tStateEvents eventsToPost, typename Tasker&gt; class TaskerTimer { public:   static void OnTick()   {     --ticksRemain ;     if (ticksRemain == 0U)     {       ticksRemain = ticksReload ;       Tasker::PostEvent&lt;targetThread&gt;(eventsToPost) ;     }   } ... } <\/code><\/pre>\n<p>  <\/p>\n<h2 id=\"zadachi\">\u0417\u0430\u0434\u0430\u0447\u0438<\/h2>\n<p>  <\/p>\n<p>\u0417\u0430\u0434\u0430\u0447\u0438 \u0434\u043e\u043b\u0436\u043d\u044b \u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043e\u0442 <em>TaskBase<\/em>. \u0412 \u043d\u0435\u0433\u043e \u044f \u0437\u0430\u043f\u0438\u0445\u043d\u0443\u043b \u0430\u0442\u0440\u0438\u0431\u0443\u0442 \u0441\u043e\u0431\u044b\u0442\u0438\u0435, \u0447\u0442\u043e\u0431\u044b \u0443 \u043a\u0430\u0436\u0434\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u0431\u044b\u043b \u0442\u0430\u043a\u043e\u0439 \u0430\u0442\u0440\u0438\u0431\u0443\u0442, \u043d\u043e \u0442\u0430\u043a \u043a\u0430\u043a \u043e\u043d \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439, \u0442\u043e \u0447\u0442\u043e\u0431\u044b \u044d\u0442\u043e\u0442 \u0430\u0442\u0440\u0438\u0431\u0443\u0442 \u0431\u044b\u043b \u0440\u0430\u0437\u043d\u044b\u0439 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438, \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043b \u2014 \u0421\u0442\u0440\u0430\u043d\u043d\u043e-\u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u044b\u0439 \u0448\u0430\u0431\u043b\u043e\u043d.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/zr\/d7\/-y\/zrd7-yfltxofsbz1n0afpqw1ep8.png\">  <\/p>\n<p>\u0412 \u043a\u043e\u0434\u0435 \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0442\u0430\u043a:<\/p>\n<p>  <\/p>\n<pre><code class=\"cpp\">struct TargetThread: public TaskBase&lt;TargetThread&gt; { }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0422\u0430\u043a\u0436\u0435 \u044f \u0441\u0434\u0435\u043b\u0430\u043b <del>3<\/del>, \u043d\u0435\u0442 4 \u0437\u0430\u0434\u0430\u0447\u0438, 3 \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u043e\u0440\u0433\u0430\u044e\u0442 \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434\u0430\u043c\u0438, \u0430 \u043e\u0434\u043d\u0430 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0438 \u0447\u0435\u043c \u043d\u0435 \u043c\u043e\u0440\u0433\u0430\u0435\u0442 \u0438 \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0434\u0435\u043b\u0430\u0435\u0442.<\/p>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u0417\u0430\u0434\u0430\u0447\u0438<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cpp\">struct TargetThread: public TaskBase&lt;TargetThread&gt; {     void OnEvent() const     {       \/\/ \u041a\u043e\u0433\u0434\u0430 \u043a\u0442\u043e-\u0442\u043e \u043d\u0430\u043c \u043f\u0440\u043e\u0441\u0438\u0433\u043d\u0430\u043b\u0438\u043b, \u043c\u044b \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u043c \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434.       GPIOC::ODR::Toggle(1&lt;&lt;8);    \/\/ \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434 PortC.8     }  };  template&lt;typename SimpleTasker, auto&amp; threadToSignal&gt; struct Thread1 : public TaskBase&lt;Thread1&lt;SimpleTasker, threadToSignal&gt;&gt; {   void OnEvent() const   {     GPIOC::ODR::Toggle(1&lt;&lt;9);  \/\/\u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434 PortC.9     SimpleTasker::PostEvent&lt;threadToSignal&gt;(1); \/\/ \u041f\u043e\u0441\u044b\u043b\u0430\u0435\u043c \u0441\u0438\u0433\u043d\u0430\u043b \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u0434\u0440\u0443\u0433\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0435   } };  template&lt;typename SimpleTasker, auto&amp; threadToSignal&gt; struct Thread2 : public TaskBase&lt;Thread2&lt;SimpleTasker, threadToSignal&gt;&gt; {     void OnEvent() const     {         GPIOC::ODR::Toggle(1&lt;&lt;5); \/\/ \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434 PortC.5         for (int i = 0; i &lt; 4000000; ++i)  \/\/ \u0438\u043c\u0438\u0442\u0430\u0446\u0438\u044f \u0431\u0443\u0440\u043d\u043e\u0439 \u0434\u0435\u044f\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438         {         };         SimpleTasker::PostEvent&lt;threadToSignal&gt;(1); \/\/ \u041f\u043e\u0441\u044b\u043b\u0430\u0435\u043c \u0441\u0438\u0433\u043d\u0430\u043b \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u0434\u0440\u0443\u0433\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0435         test ++ ;     }  private:     inline static int test ; };  class myTasker; inline constexpr TargetThread targetThread; \/\/ \u0417\u0430\u0434\u0430\u0435\u043c, \u0447\u0442\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u0438\u0442\u044c \u0445\u043e\u0442\u0438\u043c targetThread inline constexpr Thread1&lt;myTasker, targetThread&gt; myThread1;  inline constexpr Thread2&lt;myTasker, targetThread&gt; myThread2; <\/code><\/pre>\n<\/div><\/div>\n<p>  <\/p>\n<p>\u0417\u0430\u0434\u0430\u0447\u0438 \u0441\u0430\u043c\u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u0442\u0430\u043a \u043d\u0435 \u0437\u0430\u043f\u0443\u0441\u0442\u044f\u0442\u0441\u044f, \u043d\u0443\u0436\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u043a\u0442\u043e-\u0442\u043e \u0438\u043c \u0437\u0430\u043f\u043e\u0441\u0442\u0438\u043b \u0441\u043e\u0431\u044b\u0442\u0438\u0435, \u0430 \u0442\u0430\u043a\u0438\u043c\u0438 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044f\u043c\u0438 \u0432 \u043c\u043e\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0442\u0430\u0439\u043c\u0435\u0440\u044b. \u0418\u0445 \u043d\u0430\u0434\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u0438\u043d\u0434\u0438\u0432\u0438\u0434\u0443\u0430\u043b\u044c\u043d\u043e.<\/p>\n<p>  <\/p>\n<pre><code class=\"cpp\"> \/\/\u0414\u043b\u044f myThread1, \u043f\u0443\u0441\u0442\u044c \u0442\u0430\u0439\u043c\u0435\u0440 \u0431\u0443\u0434\u0435\u0442 \u043d\u0430 1001 \u043c\u0441 using MyThread1Timer = TaskerTimer&lt;myThread1, 1'000UL,                                    1001UL, \/\/ time in ms                                    1,                                    myTasker&gt;; \/\/\u0414\u043b\u044f myThread2, \u0440\u043e\u0432\u043d\u043e \u0442\u0430\u0439\u043c\u0435\u0440 \u0431\u0443\u0434\u0435\u0442 \u043d\u0430 1000 \u043c\u0441 using MyThread2Timer = TaskerTimer&lt;myThread2, 1'000UL,                                    1000UL, \/\/ time in ms                                    1,                                    myTasker&gt;;  using tRtosTimerService = TaskerTimerService&lt;myTasker, MyThread1Timer, MyThread2Timer&gt;;<\/code><\/pre>\n<p>  <\/p>\n<p>\u041d\u0443 \u0438 \u0432\u0441\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c&#8230;<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/xc\/6a\/ef\/xc6aefhv9reff44di5fyeh6l29m.gif\">  <\/p>\n<p>.<br \/>  \u0412\u0441\u0435 \u043b\u0435\u0436\u0438\u0442 \u0432 Github <a href=\"https:\/\/github.com\/lamer0k\/CortexLib\/tree\/master\/rtos\" rel=\"nofollow\">\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434<\/a>. \u041c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0430\u043f\u043a\u0443 \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0432 Clion.<\/p>\n<p>  <\/p>\n<p>\u0410 \u0442\u0443\u0442 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c <a href=\"https:\/\/yadi.sk\/d\/QjqvZZmodhlbxw\" rel=\"nofollow\">\u041f\u043e\u043b\u043d\u044b\u0439 \u043a\u043e\u0434 \u0441 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u043c \u043f\u043e\u0434 IAR 8.40.2<\/a><\/p>\n<p>  <\/p>\n<h1 id=\"zaklyuchenie\">\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h1>\n<p>  <\/p>\n<p>4 \u0437\u0430\u0434\u0430\u0447\u0438 \u043c\u043e\u0440\u0433\u0430\u043d\u0438\u044f \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434\u043e\u043c + \u0441\u0430\u043c \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 572 \u0431\u0430\u0439\u0442 \u043a\u043e\u0434\u0430 + 15 \u0431\u0430\u0439\u0442 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 18 \u0431\u0430\u0439\u0442 \u041e\u0417\u0423 \u0431\u0435\u0437 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438.<\/p>\n<p>  <\/p>\n<div class=\"scrollable-table\">\n<table>\n<thead>\n<tr>\n<th>Module<\/th>\n<th>ro code<\/th>\n<th>ro data<\/th>\n<th>rw data<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>taskerschedule.cpp<\/td>\n<td>516<\/td>\n<td>15<\/td>\n<td>18<\/td>\n<\/tr>\n<tr>\n<td>interrupthandlers.s<\/td>\n<td>56<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>  <\/p>\n<p>\u041f\u0440\u0438 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u043e\u0439 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438, \u0440\u0430\u0437\u043c\u0435\u0440 \u043a\u043e\u0434\u0430 \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0435\u0442\u0441\u044f \u043d\u0430 120 \u0431\u0430\u0439\u0442\u0430.<\/p>\n<p>  <\/p>\n<div class=\"scrollable-table\">\n<table>\n<thead>\n<tr>\n<th>Module<\/th>\n<th>ro code<\/th>\n<th>ro data<\/th>\n<th>rw data<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>taskerschedule.cpp<\/td>\n<td>388<\/td>\n<td>11<\/td>\n<td>18<\/td>\n<\/tr>\n<tr>\n<td>interrupthandlers.s<\/td>\n<td>56<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>  <\/p>\n<p>\u0420\u0435\u0441\u0443\u0440\u0441\u044b:<br \/>  <a href=\"https:\/\/www.embedded.com\/build-a-super-simple-tasker\/\" rel=\"nofollow\">Build a Super Simple Tasker<\/a><\/p>\n<p>  <\/p>\n<p><a href=\"http:\/\/infocenter.arm.com\/help\/index.jsp?topic=\/com.arm.doc.ddi0419c\/index.html\" rel=\"nofollow\">ARMv6-M Architecture Reference Manual<\/a><\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/github.com\/QuantumLeaps\/qpc\/blob\/master\/ports\/arm-cm\/qk\/iar\/qk_port.c\" rel=\"nofollow\">QuantumLeaps\/qpc<\/a><\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/archive.fosdem.org\/2018\/schedule\/event\/multitasking_on_cortexm\/attachments\/slides\/2602\/export\/events\/attachments\/multitasking_on_cortexm\/slides\/2602\/Slides.pdf\" rel=\"nofollow\">Multitasking on Cortex-M(0)class MCU<\/a><\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/developer.arm.com\/docs\/ddi0432\/c\/system-control\/system-control-register-summary\" rel=\"nofollow\">Cortex-M0 Technical Reference Manual<\/a><\/p>\n<\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/post\/506414\/\"> https:\/\/habr.com\/ru\/post\/506414\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/post\/506414\/\">\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/_y\/4d\/wb\/_y4dwblkg3ul7bzga83il5b9aoq.png\" alt=\"image\" align=\"left\"><br \/>  <br clear=\"left\">  \u0421 \u043a\u0430\u0436\u0434\u044b\u043c \u0433\u043e\u0434\u043e\u043c \u043a\u0443\u0440\u0441\u043e\u0432\u044b\u0435 \u0434\u043b\u044f \u043c\u043e\u0438\u0445 \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u043e\u0432 \u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f \u0432\u0441\u0435 \u043e\u0431\u044a\u0435\u043c\u043d\u0435\u0435. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432 \u044d\u0442\u043e\u043c \u0433\u043e\u0434\u0443 \u043e\u0434\u043d\u0438\u043c \u0438\u0437 \u0437\u0430\u0434\u0430\u043d\u0438\u0439 \u0431\u044b\u043b\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043c\u0435\u0442\u0435\u043e\u0441\u0442\u0430\u043d\u0446\u0438\u0438, \u0432\u0435\u0434\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043b\u0435\u043d\u0438\u0432\u044b\u0439 \u043d\u0435 \u0434\u0435\u043b\u0430\u0435\u0442 \u043c\u0435\u0442\u0435\u043e\u0441\u0442\u0430\u043d\u0446\u0438\u0438, \u0430 \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u044b \u043e\u043d\u0438 \u043f\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044e \u043d\u0435 \u043b\u0435\u043d\u0438\u0432\u044b\u0435, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u043e\u043b\u0436\u043d\u044b \u0435\u0451 \u0441\u0434\u0435\u043b\u0430\u0442\u044c. \u0415\u0451 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u043e \u043d\u0430\u043a\u0438\u0434\u0430\u0442\u044c \u0432 Cube \u0438\u043b\u0438 \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u043d\u0430 \u0410\u0440\u0434\u0443\u0438\u043d\u043e, \u043d\u043e \u0437\u0430\u0434\u0430\u0447\u0430 \u043a\u0443\u0440\u0441\u043e\u0432\u043e\u0433\u043e \u043d\u0435 \u0432 \u044d\u0442\u043e\u043c. \u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430 \u2014 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e, \u0441 \u043d\u0443\u043b\u044f \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0441 \u043c\u043e\u0434\u0443\u043b\u044f\u043c\u0438 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430, \u043f\u0440\u043e\u0434\u0443\u043c\u0430\u0442\u044c \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0443 \u041f\u041e, \u0438 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0437\u0430\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u043d\u0430 \u0421++, \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u043e\u0442 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 \u0438 \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430\u043c\u0438 \u0420\u0422\u041e\u0421. \u041a\u043e\u043c\u0443 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e, \u0437\u0434\u0435\u0441\u044c <a href=\"https:\/\/yadi.sk\/i\/YIC26s2Hiuey_A\" title=\"\u0422\u0432\u043e\u0440\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u043e\u0432\" rel=\"nofollow\">\u043f\u0440\u0438\u043c\u0435\u0440 \u043e\u0442\u0447\u0435\u0442\u0430 \u043f\u043e \u0442\u0430\u043a\u043e\u043c\u0443 \u043a\u0443\u0440\u0441\u043e\u0432\u043e\u043c\u0443<\/a><\/p>\n<p>  <\/p>\n<p>\u0422\u0430\u043a \u0432\u043e\u0442 \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e, \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0439 IAR \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0434\u0435\u043b\u0430\u0442\u044c \u041f\u041e \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c \u043d\u0435 \u0431\u043e\u043b\u0435\u0435 30 \u043a\u0411\u0430\u0439\u0442. \u0410 \u044d\u0442\u043e \u0443\u0436\u0435 \u0432\u043f\u0440\u0438\u0442\u044b\u043a \u043a \u0440\u0430\u0437\u043c\u0435\u0440\u0443 \u043a\u0443\u0440\u0441\u043e\u0432\u043e\u0433\u043e \u0432 \u043d\u0435\u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u0432\u0438\u0434\u0435. \u0410\u043d\u0430\u043b\u0438\u0437 \u043a\u043e\u0434\u0430 \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u043e\u0432 \u0432\u044b\u044f\u0432\u0438\u043b, \u0447\u0442\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e 1\/4 \u0447\u0430\u0441\u0442\u044c \u0438\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 FreeRtos \u2014 \u043e\u043a\u043e\u043b\u043e 6 \u043a\u0411\u0430\u0439\u0442, \u0445\u043e\u0442\u044f \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0432\u044b\u0442\u0435\u0441\u043d\u044f\u044e\u0449\u0443\u044e \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u043b\u043a\u0443 \u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u043b\u043a\u0443 \u0437\u0430\u0434\u0430\u0447\u0430\u043c\u0438 \u0445\u0432\u0430\u0442\u0438\u043b\u043e \u0431\u044b, \u043d\u0430\u0432\u0435\u0440\u043d\u043e\u0435\u2026 \u0434\u0430 \u0431\u0430\u0439\u0442 500 \u043f\u0440\u0438\u0447\u0435\u043c \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 3 \u0437\u0430\u0434\u0430\u0447\u0430\u043c\u0438 (\u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434\u043d\u044b\u043c\u0438 \u043c\u043e\u0440\u0433\u0443\u043d\u0447\u0438\u043a\u0430\u043c\u0438).<\/p>\n<p>  <\/p>\n<p>\u042d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u0430 \u0442\u043e\u043c\u0443 \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u041e\u0447\u0435\u043d\u044c \u041f\u0440\u043e\u0441\u0442\u043e\u0439 \u041f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a(\u043e\u043d \u0436\u0435 SST), \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u0432 <a href=\"https:\/\/www.embedded.com\/build-a-super-simple-tasker\/\" rel=\"nofollow\">\u0441\u0442\u0430\u0442\u044c\u0435 \u0430\u0436 2006 \u0433\u043e\u0434\u0430<\/a> \u0438 \u0441\u0435\u0439\u0447\u0430\u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0439 <a href=\"http:\/\/www.state-machine.com\/products\/\" rel=\"nofollow\">Quantum Leaps<\/a> \u0432 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0435 <a href=\"http:\/\/www.state-machine.com\/qpcpp\/\" rel=\"nofollow\">Qp framework<\/a>. <\/p>\n<p>  <\/p>\n<p>\u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u044d\u0442\u043e\u0433\u043e \u044f\u0434\u0440\u0430 \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442, \u0438 \u043e\u043d\u043e \u043e\u0447\u0435\u043d\u044c \u0445\u043e\u0440\u043e\u0448\u043e \u043c\u043e\u0436\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445 \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u0430\u043c\u0438 (\u0438 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e), \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e 5 \u043a\u0411\u0430\u0439\u0442 \u0432 \u0441\u0432\u043e\u0435 \u0440\u0430\u0441\u043f\u043e\u0440\u044f\u0436\u0435\u043d\u0438\u0435.<\/p>\n<p>  <\/p>\n<p>\u042f \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u044e \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u0430\u043a\u043e\u0439 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u0441\u0430\u043c\u043e\u043c\u0443. \u0427\u0442\u043e\u0431\u044b \u043d\u0435 \u0441\u0438\u043b\u044c\u043d\u043e \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0441\u0442\u0430\u0442\u044c\u044e, \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u044e \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430 \u043d\u0430 CortexM0 \u0443 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043d\u0435\u0442 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u043c\u043e\u0434\u0443\u043b\u044f \u0441 \u043f\u043b\u0430\u0432\u0430\u044e\u0449\u0435\u0439 \u0442\u043e\u0447\u043a\u043e\u0439.<\/p>\n<p>  <\/p>\n<p>\u0412\u0441\u0435 \u043a\u0442\u043e \u0437\u0430\u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043e\u0432\u0430\u043b\u0441\u044f \u0438 \u0445\u043e\u0447\u0435\u0442 \u043f\u043e\u043d\u044f\u0442\u044c \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442, \u0434\u043e\u0431\u0440\u043e \u043f\u043e\u0436\u0430\u043b\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0434 \u043a\u0430\u0442.<\/p>\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-305249","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/305249","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=305249"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/305249\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=305249"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=305249"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=305249"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}