{"id":268525,"date":"2015-11-19T10:21:08","date_gmt":"2015-11-19T07:21:08","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=268525"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=268525","title":{"rendered":"Flytouch 2\/Superpad III \u0438 \u043f\u043e\u043f\u044b\u0442\u043a\u0430 \u0441\u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442\u044c \u0431\u0430\u0439\u0442\u044b \u0432 \u044f\u0434\u0440\u0435 \u041b\u0438\u043d\u0443\u043a\u0441"},"content":{"rendered":"<p>       \u042f \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043b \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u0443\u044e \u0441\u0442\u0430\u0442\u044c\u044e \u0443\u0436\u0435 \u0434\u0430\u0432\u043d\u043e, \u043d\u043e \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u043c\u0435\u0441\u044f\u0446\u044b<br \/>  \u043d\u0438\u043a\u0430\u043a \u043d\u0435 \u043c\u043e\u0433 \u0432\u044b\u043a\u0440\u043e\u0438\u0442\u044c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u041f\u043e\u043a\u0430 \u044f \u0440\u0430\u0437\u043c\u044b\u0448\u043b\u044f\u043b \u043d\u0430\u0434 \u0441\u0442\u0430\u0442\u044c\u0451\u0439,<br \/>  \u0434\u0435\u043b\u0430\u043b \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u043b \u0441\u0432\u043e\u0438 \u0434\u043e\u0433\u0430\u0434\u043a\u0438, \u043d\u0430 \u0425\u0430\u0431\u0440\u0435 \u0443\u0436\u0435 \u043e\u0431\u0441\u0443\u0434\u0438\u043b\u0438<br \/>  \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u043d\u043e\u0441\u0442\u044c \u2014 <sup><a name=\"cite_ref-abbyy-circle\"><\/a><a href=\"#cite_note-abbyy-circle\">[1]<\/a><\/sup><sup><a name=\"cite_ref-unique-consts\"><\/a><a href=\"#cite_note-unique-consts\">[2]<\/a><\/sup>.<\/p>\n<p>  \u0420\u0430\u0434\u0438 \u0437\u0430\u0431\u0430\u0432\u044b \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043f\u0440\u043e\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u043e\u0434\u043e\u0431\u043d\u0443\u044e \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u044e \u043d\u0435 \u0441\u043e \u0441\u0444\u0435\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u043c<br \/>  \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u043c \u0432 \u0432\u0430\u043a\u0443\u0443\u043c\u0435, \u0430 \u0441 \u0441\u0430\u043c\u044b\u043c \u0447\u0442\u043e \u043d\u0438 \u043d\u0430 \u0435\u0441\u0442\u044c \u0436\u0438\u0432\u044b\u043c \u0438 \u0433\u0440\u0430\u043d\u0434\u0438\u043e\u0437\u043d\u044b\u043c<br \/>  \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u043c \u2014 \u0441 \u044f\u0434\u0440\u043e\u043c \u041b\u0438\u043d\u0443\u043a\u0441!<br \/>  <a name=\"habracut\"><\/a><br \/>  \u0421\u0442\u0430\u0442\u044c\u044f \u0438\u043c\u0435\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443:  <\/p>\n<ol>\n<li><a name=\"toc-intro\"><\/a><a href=\"#intro\">\u041f\u0440\u0435\u0434\u044b\u0441\u0442\u043e\u0440\u0438\u044f<\/a><\/li>\n<li><a name=\"toc-flytouch2\"><\/a><a href=\"#flytouch2\">\u041f\u043b\u0430\u043d\u0448\u0435\u0442 Flytouch 2\/Superpad III<\/a><br \/> \n<ul>\n<li><a name=\"toc-firmware\"><\/a><a href=\"#firmware\">\u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0430<\/a><\/li>\n<li><a name=\"toc-kernel\"><\/a><a href=\"#kernel\">\u0441\u0431\u043e\u0440\u043a\u0430 \u044f\u0434\u0440\u0430<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a name=\"toc-constness\"><\/a><a href=\"#constness\">\u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u043d\u043e\u0441\u0442\u044c<\/a><\/li>\n<li><a name=\"toc-measurement\"><\/a><a href=\"#measurement\">\u0418\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f<\/a><\/li>\n<li><a name=\"toc-conclusion\"><\/a><a href=\"#conclusion\">\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/a><\/li>\n<li><a name=\"toc-sources\"><\/a><a href=\"#sources\">\u0421\u043f\u0438\u0441\u043e\u043a \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432<\/a><\/li>\n<\/ol>\n<p>   \u041f\u043e \u0438\u0434\u0435\u0435 \u0441\u0442\u0430\u0442\u044c\u044e \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u0440\u0430\u0437\u0431\u0438\u0442\u044c \u043d\u0430 \u0434\u0432\u0435 \u0447\u0430\u0441\u0442\u0438: \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0434\u0435\u0442\u0430\u043b\u0438 \u043f\u0440\u043e \u043f\u043b\u0430\u043d\u0448\u0435\u0442 \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 extern const \u0432 \u044f\u0434\u0440\u0435 \u041b\u0438\u043d\u0443\u043a\u0441. \u041c\u043d\u0435 \u043a\u0430\u0436\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0442\u043e\u0433\u0434\u0430 \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u044b\u0445 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0439 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u0431\u044b, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u043b \u0432\u0435\u0441\u044c \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u0432 \u043e\u0434\u043d\u0443 \u0441\u0442\u0430\u0442\u044c\u044e.<\/p>\n<p>  <a name=\"intro\"><\/a><\/p>\n<h4><font color=\"#2B7BAE\">\u041f\u0440\u0435\u0434\u044b\u0441\u0442\u043e\u0440\u0438\u044f<\/font>&nbsp;<a href=\"#toc-intro\">^<\/a><\/h4>\n<p>   \u0412 \u0434\u0430\u043b\u0451\u043a\u043e\u043c 2011 \u0433\u043e\u0434\u0443 \u044f \u043d\u0430\u0447\u0438\u0442\u0430\u043b\u0441\u044f \u043d\u0430 \u0445\u0430\u0431\u0440\u0435 \u043e\u0431\u0437\u043e\u0440\u043e\u0432 \u043f\u0440\u043e \u043a\u0438\u0442\u0430\u0439\u043f\u0430\u0434\u044b \u2014 <sup><a name=\"cite_ref-zt180\"><\/a><a href=\"#cite_note-zt180\">[3]<\/a><\/sup><sup><a name=\"cite_ref-zt180-10\"><\/a><a href=\"#cite_note-zt180-10\">[4]<\/a><\/sup><sup><a name=\"cite_ref-wowpad\"><\/a><a href=\"#cite_note-wowpad\">[5]<\/a><\/sup>. \u0415\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043c\u043d\u0435 \u0437\u0430\u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0442\u0430\u043a\u043e\u0433\u043e \u0447\u0443\u0434\u0430 \u0438 \u044f \u0435\u0433\u043e \u0437\u0430\u043a\u0430\u0437\u0430\u043b.<\/p>\n<p>  \u041d\u0435\u043c\u043d\u043e\u0436\u043a\u043e \u043f\u043e\u0438\u0433\u0440\u0430\u043b\u0441\u044f, \u043f\u043e\u0433\u043b\u044f\u0434\u0435\u043b \u043a\u0438\u043d\u043e, \u043f\u043e\u0440\u0430\u0437\u0433\u0430\u0434\u044b\u0432\u0430\u043b \u043c\u0430\u0434\u0436\u043e\u043d\u0433 \u0438\u2026 \u0418 \u0432\u0441\u043a\u043e\u0440\u0435 \u043c\u043e\u0451 \u043c\u043d\u0435\u043d\u0438\u0435 \u0441\u0442\u0430\u043b\u043e \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u044b\u043c \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c\u0443 \u2014 <sup><a name=\"cite_ref-good-review\"><\/a><a href=\"#cite_note-good-review\">[6]<\/a><\/sup>.<\/p>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0431\u044b\u043b\u043e \u0440\u0435\u0448\u0435\u043d\u043e \u0438\u0437\u0443\u0447\u0430\u0442\u044c \u043f\u043b\u0430\u043d\u0448\u0435\u0442 \u0441 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0430, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u2014 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0442\u0443\u0434\u0430 \u043e\u0431\u044b\u0447\u043d\u044b\u0439 \u041b\u0438\u043d\u0443\u043a\u0441, \u0447\u0442\u043e-\u043d\u0438\u0431\u0443\u0434\u044c \u043f\u043e\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c.<\/p>\n<p>  <a name=\"flytouch2\"><\/a><\/p>\n<h4><font color=\"#2B7BAE\">\u041f\u043b\u0430\u043d\u0448\u0435\u0442 Flytouch 2\/Superpad III<\/font>&nbsp;<a href=\"#toc-flytouch2\">^<\/a><\/h4>\n<p>   \u0412\u0441\u0451 \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0435 \u0441\u043f\u0440\u0430\u0432\u0435\u0434\u043b\u0438\u0432\u043e \u0434\u043b\u044f \u043a\u0438\u0442\u0430\u0439\u043f\u0430\u0434\u0430, \u0443 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u0442\u0430\u043a\u0438\u0435 \u043e\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0437\u043d\u0430\u043a\u0438:<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c<\/b><\/p>\n<div class=\"spoiler_text\">DF-MID10-IX210-V1.1<br \/>  2010-01-20<\/p>\n<p>  XW11070501B512M03101  <\/div>\n<\/div>\n<p>  \u0417\u0434\u0435\u0441\u044c <sup><a name=\"cite_ref-geek-porn\"><\/a><a href=\"#cite_note-geek-porn\">[8]<\/a><\/sup> \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e \u0433\u0438\u043a-\u043f\u043e\u0440\u043d\u043e. \u041d\u0430 \u0444\u043e\u0442\u043a\u0430\u0445 \u043e\u0442\u0447\u0451\u0442\u043b\u0438\u0432\u043e \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0437\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0432\u044b\u0432\u043e\u0434\u044b JTAG &#038; USART. \u0422\u0430\u043a\u0436\u0435 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u043c\u0430\u0440\u043a\u0438\u0440\u043e\u0432\u043a\u0443.<\/p>\n<p>  <a name=\"firmware\"><\/a><\/p>\n<h5><font color=\"#2B7BAE\">\u041f\u0440\u043e\u0448\u0438\u0432\u043a\u0430<\/font>&nbsp;<a href=\"#toc-firmware\">^<\/a><\/h5>\n<p>   \u0414\u043b\u044f \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043d\u0430\u0434\u043e \u043d\u0430 \u0421\u0414-\u043a\u0430\u0440\u0442\u043e\u0447\u043a\u0443 \u0441 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 FAT \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0444\u0430\u0439\u043b\u044b \u0441 \u0438\u043c\u0435\u043d\u0430\u043c\u0438 firmware2, firmware-discovery, bootloader-discovery; \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0435\u0451 \u0432 \u0440\u0430\u0437\u044c\u0451\u043c \u0438 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043f\u043b\u0430\u043d\u0448\u0435\u0442. (\u0423 \u043c\u0435\u043d\u044f \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e \u0441 \u0444\u043b\u0435\u0448\u043a\u043e\u0439 256\u041c\u0411 \u0438 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 W95 FAT32 \u2014 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 0xB \u0432 fdisk).<\/p>\n<p>  \u041f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u0440\u0430\u0431\u043e\u0447\u0430\u044f \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0430. \u0425\u043e\u0442\u044f \u043f\u0440\u0435\u0434\u043c\u0435\u0442 \u0441\u0442\u0430\u0442\u044c\u0438 \u0434\u0430\u0432\u043d\u043e \u0443\u0441\u0442\u0430\u0440\u0435\u043b, \u0435\u0449\u0451 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0440\u0430\u0431\u043e\u0447\u0438\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0437\u0434\u0435\u0441\u044c \u2014 <sup><a name=\"cite_ref-review-firmwares\"><\/a><a href=\"#cite_note-review-firmwares\">[12]<\/a><\/sup>. \u042f \u0432\u0437\u044f\u043b \u0432\u0435\u0440\u0441\u0438\u044e Axlien.<\/p>\n<p>  \u041f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u043e\u0432:<\/p>\n<ol>\n<li>\u0444\u0430\u0439\u043b\u044b *-discovery \u2014 \u044d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e zip-\u0430\u0440\u0445\u0438\u0432\u044b \u0441 \u043d\u0443\u0436\u043d\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0434\u043b\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f. firmware-discovery \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0432\u0441\u0451, \u0447\u0442\u043e \u043a\u0430\u0441\u0430\u0435\u0442\u0441\u044f \u0410\u043d\u0434\u0440\u043e\u0438\u0434\u0430. \u041f\u0440\u043e bootloader \u043d\u0438\u0447\u0435\u0433\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043d\u0435 \u043c\u043e\u0433\u0443 \u2014 \u043e\u043d \u043c\u043d\u0435 \u043d\u0435 \u043f\u043e\u043f\u0430\u0434\u0430\u043b\u0441\u044f, \u043d\u043e \u043f\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044e \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0433\u0430\u0434\u044b\u0432\u0430\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u044d\u0442\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430 \u2014 \u043d\u0435 \u044f\u0441\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e, \u043a\u0430\u043a\u043e\u0433\u043e \u0438\u043c\u0435\u043d\u043d\u043e;<\/li>\n<li>\u0444\u0430\u0439\u043b firmware2 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043d\u0430\u0438\u0431\u043e\u043b\u044c\u0448\u0438\u0439 \u0438\u043d\u0442\u0435\u0440\u0435\u0441. \u041d\u0430 \u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442 \u043d\u0438\u0433\u0434\u0435 \u0432 \u0441\u0435\u0442\u0438 \u044f \u043d\u0435 \u043d\u0430\u0448\u0451\u043b \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u043d\u0438\u044f \u0444\u043e\u0440\u043c\u0430\u0442\u0430 \u044d\u0442\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430. \u042f \u043f\u043e\u0434\u0443\u043c\u0430\u043b, \u043d\u0443 \u043d\u0435 \u043c\u043e\u0433\u0443\u0442 \u0436\u0435 \u043a\u0438\u0442\u0430\u0439\u0446\u044b, \u0434\u0430 \u0435\u0449\u0451 \u0438 \u0434\u043b\u044f \u0442\u0430\u043a\u043e\u0433\u043e \u0434\u0435\u0448\u0451\u0432\u043e\u0433\u043e \u0431\u0430\u0440\u0430\u0445\u043b\u0430, \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043c\u043e\u0449\u043d\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438\u2026 \u0438 \u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u043f\u0440\u0430\u0432! \u041f\u0435\u0440\u0432\u044b\u0435 192 \u0431\u0430\u0439\u0442\u0430 \u2014 \u044d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043c\u0443\u0441\u043e\u0440. \u041c\u043e\u0436\u043d\u043e \u0432\u0437\u044f\u0442\u044c firmware2 \u043e\u0442 \u0440\u0430\u0431\u043e\u0447\u0435\u0439 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 \u0438 \u0437\u0430\u0442\u0435\u0440\u0435\u0442\u044c \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0439 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u043d\u0443\u043b\u044f\u043c\u0438 \u2014 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c\u0441\u044f <sup><a name=\"cite_ref-firmware2\"><\/a><a href=\"#cite_note-firmware2\">[10]<\/a><\/sup>. \u0414\u0430\u043b\u0435\u0435 \u0438\u0434\u0451\u0442 \u043e\u0431\u044b\u0447\u043d\u044b\u0439 U-Boot \u043e\u0431\u0440\u0430\u0437, \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e mkimage.<\/li>\n<\/ol>\n<p>  \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0435\u0441\u043b\u0438 \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0441\u0432\u043e\u0451 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u0440\u0430\u0431\u043e\u0447\u0435\u0435 \u044f\u0434\u0440\u043e (zImage) \u0434\u043b\u044f \u043f\u043b\u0430\u043d\u0448\u0435\u0442\u0430, \u0441\u043e\u0437\u0434\u0430\u0442\u044c U-Boot \u043e\u0431\u0440\u0430\u0437 \u0441 \u0442\u0435\u043c\u0438 \u0436\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438 \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c 192-\u0431\u0430\u0439\u0442\u043d\u044b\u0439 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a, \u0442\u043e \u0443\u0434\u0430\u0441\u0442\u0441\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0441\u0432\u043e\u044e \u0432\u0435\u0440\u0441\u0438\u044e \u041b\u0438\u043d\u0443\u043a\u0441\u0430.<\/p>\n<p>  \u0422\u0430\u043a\u0436\u0435 \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u0438\u0433\u0440\u0430\u0442\u044c \u0441 \u00ab\u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u043c\u00bb firmware2. \u0418\u043c\u0435\u044e\u0442\u0441\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0434\u043b\u044f \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u043a\u0438 \u0438 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0430\u043a\u043e\u0432\u043a\u0438 \u0444\u0430\u0439\u043b\u0430 zImage <sup><a name=\"cite_ref-zimage-tools\"><\/a><a href=\"#cite_note-zimage-tools\">[9]<\/a><\/sup>. \u041c\u043e\u0436\u043d\u043e \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u0430\u0442\u044c \u0438 \u0438\u0437\u0443\u0447\u0438\u0442\u044c \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430, \u0432 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438, \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0442\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u0442 bootloader-discovery \u0438 \u043a\u0430\u043a. \u0421 \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b, \u0435\u0441\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u044b\u0435 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0438 \u0438 \u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u0432 \u043e\u0431\u043e\u043b\u043e\u0447\u043a\u0435 busybox.<\/p>\n<p>  <a name=\"kernel\"><\/a><\/p>\n<h5><font color=\"#2B7BAE\">\u0421\u0431\u043e\u0440\u043a\u0430 \u044f\u0434\u0440\u0430<\/font>&nbsp;<a href=\"#toc-kernel\">^<\/a><\/h5>\n<p>   \u0412 \u043f\u043e\u0438\u0441\u043a\u0430\u0445 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432 \u044f\u0434\u0440\u0430 \u043f\u043e\u0434 \u0434\u0430\u043d\u043d\u044b\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 \u044f \u043d\u0430\u0442\u043a\u043d\u0443\u043b\u0441\u044f \u043d\u0430 \u043e\u0431\u0441\u0443\u0436\u0434\u0435\u043d\u0438\u0435 <sup><a name=\"cite_ref-zt180-sources\"><\/a><a href=\"#cite_note-zt180-sources\">[13]<\/a><\/sup>, \u0433\u0434\u0435 \u043d\u0435\u043a\u0442\u043e atp_uestc \u0441\u043e\u043e\u0431\u0449\u0438\u043b \u043e\u0431 \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0445 \u043a\u043e\u0434\u043e\u0432 \u044f\u0434\u0440\u0430 \u0434\u043b\u044f \u043f\u043b\u0430\u043d\u0448\u0435\u0442\u0430 ZT-180.<\/p>\n<p>  \u0421\u0435\u0439\u0447\u0430\u0441 \u043c\u043d\u0435 \u0443\u0436\u0435 \u0441\u043b\u043e\u0436\u043d\u043e \u0432\u0441\u043f\u043e\u043c\u043d\u0438\u0442\u044c \u0445\u0440\u043e\u043d\u043e\u043b\u043e\u0433\u0438\u044e \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u0438 \u043a\u0430\u043a\u043e\u0435 \u0436\u0435 \u044f\u0434\u0440\u043e \u044f \u043f\u044b\u0442\u0430\u043b\u0441\u044f \u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0441\u043f\u0435\u0440\u0432\u0430: \u0442\u043e \u043b\u0438 \u00ab\u0432\u0430\u043d\u0438\u043b\u044c\u043d\u043e\u0435\u00bb \u043e\u0442\u0441\u044e\u0434\u0430 \u2014 <sup><a name=\"cite_ref-atpboy444-zt-180\"><\/a><a href=\"#cite_note-atpboy444-zt-180\">[14]<\/a><\/sup>, \u0442\u043e \u043b\u0438 \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u043e\u0442\u0441\u044e\u0434\u0430 \u2014 <sup><a name=\"cite_ref-dandel-linux\"><\/a><a href=\"#cite_note-dandel-linux\">[15]<\/a><\/sup>. \u0417\u0430\u043f\u043e\u043c\u043d\u0438\u043b\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u2014 \u043d\u0435 \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e, \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0437\u0430\u043c\u0438\u0440\u0430\u043b \u043d\u0430 \u00abDecompressing kernel&#8230;\u00bb<\/p>\n<p>  \u0421\u043f\u0443\u0441\u0442\u044f \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0432 \u043e\u0431\u0441\u0443\u0436\u0434\u0435\u043d\u0438\u0438 \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f yuray, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u043b \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 \u0432 \u0442\u0440\u0435\u0442\u044c\u044e \u0432\u0435\u0440\u0441\u0438\u044e \u044f\u0434\u0440\u0430 \u043b\u0438\u043d\u0443\u043a\u0441. \u0418\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u0443 \u0432\u0435\u0440\u0441\u0438\u044e \u044f\u0434\u0440\u0430 \u043c\u043d\u0435 \u0438 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043d\u0430 \u043a\u0438\u0442\u0430\u0439\u043f\u0430\u0434\u0435.<\/p>\n<p>  \u0421\u043a\u0430\u0447\u0430\u0442\u044c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0442\u0435\u043a\u0441\u0442\u044b \u044f\u0434\u0440\u0430 \u0432\u0435\u0440\u0441\u0438\u0438 3.4.\u0445 \u0441 <a href=\"http:\/\/kernel.org\">kernel.org<\/a>. \u041d\u0430 \u043c\u043e\u043c\u0435\u043d\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0441\u0442\u0430\u0442\u044c\u0438 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0441\u043e\u0431\u0438\u0440\u0430\u043b\u0430\u0441\u044c \u0432\u0435\u0440\u0441\u0438\u044f 3.4.108 \u0438 \u043d\u0438\u0436\u0435. \u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0438 \u043d\u0430\u043b\u043e\u0436\u0438\u0442\u044c \u0437\u0430\u043f\u043b\u0430\u0442\u043a\u0438 \u0434\u043b\u044f \u044f\u0434\u0440\u0430 \u043e\u0442 yuray \u043e\u0442\u0441\u044e\u0434\u0430 <a href=\"http:\/\/rtck.org\/zt180\/patches\/zt180_b0_3.4.patch.xz\">rtck.org\/zt180\/patches\/zt180_b0_3.4.patch.xz<\/a>:<\/p>\n<pre><code class=\"bash\">$ cd \/path\/to\/linux-3.4.x $ patch -p1 -i \/path\/to\/zt180_b0_3.4.patch <\/code><\/pre>\n<p>  \u041d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043a\u043e\u043d\u0444\u0438\u0433. \u041f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0444\u0438\u0433\u0430 \u043f\u043e\u0434 \u044d\u0442\u043e\u0442 \u043a\u0438\u0442\u0430\u0439\u043f\u0430\u0434 \u044f \u043d\u0435 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u043b, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u0432\u0437\u044f\u0442\u044c dot-config \u043e\u0442\u0441\u044e\u0434\u0430 <sup><a name=\"cite_ref-helper-scripts\"><\/a><a href=\"#cite_note-helper-scripts\">[19]<\/a><\/sup>:<\/p>\n<pre><code class=\"bash\">$ make V=1 ARCH=arm CROSS_COMPILE=\/path\/to\/toolchain\/arm-infotm-linux-gnueabi-  oldconfig <\/code><\/pre>\n<p>  \u0414\u043b\u044f \u044f\u0434\u0440\u0430 \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f initramfs. \u042f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u041e\u0421 Slackware GNU\/Linux, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0440\u0435\u0448\u0435\u043d\u043e \u0431\u044b\u043b\u043e \u0432\u0437\u044f\u0442\u044c initrd \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0449\u0438\u043a\u0430 \u0438\u0437 \u043d\u0435\u0451, \u0447\u0442\u043e\u0431\u044b \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043d\u0430 \u043f\u043b\u0430\u043d\u0448\u0435\u0442 \u0441\u043b\u0430\u043a\u0443. \u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c uinitrd-kirkwood.img <sup><a name=\"cite_ref-ftp-slackwarearm\"><\/a><a href=\"#cite_note-ftp-slackwarearm\">[16]<\/a><\/sup>, \u0442\u0430\u043c \u0436\u0435 \u0432 \u0444\u0430\u0439\u043b\u0435 kernels\/README.txt \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u044b \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0434\u043b\u044f \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u043a\u0438 \u043e\u0431\u0440\u0430\u0437\u0430. \u0418\u0437 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u043b\u0430\u043a\u0438 \u043e\u0431\u0440\u0430\u0437 \u043d\u0435 \u043f\u043e\u0434\u043e\u0439\u0434\u0451\u0442, \u0442.\u043a. \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u0438 \u043f\u043e\u0434 x86\/amd64, \u043d\u043e \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u044b \u043f\u043e\u0434 ARM.<\/p>\n<p>  \u0421\u043e\u0437\u0434\u0430\u0451\u043c \u043f\u0430\u043f\u043a\u0443, \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u044b\u0432\u0430\u0435\u043c \u0432 \u043d\u0435\u0451 \u043e\u0431\u0440\u0430\u0437:<\/p>\n<pre><code class=\"bash\">$ mkdir -p \/path\/to\/uinitrd.extracted $ pushd !$ $ dd if=\/path\/to\/uinitrd-kirkwood.img bs=64 skip=1 | gzip -dc | sudo cpio -div $ popd <\/code><\/pre>\n<p>  \u0423\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0435 \u043f\u0443\u0442\u044c \u043a \u043f\u0430\u043f\u043a\u0435 \u0441 \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<br \/>  #\u2026<br \/>  CONFIG_BLK_DEV_INITRD=y<br \/>  CONFIG_INITRAMFS_SOURCE=&quot;\/path\/to\/uinitrd.extracted&quot;<br \/>  CONFIG_INITRAMFS_ROOT_UID=0<br \/>  CONFIG_INITRAMFS_ROOT_GID=0<br \/>  #\u2026<\/p>\n<p>  \u041a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u043c \u044f\u0434\u0440\u043e \u0432 \u0434\u0432\u0430 \u043f\u0440\u043e\u0445\u043e\u0434\u0430: <\/p>\n<pre><code class=\"bash\"># clean initrd directory $ sudo rm -rf \/path\/to\/uinitrd.extracted\/lib\/{modules, firmware} # build kernel for the first time $ make KALLSYMS_EXTRA_PASS=1 ARCH=arm CROSS_COMPILE=\/path\/to\/toolchain\/arm-infotm-linux-gnueabi- -j2 zImage # build modules against the kernel $ make KALLSYMS_EXTRA_PASS=1 ARCH=arm CROSS_COMPILE=\/path\/to\/toolchain\/arm-infotm-linux-gnueabi- -j2 modules # install modules into initramfs dir $ sudo make ARCH=arm CROSS_COMPILE=\/path\/to\/toolchain\/arm-infotm-linux-gnueabi- -j2 modules_install INSTALL_MOD_PATH=\/path\/to\/uinitrd.extracted\/ # install firmware to initramfs folder $ sudo make ARCH=arm CROSS_COMPILE=\/path\/to\/toolchain\/arm-infotm-linux-gnueabi- -j2 firmware_install INSTALL_MOD_PATH=\/path\/to\/uinitrd.extracted\/ # remove unnecessary files $ sudo rm -rf \/path\/to\/uinitrd.extracted\/lib\/modules\/3.4.*\/{build,source} # build the kernel again, with initramfs dir contains modules $ make KALLSYMS_EXTRA_PASS=1 ARCH=arm CROSS_COMPILE=\/path\/to\/toolchain\/arm-infotm-linux-gnueabi- -j2 zImage <\/code><\/pre>\n<p>  \u041c\u043e\u0436\u0435\u0442 \u0432\u044b\u043b\u0435\u0437\u0442\u0438 \u043e\u0448\u0438\u0431\u043a\u0430 <sup><a name=\"cite_ref-build-issue-1\"><\/a><a href=\"#cite_note-build-issue-1\">[17]<\/a><\/sup><sup><a name=\"cite_ref-build-issue-2\"><\/a><a href=\"#cite_note-build-issue-2\">[18]<\/a><\/sup>. \u041c\u043d\u0435 \u043f\u043e\u043c\u043e\u0433\u043b\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0438 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u0432 \u0442\u0435\u043a\u0441\u0442\u0435 \u043e\u0448\u0438\u0431\u043a\u0438: \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 KALLSYMS_EXTRA_PASS=1.<\/p>\n<p>  \u041f\u043e\u0442\u043e\u043c \u0441\u043e\u0437\u0434\u0430\u0451\u043c firmware2: <\/p>\n<pre><code class=\"bash\"># make u-boot image $ \/path\/to\/mkimage -A arm -C none -O linux -T kernel -a 0x40008000 -e 0x40008000 -n linux-3.4 -d arch\/arm\/boot\/zImage arch\/arm\/boot\/uImage # make firmware2 $ cat \/path\/to\/firmware2.header arch\/arm\/boot\/uImage &gt; firmware2 <\/code><\/pre>\n<p>\u0438 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0451\u043c \u0441 \u043d\u0435\u0451 \u043f\u043b\u0430\u043d\u0448\u0435\u0442.<\/p>\n<p>  \u0414\u043b\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u0431\u043e\u0440\u043a\u0438 \u0431\u044b\u043b \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0439 <sup><a name=\"cite_ref-helper-scripts-2\"><\/a><a href=\"#cite_note-helper-scripts\">[19]<\/a><\/sup>. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0430\u0441\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u0430:<\/p>\n<pre><code class=\"bash\">$ ( time .\/my_build.sh ) |& tee `date +%M%H_%F`-build-log.txt <\/code><\/pre>\n<p>  \u0417\u0430\u0433\u0440\u0443\u0437\u0438\u043b \u2014 \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u042e\u0421\u0411, \u0442\u043e\u0447\u043d\u0435\u0435, \u043d\u0430 \u043f\u043e\u0440\u0442\u0430\u0445 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u043b\u043e \u043f\u0438\u0442\u0430\u043d\u0438\u0435. \u041f\u0440\u043e\u0441\u0438\u043b \u043f\u043e\u043c\u043e\u0449\u0438 \u0443 yuray, \u043d\u0430 \u0447\u0442\u043e \u043e\u043d \u043e\u0442\u0432\u0435\u0442\u0438\u043b, \u0447\u0442\u043e \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e \u0441\u0445\u0435\u043c\u0430 \u043c\u043e\u0435\u0433\u043e \u043a\u0438\u0442\u0430\u0439\u043f\u0430\u0434\u0430 \u0438\u043c\u0435\u0435\u0442 \u0434\u0440\u0443\u0433\u0443\u044e \u0440\u0430\u0437\u0432\u043e\u0434\u043a\u0443, \u043e\u0442\u043b\u0438\u0447\u043d\u0443\u044e \u043e\u0442 ZT-180.<\/p>\n<p>  \u041f\u043e\u0442\u043e\u043c \u043d\u0430\u0448\u0451\u043b \u044d\u0442\u0443 \u0432\u0435\u043b\u0438\u043a\u043e\u043b\u0435\u043f\u043d\u0443\u044e \u0441\u0442\u0430\u0442\u044c\u044e <sup><a name=\"cite_ref-disassembly\"><\/a><a href=\"#cite_note-disassembly\">[11]<\/a><\/sup> \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0434\u0438\u0437\u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0447\u0430\u0441\u0442\u0438 \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u044f\u0434\u0440\u0430. \u0420\u0435\u0448\u0438\u043b \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u0441\u0438\u0448\u043d\u044b\u0439 \u043a\u043e\u0434 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u00ab\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0439\u00bb \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438, \u0438\u043c\u0435\u044e\u0449\u0438\u0445 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u043a USB, \u0438 \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c \u0438\u0445 \u0441 \u0432\u0435\u0440\u0441\u0438\u044f\u043c\u0438 \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u043c \u043a\u043e\u0434\u0435. \u041a \u043c\u043e\u0435\u043c\u0443 \u0440\u0430\u0437\u043e\u0447\u0430\u0440\u043e\u0432\u0430\u043d\u0438\u044e, \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u043b\u0438 \u0441 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c\u044e \u0434\u043e \u0434\u0438\u0433\u0440\u0430\u0444\u043e\u0432. \u041e\u0434\u043d\u0430\u043a\u043e \u043d\u0430 \u0440\u0430\u0431\u043e\u0447\u0435\u043c \u044f\u0434\u0440\u0435 \u0438\u043c\u0435\u043b\u0438\u0441\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0435 \u0431\u044b\u043b\u043e \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0445 \u0442\u0435\u043a\u0441\u0442\u0430\u0445. \u0412\u0438\u0434\u0438\u043c\u043e \u0442\u0430\u043c \u043a\u0440\u043e\u0435\u0442\u0441\u044f \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043c\u0430\u0433\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432\u0441\u0435\u043b\u044f\u0435\u0442 \u0436\u0438\u0437\u043d\u044c \u0432 USB-\u043f\u043e\u0440\u0442\u044b, \u043d\u043e \u0435\u0451 \u044f \u0442\u0430\u043a \u0438 \u043e\u0441\u0442\u0430\u0432\u0438\u043b \u043f\u043e\u0434 \u0437\u0430\u0432\u0435\u0441\u043e\u0439 \u0442\u0430\u0439\u043d\u044b\u2026<\/p>\n<p>  \u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044f \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0430, \u044f \u043f\u043e\u0434\u043c\u0435\u0442\u0438\u043b \u043e\u0434\u0438\u043d \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442: \u0432\u043e \u043c\u043d\u043e\u0433\u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u0445 \u043f\u043e\u0441\u043b\u0435 \u0438\u0445 \u044d\u043f\u0438\u043b\u043e\u0433\u0430 \u0448\u043b\u0438 \u0441\u0442\u0440\u0430\u043d\u043d\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438:<\/p>\n<pre><code>\/* ... *\/ c039e32c:\te59f0030 \tldr\tr0, [pc, #48]\t; c039e364 &lt;_binary_0xc039e2e8_imapx200_decode_suspend_start+0x7c&gt; \/* ... *\/ c039e360:\te89da800 \tldm\tsp, {fp, sp, pc} c039e364:\tf0200000 \tundefined instruction 0xf0200000 c039e368:\tc24b1c9c \tsubgt\tr1, fp, #39936\t; 0x9c00 <\/code><\/pre>\n<p>  \u0412\u0438\u0434\u0438\u0442\u0435 0xF0200000? \u0421\u0442\u0440\u0430\u043d\u043d\u0430\u044f \u043d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u0430\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f\u2026 \u0434\u0430 \u0435\u0449\u0451 \u0438 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043c\u0435\u0441\u0442\u0430\u0445. \u042d\u0442\u043e \u043d\u0435\u043a\u0438\u0439 \u0431\u0430\u0437\u043e\u0432\u044b\u0439 \u0430\u0434\u0440\u0435\u0441, \u043f\u043e\u0434\u0443\u043c\u0430\u043b \u044f, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u0442\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043c\u043e\u0436\u043d\u043e \u0441 \u043a\u0430\u0436\u0434\u043e\u0439 \u0442\u0430\u043a\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0441\u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442\u044c 4 (\u0447\u0435\u0442\u044b\u0440\u0435!) \u0431\u0430\u0439\u0442\u0430: \u0440\u0430\u0437\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 \u043e\u0434\u043d\u043e\u043c \u043c\u0435\u0441\u0442\u0435, \u0430 \u0432\u0441\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0431\u0443\u0434\u0443\u0442 \u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0435\u0433\u043e \u043f\u043e \u043e\u0434\u043d\u043e\u043c\u0443 \u0430\u0434\u0440\u0435\u0441\u0443 \u2014 \u0437\u0430\u0432\u0435\u0441\u0442\u0438 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0443!<\/p>\n<p>  <a name=\"constness\"><\/a><\/p>\n<h4><font color=\"#2B7BAE\">\u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u043d\u043e\u0441\u0442\u044c<\/font>&nbsp;<a href=\"#toc-constness\">^<\/a><\/h4>\n<p>   \u0423 \u041c\u0435\u0439\u0435\u0440\u0441\u0430 <sup><a name=\"cite_ref-scott-meyers\"><\/a><a href=\"#cite_note-scott-meyers\">[20]<\/a><\/sup> \u043e\u0447\u0435\u043d\u044c \u0445\u043e\u0440\u043e\u0448\u043e \u0432\u0441\u0451 \u0440\u0430\u0441\u043f\u0438\u0441\u0430\u043d\u043e. \u041f\u0440\u0438\u0432\u0435\u0434\u0443 \u043b\u0438\u0448\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u044f\u0441\u043d\u0435\u043d\u0438\u044f.<\/p>\n<p>  \u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u044b \u044f\u0437\u044b\u043a\u043e\u0432 C \u0438 C++ \u043e\u0434\u043d\u043e\u043f\u0440\u043e\u0445\u043e\u0434\u043d\u044b\u0435, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442 \u043d\u0435 \u043c\u043e\u0433\u0443\u0442 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b. \u041a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043f\u043e\u043c\u043e\u0449\u044c \u0441\u043e \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u0449\u0438\u043a\u0430, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \/Gw <sup><a name=\"cite_ref-abbyy-circle-2\"><\/a><a href=\"#cite_note-abbyy-circle\">[1]<\/a><\/sup>.<\/p>\n<p>  \u042d\u0442\u0430 \u0436\u0435 \u043e\u0434\u043d\u043e\u043f\u0440\u043e\u0445\u043e\u0434\u043d\u0430\u044f \u0441\u043b\u0430\u0431\u043e\u0441\u0442\u044c \u043c\u043e\u0436\u0435\u0442 \u0441\u044b\u0433\u0440\u0430\u0442\u044c \u043d\u0430 \u0440\u0443\u043a\u0443: \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c extern const <sup><a name=\"cite_ref-abbyy-circle-3\"><\/a><a href=\"#cite_note-abbyy-circle\">[1]<\/a><\/sup>. \u0418\u0434\u0435\u044f \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u0432 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u0447\u043d\u043e\u043c \u0444\u0430\u0439\u043b\u0435 \u043e\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u0443\u044e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:  <\/p>\n<pre><code>#ifndef MY_CONST_H #define MY_CONST_H  extern const int my_constant;  #endif \/* MY_CONST_H *\/ <\/code><\/pre>\n<p>  \u0417\u0430\u0442\u0435\u043c \u0432 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0444\u0430\u0439\u043b\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0442\u0440\u043e\u0447\u043a\u0443:<\/p>\n<pre><code>const int my_constant = 42; <\/code><\/pre>\n<p>\u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0437\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0432 \u043b\u044e\u0431\u043e\u0439 \u0435\u0434\u0438\u043d\u0438\u0446\u0435 \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0438. \u0422\u0435\u043f\u0435\u0440\u044c \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u043d\u0435 \u0441\u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u0448\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0439 \u0432 \u043a\u043e\u0434, \u043d\u043e \u0432\u044b\u043d\u0443\u0436\u0434\u0435\u043d \u0431\u0443\u0434\u0435\u0442 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0430 \u043d\u0435\u0451 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0441\u0441\u044b\u043b\u043a\u0443. \u041a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u0449\u0438\u043a \u0436\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u043e\u0431\u044a\u0435\u043a\u0442\u043d\u044b\u0439 \u0444\u0430\u0439\u043b, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043d\u0430\u0439\u0434\u0451\u0442\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0439, \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u0438\u0442 \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0435 \u0430\u0434\u0440\u0435\u0441\u0430 \u0432 \u043a\u043e\u0434. \u041a\u043e\u043d\u0435\u0447\u043d\u043e \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b, \u043d\u043e \u0432 \u043e\u0431\u0449\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0432 \u043e\u0434\u0438\u043d\u043e\u0447\u043a\u0443 \u0431\u0435\u0441\u043f\u043e\u043c\u043e\u0449\u0435\u043d \u043f\u0435\u0440\u0435\u0434 \u0442\u0430\u043a\u0438\u043c \u0442\u0440\u044e\u043a\u043e\u043c \u0438 \u0432\u044b\u043d\u0443\u0436\u0434\u0435\u043d \u043f\u043e\u0441\u0442\u0443\u043f\u0430\u0442\u044c \u0442\u0430\u043a, \u043a\u0430\u043a \u043e\u043f\u0438\u0441\u0430\u043d\u043e \u0432\u044b\u0448\u0435. \u041e\u0434\u043d\u0430\u043a\u043e \u0435\u0441\u0442\u044c \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0439 \u043d\u044e\u0430\u043d\u0441 <sup><a name=\"cite_ref-global-order\"><\/a><a href=\"#cite_note-global-order\">[21]<\/a><\/sup>.<\/p>\n<p>  \u0414\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430 \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0432\u043d\u0435\u0441\u0442\u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043f\u0440\u0430\u0432\u043a\u0438 <sup><a name=\"cite_ref-helper-scripts-3\"><\/a><a href=\"#cite_note-helper-scripts\">[19]<\/a><\/sup>:<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"diff\">diff -ru .\/linux-3.4.108\/arch\/arm\/mach-imapx200\/Makefile ..\/linux-3.4.108\/arch\/arm\/mach-imapx200\/Makefile --- .\/linux-3.4.108\/arch\/arm\/mach-imapx200\/Makefile\t2015-09-09 12:17:52.483020878 +0300 +++ ..\/linux-3.4.108\/arch\/arm\/mach-imapx200\/Makefile\t2015-09-08 17:11:45.775035963 +0300 @@ -6,7 +6,7 @@    #IMAPX200 support files   -obj-$(CONFIG_CPU_IMAPX200)\t\t+= irq.o clock.o time.o devices.o pwm.o +obj-$(CONFIG_CPU_IMAPX200)\t\t+= irq.o clock.o time.o devices.o pwm.o constants.o       diff -ru .\/linux-3.4.108\/arch\/arm\/mach-imapx200\/include\/mach\/imapx_base_reg.h ..\/linux-3.4.108\/arch\/arm\/mach-imapx200\/include\/mach\/imapx_base_reg.h --- .\/linux-3.4.108\/arch\/arm\/mach-imapx200\/include\/mach\/imapx_base_reg.h\t2015-09-09 12:17:52.498020874 +0300 +++ ..\/linux-3.4.108\/arch\/arm\/mach-imapx200\/include\/mach\/imapx_base_reg.h\t2015-09-08 17:11:45.778035706 +0300 @@ -15,13 +15,23 @@  #define IMAPX200_SDRAM_PA     \t\t(0x40000000)    \/************************Virtual address for peripheral*************************\/ -#define IMAP_VA_SYSMGR       \t\t\tIMAP_ADDR(0x00200000) -#define IMAP_VA_IRQ            \t \t\tIMAP_ADDR(0x00000000) -#define IMAP_VA_TIMER        \t\t\tIMAP_ADDR(0x00300000) -#define IMAP_VA_WATCHDOG        \t\tIMAP_ADDR(0x00600000) -#define IMAP_VA_GPIO         \t\t\tIMAP_ADDR(0x00400000) -#define IMAP_VA_NAND\t\t\t\tIMAP_ADDR(0x00500000) -#define IMAP_VA_FB\t\t\t\tIMAP_ADDR(0x00700000) +#if defined(IMAP_USE_MACRO_CONSTANTS) || defined(__ASSEMBLY__)  +#   define IMAP_VA_SYSMGR       \t\t\tIMAP_ADDR(0x00200000) +#   define IMAP_VA_IRQ            \t \t\tIMAP_ADDR(0x00000000) +#   define IMAP_VA_TIMER        \t\t\tIMAP_ADDR(0x00300000) +#   define IMAP_VA_WATCHDOG        \t\tIMAP_ADDR(0x00600000) +#   define IMAP_VA_GPIO         \t\t\tIMAP_ADDR(0x00400000) +#   define IMAP_VA_NAND\t\t\t\tIMAP_ADDR(0x00500000) +#   define IMAP_VA_FB\t\t\t\tIMAP_ADDR(0x00700000) +#else +extern const void __iomem __force * const IMAP_VA_SYSMGR; +extern const void __iomem __force * const IMAP_VA_IRQ; +extern const void __iomem __force * const IMAP_VA_TIMER; +extern const void __iomem __force * const IMAP_VA_WATCHDOG; +extern const void __iomem __force * const IMAP_VA_GPIO; +extern const void __iomem __force * const IMAP_VA_NAND; +extern const void __iomem __force * const IMAP_VA_FB; +#endif \/* defined(IMAP_USE_MACRO_CONSTANTS) || defined(__ASSEMBLY__) *\/      #define PERIPHERAL_BASE_ADDR_PA\t\t\t(0x20C00000) diff -ru .\/linux-3.4.108\/arch\/arm\/plat-imap\/cpu.c ..\/linux-3.4.108\/arch\/arm\/plat-imap\/cpu.c --- .\/linux-3.4.108\/arch\/arm\/plat-imap\/cpu.c\t2015-09-09 12:17:52.607021038 +0300 +++ ..\/linux-3.4.108\/arch\/arm\/plat-imap\/cpu.c\t2015-09-08 17:18:30.646035384 +0300 @@ -1,3 +1,5 @@ +#define IMAP_USE_MACRO_CONSTANTS +  \/********************************************************************************   ** linux-2.6.28.5\/arch\/arm\/plat-imap\/cpu.c   ** diff -ru .\/linux-3.4.108\/arch\/arm\/plat-imap\/gpio.c ..\/linux-3.4.108\/arch\/arm\/plat-imap\/gpio.c --- .\/linux-3.4.108\/arch\/arm\/plat-imap\/gpio.c\t2015-09-09 12:17:52.614020935 +0300 +++ ..\/linux-3.4.108\/arch\/arm\/plat-imap\/gpio.c\t2015-09-08 17:18:38.566035206 +0300 @@ -1,3 +1,5 @@ +#define IMAP_USE_MACRO_CONSTANTS +  \/* arch\/arm\/plat-imapx200\/gpiolib.c   *   * Copyright 2008 Openmoko, Inc. diff -ru .\/linux-3.4.108\/arch\/arm\/plat-imap\/pm_imapx200.c ..\/linux-3.4.108\/arch\/arm\/plat-imap\/pm_imapx200.c --- .\/linux-3.4.108\/arch\/arm\/plat-imap\/pm_imapx200.c\t2015-09-09 12:17:52.631020886 +0300 +++ ..\/linux-3.4.108\/arch\/arm\/plat-imap\/pm_imapx200.c\t2015-09-08 17:18:52.102036874 +0300 @@ -1,3 +1,5 @@ +#define IMAP_USE_MACRO_CONSTANTS +  #include &lt;linux\/init.h&gt;  #include &lt;linux\/suspend.h&gt;  #include &lt;linux\/serial_core.h&gt; diff -ru .\/linux-3.4.108\/drivers\/video\/infotm\/imapfb.c ..\/linux-3.4.108\/drivers\/video\/infotm\/imapfb.c --- .\/linux-3.4.108\/drivers\/video\/infotm\/imapfb.c\t2015-09-09 12:17:53.350020920 +0300 +++ ..\/linux-3.4.108\/drivers\/video\/infotm\/imapfb.c\t2015-09-08 17:34:34.814042727 +0300 @@ -1,3 +1,5 @@ +#define IMAP_USE_MACRO_CONSTANTS +  \/*****************************************************************************   ** drivers\/video\/infotm\/imapfb.c  **  diff -ru --new-file .\/linux-3.4.108\/arch\/arm\/mach-imapx200\/constants.c ..\/linux-3.4.108\/arch\/arm\/mach-imapx200\/constants.c --- .\/linux-3.4.108\/arch\/arm\/mach-imapx200\/constants.c\t1970-01-01 03:00:00.000000000 +0300 +++ ..\/linux-3.4.108\/arch\/arm\/mach-imapx200\/constants.c\t2015-09-09 14:56:53.513487879 +0300 @@ -0,0 +1,11 @@ +#include &lt;linux\/compiler.h&gt; + +#include &lt;mach\/imapx_base_reg.h&gt; + +const void __iomem __force * const IMAP_VA_SYSMGR = IMAP_ADDR(0x00200000); +const void __iomem __force * const IMAP_VA_IRQ = IMAP_ADDR(0x00000000); +const void __iomem __force * const IMAP_VA_TIMER = IMAP_ADDR(0x00300000); +const void __iomem __force * const IMAP_VA_WATCHDOG = IMAP_ADDR(0x00600000); +const void __iomem __force * const IMAP_VA_GPIO = IMAP_ADDR(0x00400000); +const void __iomem __force * const IMAP_VA_NAND = IMAP_ADDR(0x00500000); +const void __iomem __force * const IMAP_VA_FB = IMAP_ADDR(0x00700000); <\/code><\/pre>\n<\/div>\n<\/div>\n<p>  <a name=\"measurement\"><\/a><\/p>\n<h4><font color=\"#2B7BAE\">\u0418\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f<\/font>&nbsp;<a href=\"#toc-measurement\">^<\/a><\/h4>\n<p>   \u0411\u044b\u043b\u043e \u0440\u0435\u0448\u0435\u043d\u043e \u0438\u0437\u043c\u0435\u0440\u044f\u0442\u044c \u0434\u0432\u0430 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f:<\/p>\n<ul>\n<li>\u0440\u0430\u0437\u043c\u0435\u0440 \u0444\u0430\u0439\u043b\u0430 \u044f\u0434\u0440\u0430 vmlinux;<\/li>\n<li>\u043f\u043e\u0434\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u041e\u0421.<\/li>\n<\/ul>\n<p>  \u0421\u0446\u0435\u043d\u0430\u0440\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0434\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u0440\u0430\u0437\u043c\u0435\u0440 \u0432\u0441\u0435\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0445 \u043f\u043e\u0434\u0441\u043b\u043e\u0432\u043e imap, \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0437\u0434\u0435\u0441\u044c <sup><a name=\"cite_ref-helper-scripts-4\"><\/a><a href=\"#cite_note-helper-scripts\">[19]<\/a><\/sup>.<\/p>\n<p>  \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435:<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"bash\"># diff -ru 1.log 2.log<\/code><\/pre>\n<pre><code class=\"diff\"> --- 1.log       2015-09-11 16:57:28.430158628 +0300    +++ 2.log       2015-09-11 16:57:20.627161803 +0300    @@ -1,4 +1,4 @@ -Data Size:    17844272 Bytes = 17426.05 kB = 17.02 MB +Data Size:    17843856 Bytes = 17425.64 kB = 17.02 MB  Load Address: 0x40008000  Entry Point:  0x40008000  --- 22012015-rom\/sizes.txt\t2015-01-28 15:25:51.107945315 +0300 +++ 28012015-rom\/sizes.txt\t2015-01-28 15:15:48.052949785 +0300 @@ -1,25 +1,25 @@ -imapx200_timer_mask - 44 -imapx200_timer_unmask - 52 -imapx200_timer_ack - 44 +imapx200_timer_mask - 52 +imapx200_timer_unmask - 60 +imapx200_timer_ack - 52  imapx200_irq_add - 24  imapx200_irq_init - 32  imapx200_irq_wake - 44 -imapx200_irq_unmask - 136 -imapx200_irq_mask - 132 -imapx200_irq_ack - 120 +imapx200_irq_unmask - 172 +imapx200_irq_mask - 160 +imapx200_irq_ack - 152  imap_clk_enable - 60  imap_clkcon_enable - 76 -imapx200_gettimeoffset - 64 -imapx200_timer_setup - 164 -imapx200_timer_interrupt - 64 +imapx200_gettimeoffset - 68 +imapx200_timer_setup - 168 +imapx200_timer_interrupt - 76  imap_pwm_suspend - 188  imap_pwm_resume - 184  imap_pwm_start - 164  imap_timer_setup - 404  imap_default_idle - 20 -imapx_poweroff - 56 -imapx_reset - 64 -imapx200_idle - 52 +imapx_poweroff - 88 +imapx_reset - 68 +imapx200_idle - 48  imap_set_board - 112  imapx200_gpio_setpull_updown - 56  imapx200_gpio_getpull_updown - 36 @@ -48,7 +48,7 @@  imapx200_pm_prepare - 24  imapx200_pm_finish - 20  imapx200_pm_do_save - 88 -imapx200_pm_enter - 436 +imapx200_pm_enter - 500  imapx200_pm_configure_extint - 20  imapx200_pm_prepare - 24  imapx200_pm_init - 80 @@ -86,8 +86,8 @@  imapfb_resume - 196  imapfb_suspend - 204  imapfb_backlight_power_supply - 20 -imapfb_set_clk - 44 -imapfb_set_gpio - 88 +imapfb_set_clk - 52 +imapfb_set_gpio - 96  imapfb_set_brightness - 36  imapfb_lcd_power_supply - 32  con_get_unimap - 360 @@ -153,7 +153,7 @@  imap_nand_irq - 92  ehci_imapx200_drv_remove - 80  ehci_imapx200_init - 1148 -ehci_imapx200_drv_probe - 552 +ehci_imapx200_drv_probe - 556  ohci_hcd_imapx200_drv_remove - 80  ohci_imapx200_start - 100  ohci_hcd_imapx200_drv_probe - 512 @@ -196,22 +196,22 @@  imapx200_i2c_probe - 824  imapx200_i2c_irq - 920  imapx200_decode_poll - 184 -imapx200_decode_suspend - 132 +imapx200_decode_suspend - 44  imapx200_decode_resume - 68 -imapx200_decode_release - 192 +imapx200_decode_release - 104  imapx200_decode_open - 124  imapx200_decode_remove - 208  imapx200_decode_ioctl - 384 -imapx200_decode_probe - 908 +imapx200_decode_probe - 816  imapx200_decode_irq_handle - 264  imapx200_encode_poll - 84 -imapx200_encode_suspend - 116 +imapx200_encode_suspend - 28  imapx200_encode_ioctl - 348  imapx200_encode_resume - 68 -imapx200_encode_release - 188 +imapx200_encode_release - 100  imapx200_encode_open - 120  imapx200_encode_remove - 232 -imapx200_encode_probe - 1080 +imapx200_encode_probe - 988  imapx200_encode_irq_handle - 136  sdhci_imap_set_clk_src - 52  sdhci_imap_resume - 36 @@ -220,7 +220,7 @@  sdhci_imap_get_timeout_clk - 40  imapfb_probe - 2952  imapfb_init - 28 -sdhci_imap_probe - 604 +sdhci_imap_probe - 608  sdhci_imap_remove - 20  name_imapx200 - 12  imapfb_a1rgb232_8 - 48 @@ -342,8 +342,8 @@  __kstrtab_imap_get_reservemem_paddr - 26  __kstrtab_con_copy_unimap - 16  __kstrtab_con_set_default_unimap - 23 -imapx200_init_clocks - 1120 -imapx200_timer_init - 120 +imapx200_init_clocks - 1104 +imapx200_timer_init - 124  imapx200_register_device - 56  imap_init_pwm - 308  imapx200_fixup - 36 @@ -542,7 +542,7 @@  imapx200_i2c_driver - 116  imapx200_i2c_driver - 116  imapx200_decode_driver - 80 -imapx200_decode_fops - 144 +imapx200_decode_fops - 148  imapx200_encode_driver - 80  imapx200_encode_fops - 180  sdhci_imap_driver - 80 <\/code><\/pre>\n<\/div>\n<\/div>\n<p>  \u0420\u0430\u0437\u043c\u0435\u0440 \u044f\u0434\u0440\u0430 \u0432 \u0446\u0435\u043b\u043e\u043c \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u043b\u0441\u044f \u043d\u0430 416, \u043d\u043e \u0432\u044b\u0438\u0433\u0440\u044b\u0448 \u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u043d\u0435 \u0442\u0430\u043a\u0438\u043c, \u043a\u0430\u043a\u0438\u043c \u044f \u0435\u0433\u043e \u043e\u0436\u0438\u0434\u0430\u043b: \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u0440\u0438\u0431\u0430\u0432\u0438\u043b\u0438 \u0432 \u0432\u0435\u0441\u0435.<\/p>\n<p>  \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0431\u043e\u043b\u0435\u0435 \u043e\u043f\u044b\u0442\u043d\u044b\u0439 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044c \u0437\u043d\u0430\u0435\u0442 \u043f\u0440\u0438\u0447\u0438\u043d\u0443, \u043d\u043e \u043c\u043d\u0435 \u043d\u0430 \u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442 \u0431\u044b\u043b\u043e \u043d\u0435 \u0432\u0441\u0451 \u0442\u0430\u043a \u044f\u0441\u043d\u043e. \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0442\u0435\u043a\u0441\u0442\u044b \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 imapx200_timer_ack, \u0440\u0430\u0437\u043c\u0435\u0440 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u043b\u0441\u044f \u043d\u0430 8 \u0431\u0430\u0439\u0442 \u043f\u043e\u0441\u043b\u0435 \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438:  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"diff\">--- 0xc0019c40-t-imapx200_timer_ack-2.listing\t2015-11-18 22:12:24.196113878 +0300 +++ 0xc0019c50-imapx200_timer_ack-2.listing\t2015-11-18 22:12:24.297113880 +0300 @@ -9,10 +9,12 @@  XXXXXXXX:\te92dd800 \tpush\t{fp, ip, lr, pc}  XXXXXXXX:\te24cb004 \tsub\tfp, ip, #4\t; 0x4  XXXXXXXX:\te1a00000 \tnop\t\t\t(mov r0,r0) +c0019c60:\te59f2018 \tldr\tr2, [pc, #24]\t; c0019c80 &lt;_binary_0xc0019c50_imapx200_timer_ack_start+0x30&gt;  XXXXXXXX:\te590Y000 \tldr\trY, [r0]  XXXXXXXX:\te3a0X001 \tmov\trX, #1\t; 0x1 -c0019c58:\te3a0120f \tmov\tr1, #-268435456\t; 0xf0000000 +c0019c6c:\te5921000 \tldr\tr1, [r2]  XXXXXXXX:\te1a0XX1Y \tlsl\trX, rX, rY  XXXXXXXX:\te581X010 \tstr\trX, [r1, #16]  XXXXXXXX:\te581X000 \tstr\trX, [r1]  XXXXXXXX:\te89da800 \tldm\tsp, {fp, sp, pc} +c0019c80:\tc04e858c \tsubgt\tr8, lr, ip, lsl #11 <\/code><\/pre>\n<\/div>\n<\/div>\n<p>  \u041f\u0435\u0440\u0432\u043e\u0435, \u0447\u0442\u043e \u0431\u0440\u043e\u0441\u0430\u0435\u0442\u0441\u044f \u0432 \u0433\u043b\u0430\u0437\u0430: \u0441\u0430\u043c \u0431\u0430\u0437\u043e\u0432\u044b\u0439 \u0430\u0434\u0440\u0435\u0441 \u043d\u0430\u0441\u0442\u043e\u043b\u044c\u043a\u043e \u0443\u0434\u0430\u0447\u043d\u044b\u0439, \u0447\u0442\u043e \u0437\u0430\u043f\u0438\u0441\u044c \u043e\u043d\u043e\u0433\u043e \u0432 \u0440\u0435\u0433\u0438\u0441\u0442\u0440 \u0443\u043c\u0435\u0449\u0430\u043b\u0430\u0441\u044c \u0432 \u0447\u0435\u0442\u044b\u0440\u0435 \u0431\u0430\u0439\u0442\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u044b mov:<\/p>\n<pre><code>c0019c58:\te3a0120f \tmov\tr1, #-268435456\t; 0xf0000000 <\/code><\/pre>\n<p>  \u0412\u0442\u043e\u0440\u043e\u0435: \u043f\u043e\u0441\u043b\u0435 \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0443 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0437\u0430 \u044d\u043f\u0438\u043b\u043e\u0433\u043e\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0430\u0434\u0440\u0435\u0441 \u043d\u0430\u0448\u0435\u0439 \u043d\u043e\u0432\u043e\u0439 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0439, \u0442.\u043a. \u0435\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043c\u0435\u043d\u0435\u0435 \u0443\u0434\u043e\u0431\u043d\u043e\u0435 \u2014 \u0447\u0435\u0442\u044b\u0440\u0435 \u0431\u0430\u0439\u0442\u0430 \u0440\u0430\u0437.<\/p>\n<p>  \u0418 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435: \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0438\u0437 \u043f\u0430\u043c\u044f\u0442\u0438 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0430\u0434\u0440\u0435\u0441 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0439 \u0432 \u0440\u0435\u0433\u0438\u0441\u0442\u0440:<\/p>\n<pre><code>c0019c60:\te59f2018 \tldr\tr2, [pc, #24]\t; c0019c80 <\/code><\/pre>\n<p> \u2014 \u0447\u0435\u0442\u044b\u0440\u0435 \u0431\u0430\u0439\u0442\u0430 \u0434\u0432\u0430.<\/p>\n<p>  <a name=\"conclusion\"><\/a><\/p>\n<h4><font color=\"#2B7BAE\">\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/font>&nbsp;<a href=\"#toc-conclusion\">^<\/a><\/h4>\n<p>   \u042f \u0434\u0443\u043c\u0430\u044e, \u0447\u0442\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u043c \u0432\u044b\u0432\u043e\u0434\u043e\u043c \u0431\u0443\u0434\u0435\u0442 \u0442\u043e, \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0437\u043d\u0430\u0442\u044c \u043e \u043f\u043e\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u044f\u0445 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u044b\u0445 \u043a\u0430\u043a \u0432 \u0432\u0438\u0434\u0435 \u043c\u0430\u043a\u0440\u043e\u0441\u043e\u0432, \u0442\u0430\u043a \u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e const \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445.<\/p>\n<p>  \u041b\u0438\u0447\u043d\u043e \u044f \u043c\u0435\u0447\u0442\u0430\u044e \u043e \u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 (\u043f\u0443\u0441\u0442\u044c \u0438 \u0432 \u0441\u0432\u044f\u0437\u043a\u0435 \u0441 \u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u0449\u0438\u043a\u043e\u043c) \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u043b \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043e \u0432\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u043d\u0438\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0439 \u0431\u0435\u0437 \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \u0441 extern const.<\/p>\n<p>  \u0421\u043f\u0430\u0441\u0438\u0431\u043e \u0437\u0430 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435!<\/p>\n<p>  <a name=\"sources\"><\/a><\/p>\n<h4><font color=\"#2B7BAE\">\u0421\u043f\u0438\u0441\u043e\u043a \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432<\/font>&nbsp;<a href=\"#toc-sources\">^<\/a><\/h4>\n<p>  <\/p>\n<ol>\n<li><a name=\"cite_note-abbyy-circle\"><\/a>^&nbsp;<a href=\"#cite_ref-abbyy-circle\">1<\/a>&nbsp;<a href=\"#cite_ref-abbyy-circle-2\">2<\/a>&nbsp;<a href=\"#cite_ref-abbyy-circle-3\">3<\/a>&nbsp;<a href=\"http:\/\/habrahabr.ru\/company\/abbyy\/blog\/252871\/\">\u0412\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435 \u0434\u043b\u0438\u043d\u0443 \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u0438<\/a><\/li>\n<li><a name=\"cite_note-unique-consts\"><\/a><a href=\"#cite_ref-unique-consts\">^ <\/a>&nbsp;<a href=\"http:\/\/habrahabr.ru\/post\/254077\/\">\u0418 \u0435\u0449\u0451 \u0440\u0430\u0437 \u043f\u0440\u043e \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b<\/a><\/li>\n<li><a name=\"cite_note-zt180\"><\/a><a href=\"#cite_ref-zt180\">^ <\/a>&nbsp;<a href=\"http:\/\/geektimes.ru\/post\/107796\/\">\u0418\u0441\u0442\u043e\u0440\u0438\u044f \u043f\u043e\u043a\u0443\u043f\u043a\u0438 \u0438 \u043e\u043f\u044b\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u043b\u0430\u043d\u0448\u0435\u0442\u043d\u043e\u0433\u043e \u041f\u041a Zenithink ZT-180<\/a><\/li>\n<li><a name=\"cite_note-zt180-10\"><\/a><a href=\"#cite_ref-zt180-10\">^ <\/a>&nbsp;<a href=\"http:\/\/geektimes.ru\/post\/105744\/\">\u041e\u0431\u0437\u043e\u0440 \u043f\u043b\u0430\u043d\u0448\u0435\u0442\u0430 Zenithink Zt-180 10&quot;<\/a><\/li>\n<li><a name=\"cite_note-wowpad\"><\/a><a href=\"#cite_ref-wowpad\">^ <\/a>&nbsp;\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u0443\u0436\u0435 \u043d\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430, \u0438\u0449\u0438\u0442\u0435 \u0432 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0430\u0440\u0445\u0438\u0432\u0430\u0445 \u043f\u0430\u0443\u0442\u0438\u043d\u044b \u043f\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0443 <a href=\"http:\/\/habrahabr.ru\/blogs\/iTablet\/110714\/\">habrahabr.ru\/blogs\/iTablet\/110714<\/a><\/li>\n<li><a name=\"cite_note-good-review\"><\/a><a href=\"#cite_ref-good-review\">^ <\/a>&nbsp;\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u0443\u0436\u0435 \u043d\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430, \u0438\u0449\u0438\u0442\u0435 \u0432 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0430\u0440\u0445\u0438\u0432\u0430\u0445 \u043f\u0430\u0443\u0442\u0438\u043d\u044b \u043f\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0443 <a href=\"http:\/\/www.good-review.ru\/pandawill\/2011\/02\/21\/obzor-kitayskogo-plansheta-zenithink-zt-180-10.html\">www.good-review.ru\/pandawill\/2011\/02\/21\/obzor-kitayskogo-plansheta-zenithink-zt-180-10.html<\/a><\/li>\n<li><a href=\"http:\/\/habrahabr.ru\/post\/132448\/\">\u041f\u0435\u0440\u0435\u0441\u0435\u043b\u0435\u043d\u0438\u0435 \u0434\u0443\u0448\u0438: linux \u043d\u0430 android \u043f\u043b\u0430\u043d\u0448\u0435\u0442\u0435<\/a><\/li>\n<li><a name=\"cite_note-geek-porn\"><\/a><a href=\"#cite_ref-geek-porn\">^ <\/a>&nbsp;<a href=\"http:\/\/www.androidtablets.net\/threads\/pix-of-inside-my-dead-flytouch-3.12053\/#post-80573\">\u0424\u043e\u0442\u043e \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u043e\u0441\u0442\u0435\u0439<\/a><\/li>\n<li><a name=\"cite_note-zimage-tools\"><\/a><a href=\"#cite_ref-zimage-tools\">^ <\/a>&nbsp;<a href=\"http:\/\/forum.xda-developers.com\/showthread.php?t=740631&amp;page=121\">Zimage unpack and pack tools<\/a><\/li>\n<li><a name=\"cite_note-firmware2\"><\/a><a href=\"#cite_ref-firmware2\">^ <\/a>&nbsp;<a href=\"http:\/\/www.apad.tv\/apadforum\/showthread.php?1324-Decompiling-firmware2-and-firmware_discovery&amp;p=12538&amp;viewfull=1#post12538\">Decompiling &#8216;firmware2&#8217; and &#8216;firmware_discovery&#8217;<\/a><\/li>\n<li><a name=\"cite_note-disassembly\"><\/a><a href=\"#cite_ref-disassembly\">^ <\/a>&nbsp;<a href=\"https:\/\/code.google.com\/p\/milestone-overclock\/wiki\/Disassembly\">Disassembly: Smashing the Android Kernel for Fun and Overclock<\/a><\/li>\n<li><a name=\"cite_note-review-firmwares\"><\/a><a href=\"#cite_ref-review-firmwares\">^ <\/a>&nbsp;<a href=\"http:\/\/forum.china-iphone.ru\/planshet-superpad-2-flytouch-3-s-pitaniem-5v-t10333-4080.html\">\u0422\u0435\u043c\u0430 \u043d\u0430 forum.china-iphone.ru, \u043f\u043e\u0441\u0432\u044f\u0449\u0451\u043d\u043d\u0430\u044f \u043f\u043b\u0430\u043d\u0448\u0435\u0442\u0443<\/a><\/li>\n<li><a name=\"cite_note-zt180-sources\"><\/a><a href=\"#cite_ref-zt180-sources\">^ <\/a>&nbsp;<a href=\"http:\/\/www.slatedroid.com\/topic\/20377-open-source-project\/\">Open source project<\/a><\/li>\n<li><a name=\"cite_note-atpboy444-zt-180\"><\/a><a href=\"#cite_ref-atpboy444-zt-180\">^ <\/a>&nbsp;<a href=\"https:\/\/github.com\/atpboy444\/ZT-180\">github.com\/atpboy444\/ZT-180<\/a><\/li>\n<li><a name=\"cite_note-dandel-linux\"><\/a><a href=\"#cite_ref-dandel-linux\">^ <\/a>&nbsp;<a href=\"https:\/\/github.com\/dandel\/linux-2.6.32.y\">github.com\/dandel\/linux-2.6.32.y<\/a><\/li>\n<li><a name=\"cite_note-ftp-slackwarearm\"><\/a><a href=\"#cite_ref-atpboy444-zt-180\">^ <\/a>&nbsp;<a href=\"ftp:\/\/ftp.arm.slackware.com\/slackwarearm\/slackwarearm-14.1\/isolinux\/\">SlackwareARM-14.1<\/a><\/li>\n<li><a name=\"cite_note-build-issue-1\"><\/a><a href=\"#cite_ref-build-issue-1\">^ <\/a>&nbsp;<a href=\"https:\/\/github.com\/djwillis\/meta-raspberrypi\/issues\/38\">https:\/\/github.com\/djwillis\/meta-raspberrypi\/issues\/38<\/a><\/li>\n<li><a name=\"cite_note-build-issue-2\"><\/a><a href=\"#cite_ref-build-issue-2\">^ <\/a>&nbsp;<a href=\"https:\/\/lkml.org\/lkml\/2012\/7\/6\/260\">https:\/\/lkml.org\/lkml\/2012\/7\/6\/260<\/a><\/li>\n<li><a name=\"cite_note-helper-scripts\"><\/a>^&nbsp;<a href=\"#cite_ref-helper-scripts\">1<\/a>&nbsp;<a href=\"#cite_ref-helper-scripts-2\">2<\/a>&nbsp;<a href=\"#cite_ref-helper-scripts-3\">3<\/a>&nbsp;<a href=\"#cite_ref-helper-scripts-4\">4<\/a>&nbsp;<a href=\"https:\/\/github.com\/gshep\/flytouch2-helper-scripts\">github.com\/gshep\/flytouch2-helper-scripts<\/a><\/li>\n<li><a name=\"cite_note-scott-meyers\"><\/a><a href=\"#cite_ref-scott-meyers\">^ <\/a>&nbsp;\u0421\u043a\u043e\u0442\u0442 \u041c\u044d\u0439\u0435\u0440\u0441. \u042d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 C++. 55 \u0432\u0435\u0440\u043d\u044b\u0445 \u0441\u043e\u0432\u0435\u0442\u043e\u0432 \u0443\u043b\u0443\u0447\u0448\u0438\u0442\u044c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0438 \u043a\u043e\u0434 \u0432\u0430\u0448\u0438\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c<\/li>\n<li><a name=\"cite_note-global-order\"><\/a><a href=\"#cite_ref-global-order\">^ <\/a>&nbsp;<a href=\"http:\/\/stackoverflow.com\/questions\/3746238\/c-global-initialization-order-ignores-dependencies\">Initialization order of globals<\/a><\/li>\n<\/ol>\n<div class=\"clear\"><\/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=\"http:\/\/habrahabr.ru\/post\/270885\/\"> http:\/\/habrahabr.ru\/post\/270885\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>       \u042f \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043b \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u0443\u044e \u0441\u0442\u0430\u0442\u044c\u044e \u0443\u0436\u0435 \u0434\u0430\u0432\u043d\u043e, \u043d\u043e \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u043c\u0435\u0441\u044f\u0446\u044b<br \/>  \u043d\u0438\u043a\u0430\u043a \u043d\u0435 \u043c\u043e\u0433 \u0432\u044b\u043a\u0440\u043e\u0438\u0442\u044c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u041f\u043e\u043a\u0430 \u044f \u0440\u0430\u0437\u043c\u044b\u0448\u043b\u044f\u043b \u043d\u0430\u0434 \u0441\u0442\u0430\u0442\u044c\u0451\u0439,<br \/>  \u0434\u0435\u043b\u0430\u043b \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u043b \u0441\u0432\u043e\u0438 \u0434\u043e\u0433\u0430\u0434\u043a\u0438, \u043d\u0430 \u0425\u0430\u0431\u0440\u0435 \u0443\u0436\u0435 \u043e\u0431\u0441\u0443\u0434\u0438\u043b\u0438<br \/>  \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u043d\u043e\u0441\u0442\u044c \u2014 <sup><a name=\"cite_ref-abbyy-circle\"><\/a><a href=\"#cite_note-abbyy-circle\">[1]<\/a><\/sup><sup><a name=\"cite_ref-unique-consts\"><\/a><a href=\"#cite_note-unique-consts\">[2]<\/a><\/sup>.<\/p>\n<p>  \u0420\u0430\u0434\u0438 \u0437\u0430\u0431\u0430\u0432\u044b \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043f\u0440\u043e\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u043e\u0434\u043e\u0431\u043d\u0443\u044e \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u044e \u043d\u0435 \u0441\u043e \u0441\u0444\u0435\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u043c<br \/>  \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u043c \u0432 \u0432\u0430\u043a\u0443\u0443\u043c\u0435, \u0430 \u0441 \u0441\u0430\u043c\u044b\u043c \u0447\u0442\u043e \u043d\u0438 \u043d\u0430 \u0435\u0441\u0442\u044c \u0436\u0438\u0432\u044b\u043c \u0438 \u0433\u0440\u0430\u043d\u0434\u0438\u043e\u0437\u043d\u044b\u043c<br \/>  \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u043c \u2014 \u0441 \u044f\u0434\u0440\u043e\u043c \u041b\u0438\u043d\u0443\u043a\u0441!  <\/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-268525","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/268525","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=268525"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/268525\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=268525"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=268525"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=268525"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}