{"id":410323,"date":"2024-06-29T21:19:06","date_gmt":"2024-06-29T21:19:06","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=410323"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=410323","title":{"rendered":"<span>\u0414\u0435\u0431\u0430\u0436\u0438\u043c U-boot \u043d\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0436\u0435\u043b\u0435\u0437\u0435<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 <a href=\"https:\/\/habr.com\/ru\/post\/574118\/\" rel=\"noopener noreferrer nofollow\">\u0441\u0442\u0430\u0442\u044c\u0438<\/a>, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043c\u044b \u0443\u0441\u043a\u043e\u0440\u0438\u043b\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u043f\u043e\u0434 embedded linux. \u0420\u0430\u0431\u043e\u0447\u0430\u044f \u0441\u0442\u0430\u043d\u0446\u0438\u044f + sftp \u0441\u0435\u0440\u0432\u0435\u0440 + nfs \u0441\u0435\u0440\u0432\u0435\u0440 \u0443\u0441\u043a\u043e\u0440\u0438\u043b\u0438 \u043d\u0430 \u043f\u043e\u0440\u044f\u0434\u043e\u043a (10\u0445) \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0443 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u043a\u043e\u0434\u0430 \u043d\u0430 \u0446\u0435\u043b\u0435\u0432\u043e\u0435 \u0436\u0435\u043b\u0435\u0437\u043e. \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0447\u0430\u0441\u0430\u043c\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u0434. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u043c \u043e\u0447\u0435\u043b\u043e\u0432\u0435\u0447\u0438\u0432\u0430\u0442\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0443. \u041d\u0430 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u043f\u0440\u0438\u043a\u0440\u0443\u0447\u0438\u0432\u0430\u0435\u043c \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u0443\u044e \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0443\u044e IDE \u0438 \u043f\u043e\u0448\u0430\u0433\u043e\u0432\u0443\u044e \u043e\u0442\u043b\u0430\u0434\u043a\u0443 \u043a\u043e\u0434\u0430 \u043d\u0430 \u0446\u0435\u043b\u0435\u0432\u043e\u043c \u0436\u0435\u043b\u0435\u0437\u0435 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e  \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430\u0442\u043e\u0440\u0430 J-Link. \u041d\u043e \u043f\u043e\u043a\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430 U-boot. \u0418 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0435 \u0440\u0430\u0431\u043e\u0447\u0435\u0439 \u0441\u0440\u0435\u0434\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Docker.<\/p>\n<p>\u041c\u0438\u043a\u0440\u043e\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0439 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 &#8212; <a href=\"https:\/\/www.nxp.com\/products\/processors-and-microcontrollers\/arm-processors\/i-mx-applications-processors\/i-mx-6-processors\/i-mx-6ull-single-core-processor-with-arm-cortex-a7-core:i.MX6ULL\" rel=\"noopener noreferrer nofollow\">imx6ull<\/a> (ArmV7), \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430\u0442\u043e\u0440 &#8212; <a href=\"https:\/\/www.segger.com\/products\/debug-probes\/j-link\/#:~:text=SEGGER%20J%2DLinks%20are%20the,J%2DLink%20an%20unbeatable%20choice.\" rel=\"noopener noreferrer nofollow\">j-link<\/a>. \u0412 \u0441\u043b\u0443\u0447\u0430\u0435, \u0435\u0441\u043b\u0438 \u0432\u0430\u0448 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 \u0435\u0441\u0442\u044c \u0432 \u0441\u043f\u0438\u0441\u043a\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0445 <a href=\"https:\/\/www.segger.com\/supported-devices\/jlink\" rel=\"noopener noreferrer nofollow\">\u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440<\/a>, &#8212; \u0442\u043e \u0443 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u0432\u0441\u0435 \u0448\u0430\u043d\u0441\u044b \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u044c \u0432\u0441\u0435 \u0448\u0430\u0433\u0438, \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0435 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e\u0439 \u043e\u0442\u043b\u0430\u0434\u043a\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u043d\u0430 \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u043c \u0436\u0435\u043b\u0435\u0437\u0435. \u041f\u043e \u043a\u0440\u0430\u0439\u043d\u0435\u0439 \u043c\u0435\u0440\u0435, \u0441 ARM-\u0430\u043c\u0438 \u0437\u0430\u0442\u0440\u0443\u0434\u043d\u0435\u043d\u0438\u0439 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u0443\u0442\u044c \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u043e. \u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0442\u043b\u0430\u0434\u043a\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430 (u-boot). \u041d\u0430\u0434\u0435\u044e\u0441\u044c, \u0447\u0442\u043e \u0438 \u0434\u043e \u044f\u0434\u0440\u0430 \u0434\u043e\u0431\u0435\u0440\u0435\u043c\u0441\u044f \u0432 \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0441\u0442\u0430\u0442\u0435\u0439.<\/p>\n<h2>\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u0436\u0435\u043b\u0435\u0437\u0430<\/h2>\n<ul>\n<li>\n<p>\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430\u0442\u043e\u0440 \u043f\u043e JTAG \u043a \u0446\u0435\u043b\u0435\u0432\u043e\u0439 \u0436\u0435\u043b\u0435\u0437\u043a\u0435.<\/p>\n<\/li>\n<li>\n<p>\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430\u0442\u043e\u0440 \u043f\u043e USB \u043a \u0445\u043e\u0441\u0442\u0443 (\u0440\u0430\u0431\u043e\u0447\u0435\u043c\u0443 \u041f\u041a).<\/p>\n<\/li>\n<li>\n<p>\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0436\u0435\u043b\u0435\u0437\u043a\u0443 \u043a \u0445\u043e\u0441\u0442\u0443 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e COM-\u043f\u043e\u0440\u0442\u0430.<\/p>\n<\/li>\n<li>\n<p>\u043f\u043e\u0434\u0430\u0435\u043c \u043f\u0438\u0442\u0430\u043d\u0438\u0435 \u043d\u0430 \u0436\u0435\u043b\u0435\u0437\u043a\u0443.<\/p>\n<\/li>\n<\/ul>\n<p>\u041c\u043e\u0436\u0435\u0442 \u0441\u043b\u0443\u0447\u0438\u0442\u044c\u0441\u044f \u0442\u0430\u043a\u043e\u0435, \u0447\u0442\u043e, \u0432 \u044f\u0434\u0440\u0435 \u0432\u044b\u0432\u043e\u0434\u044b JTAG-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u043f\u0435\u0440\u0435\u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u043d\u0430 \u0434\u0440\u0443\u0433\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438. \u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u043b\u0435 \u043f\u043e\u0434\u0430\u0447\u0438 \u043f\u0438\u0442\u0430\u043d\u0438\u044f \u043d\u0443\u0436\u043d\u043e \u043d\u0435 \u0434\u0430\u0442\u044c \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0443 \u043d\u0430\u0447\u0430\u0442\u044c \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u044f\u0434\u0440\u0430. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 \u043d\u0430\u0436\u0430\u0442\u044c \u043b\u044e\u0431\u0443\u044e \u043a\u043b\u0430\u0432\u0438\u0448\u0443 \u0434\u043e \u043e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u044f \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u043e\u0442\u0441\u0447\u0435\u0442\u0430 \u0438 \u043e\u0441\u0442\u0430\u0442\u044c\u0441\u044f \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430.<\/p>\n<h2>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u043e\u0432<\/h2>\n<p>\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c gdb-multiarch:<\/p>\n<pre><code>$ sudo apt-get install gdb-multiarch<\/code><\/pre>\n<p>\u0421\u043a\u0430\u0447\u0438\u0432\u0430\u0435\u043c <a href=\"https:\/\/www.segger.com\/downloads\/jlink\" rel=\"noopener noreferrer nofollow\">\u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430<\/a> j-link \u0438 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0438\u0445:<\/p>\n<pre><code>$ dpkg -i \/drivers\/JLink_Linux_V754b_x86_64.deb<\/code><\/pre>\n<h2>\u0421\u0431\u043e\u0440\u043a\u0430 toolchain<\/h2>\n<p>\u0412 \u0432\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u043d \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0443\u0436\u0435 \u043f\u0440\u0435\u0434\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\/\u043f\u0440\u0435\u0434\u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d. \u0412 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u043c:<\/p>\n<pre><code>$ mkdir \/opt\/eclipse\/ $ cd \/opt\/elcipse\/ $ git clone https:\/\/github.com\/wireless-road\/imx6ull-openwrt.git $ cd imx6ull-openwrt $ .\/compile.sh flexcan_wifi<\/code><\/pre>\n<h2>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 IDE \u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430<\/h2>\n<p>\u0421\u043a\u0430\u0447\u0438\u0432\u0430\u0435\u043c <a href=\"https:\/\/www.eclipse.org\/downloads\/packages\/release\/2021-09\/r\/eclipse-ide-embedded-cc-developers\" rel=\"noopener noreferrer nofollow\">Eclipse IDE for Embedded C\/C++ Developers<\/a> \u0438 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u044b\u0432\u0430\u0435\u043c \u0430\u0440\u0445\u0438\u0432 \u0432 \/opt\/eclipse.<\/p>\n<p>\u041d\u0430\u0436\u0438\u043c\u0430\u0435\u043c File &#8212;> New Project \u0438 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c Makefile Project with Existing Code:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/c5d\/3b5\/521\/c5d3b5521a8ae68800f054607edc3760.png\" width=\"696\" height=\"548\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c5d\/3b5\/521\/c5d3b5521a8ae68800f054607edc3760.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0417\u0430\u0434\u0430\u0435\u043c \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u0441 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0430\u043c\u0438 U-boot. \u0412 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u0438\u0445 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0432 <strong>build_dir\/target-arm_cortex-a7+neon-vfpv4_musl_eabi\/u-boot-wirelessroad_ecspi3\/u-boot-2017.07:<\/strong><\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/ae8\/8af\/50e\/ae88af50eebbcc92734efa308d11e96f.png\" width=\"696\" height=\"738\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ae8\/8af\/50e\/ae88af50eebbcc92734efa308d11e96f.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0414\u0430\u043b\u0435\u0435, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0437\u0430\u0434\u0430\u0442\u044c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b eclipse \u0441 \u0432\u0430\u0448\u0438\u043c toolchain. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043a\u043b\u0438\u043a\u0430\u0435\u0442\u0435 \u043f\u0440\u0430\u0432\u043e\u0439 \u043a\u043d\u043e\u043f\u043a\u043e\u0439 \u043c\u044b\u0448\u0438 \u043d\u0430 \u043f\u0440\u043e\u0435\u043a\u0442 \u0432 \u043e\u043a\u043d\u0435 Eclipse, \u043d\u0430\u0436\u0438\u043c\u0430\u0435\u0442\u0435 Properties, \u0430 \u0434\u0430\u043b\u0435\u0435 &#8212; <strong>C\/C++ Build &#8212;> Environment <\/strong>\u0438<strong> <\/strong>\u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445:<\/p>\n<pre><code>ARCH=arm CROSS_COMPILE=arm-openwrt-linux-muslgnueabi- STAGING_DIR=\/opt\/eclipse\/imx6ull\/imx6ull-openwrt\/staging_dir\/<\/code><\/pre>\n<p>\u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f STAGING_DIR \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u043d\u0430 \u0434\u043b\u044f OpenWrt, &#8212; \u0432\u0430\u043c \u043e\u043d\u0430, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0438 \u043d\u0435 \u043d\u0443\u0436\u043d\u0430.<br \/>\u0414\u0430\u043b\u0435\u0435 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0443\u0435\u043c \u0443\u0436\u0435 \u0438\u043c\u0435\u044e\u0449\u0443\u044e\u0441\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e PATH, \u0434\u043e\u0431\u0430\u0432\u0438\u0432 \u0432 \u0435\u0435 \u043d\u0430\u0447\u0430\u043b\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<pre><code>\/opt\/eclipse\/imx6ull-openwrt\/build_dir\/target-arm_cortex-a7+neon-vfpv4_musl_eabi\/linux-imx6ull_cortexa7\/linux-4.14.199\/scripts\/dtc\/:\/opt\/eclipse\/imx6ull-openwrt\/staging_dir\/target-arm_cortex-a7+neon-vfpv4_musl_eabi\/host\/bin:\/opt\/eclipse\/imx6ull-openwrt\/staging_dir\/hostpkg\/bin:\/opt\/eclipse\/imx6ull-openwrt\/staging_dir\/toolchain-arm_cortex-a7+neon-vfpv4_gcc-7.5.0_musl_eabi\/bin:\/opt\/eclipse\/imx6ull-openwrt\/staging_dir\/host\/bin:\/bin:<\/code><\/pre>\n<p>\u0417\u0434\u0435\u0441\u044c, \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432 \u0442\u0443\u043b\u0447\u0435\u0439\u043d\u0430, \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u0434\u0432\u043e\u0435\u0442\u043e\u0447\u0438\u0435\u043c. \u0412 \u0438\u0442\u043e\u0433\u0435, \u0434\u043e\u043b\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/fa0\/974\/7e8\/fa09747e8abf994d4beb52367fdc0cb1.png\" alt=\"\" title=\"\" width=\"1210\" height=\"712\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/fa0\/974\/7e8\/fa09747e8abf994d4beb52367fdc0cb1.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0448\u0430\u0433\u043e\u043c \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0434\u0435\u0444\u043e\u043b\u0442\u043d\u044b\u0439 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b29\/f55\/757\/b29f55757edf6eda8d1d69b7ef54bd18.png\" width=\"1356\" height=\"868\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b29\/f55\/757\/b29f55757edf6eda8d1d69b7ef54bd18.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0438 \u0437\u0430\u0434\u0430\u0435\u043c \u043f\u0443\u0442\u0438 \u043a \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u0447\u043d\u044b\u043c \u0444\u0430\u0439\u043b\u0430\u043c \u043d\u0430\u0448\u0435\u0433\u043e \u0442\u0443\u043b\u0447\u0435\u0439\u043d\u0430:<\/p>\n<pre><code>\/opt\/eclipse\/imx6ull-openwrt\/staging_dir\/toolchain-arm_cortex-a7+neon-vfpv4_gcc-7.5.0_musl_eabi\/arm-openwrt-linux-muslgnueabi\/include\/ \/opt\/eclipse\/imx6ull-openwrt\/staging_dir\/toolchain-arm_cortex-a7+neon-vfpv4_gcc-7.5.0_musl_eabi\/include\/ \/opt\/eclipse\/imx6ull-openwrt\/staging_dir\/toolchain-arm_cortex-a7+neon-vfpv4_gcc-7.5.0_musl_eabi\/lib\/gcc\/arm-openwrt-linux-muslgnueabi\/7.5.0\/include\/<\/code><\/pre>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f04\/fe4\/0c7\/f04fe40c7f33fd00e8b269a81a1b63c0.png\" width=\"1757\" height=\"869\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f04\/fe4\/0c7\/f04fe40c7f33fd00e8b269a81a1b63c0.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041d\u0435 \u0437\u0430\u0431\u044b\u0432\u0430\u0435\u043c \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u0443\u044e \u0441\u0431\u043e\u0440\u043a\u0443:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/bb6\/987\/aee\/bb6987aeed08887c588fe9cff48757c5.png\" width=\"1758\" height=\"867\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/bb6\/987\/aee\/bb6987aeed08887c588fe9cff48757c5.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0413\u043e\u0442\u043e\u0432\u043e. \u0422\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0441\u043e\u0431\u0440\u0430\u0442\u044c u-boot. \u041d\u0430\u0436\u043c\u0438\u0442\u0435 \u043f\u0440\u0430\u0432\u043e\u0439 \u043a\u043d\u043e\u043f\u043a\u043e\u0439 \u043c\u044b\u0448\u0438 \u043d\u0430 \u043f\u0440\u043e\u0435\u043a\u0442 \u0438 \u0437\u0430\u0442\u0435\u043c Clean Project \u0434\u043b\u044f \u043e\u0447\u0438\u0441\u0442\u043a\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430, Build Project \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/eca\/417\/f15\/eca417f15f1901a3e95e4e3e595d9672.png\" width=\"1226\" height=\"635\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/eca\/417\/f15\/eca417f15f1901a3e95e4e3e595d9672.png\"\/><figcaption><\/figcaption><\/figure>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/fa2\/793\/a13\/fa2793a13266c995763c396445800fb2.png\" width=\"1183\" height=\"937\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/fa2\/793\/a13\/fa2793a13266c995763c396445800fb2.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0414\u0430\u043b\u0435\u0435, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e, \u043b\u0438\u0431\u043e \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0432 \u043a\u043e\u043d\u0446\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 u-boot \u043e\u043f\u0446\u0438\u044e CONFIG_TOOLS_DEBUG, \u043b\u0438\u0431\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0443\u0442\u0438\u043b\u0438\u0442\u044b make menuconfig, \u043b\u0438\u0431\u043e \u0432 \u0440\u0443\u0447\u043d\u0443\u044e \u0437\u0430\u0434\u0430\u0432 \u0432 .config \u0444\u0430\u0439\u043b\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<pre><code>CONFIG_TOOLS_DEBUG=y<\/code><\/pre>\n<p>\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0432 ide \u0432\u044b \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u0442\u0435 \u044d\u0442\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043e\u043d \u0441\u043a\u0440\u044b\u0442. \u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0441\u043a\u0440\u044b\u0442\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b13\/463\/40f\/b1346340fefd483a7ee40eea8287baca.png\" width=\"608\" height=\"198\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b13\/463\/40f\/b1346340fefd483a7ee40eea8287baca.png\"\/><figcaption><\/figcaption><\/figure>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/794\/5f1\/d90\/7945f1d901db004e9eb6f45dc8484859.png\" width=\"1207\" height=\"603\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/794\/5f1\/d90\/7945f1d901db004e9eb6f45dc8484859.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u043f\u0435\u0440\u0435\u0441\u043e\u0431\u0435\u0440\u0438\u0442\u0435 \u043f\u0440\u043e\u0435\u043a\u0442, \u0447\u0442\u043e\u0431\u044b \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u044b\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u044b \u043f\u043e\u043f\u0430\u043b\u0438 \u0432 \u0438\u0442\u043e\u0433\u043e\u0432\u044b\u0439 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a.<\/p>\n<p>\u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0441\u043e\u0432\u0441\u0435\u043c \u0447\u0443\u0442\u044c-\u0447\u0443\u0442\u044c, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430\u0442\u043e\u0440\u0430. \u041d\u0430\u0436\u043c\u0438\u0442\u0435 Run &#8212;> Debug Configurations \u0438 \u0437\u0430\u0434\u0430\u0439\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b32\/595\/a44\/b32595a4407d64822e27e217c7a39472.png\" width=\"1161\" height=\"708\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b32\/595\/a44\/b32595a4407d64822e27e217c7a39472.png\"\/><figcaption><\/figcaption><\/figure>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/349\/78b\/52b\/34978b52baba1e738c89cc73b764fd52.png\" width=\"1158\" height=\"788\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/349\/78b\/52b\/34978b52baba1e738c89cc73b764fd52.png\"\/><figcaption><\/figcaption><\/figure>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/8a3\/d6f\/033\/8a3d6f0333c08bb1d1ad9a4afb88f7c6.png\" width=\"1155\" height=\"980\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/8a3\/d6f\/033\/8a3d6f0333c08bb1d1ad9a4afb88f7c6.png\"\/><figcaption><\/figcaption><\/figure>\n<h2>\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u0443\u0439 \u044d\u0442\u043e.<\/h2>\n<p>\u0414\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0438 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043a\u0430\u0436\u0434\u044b\u0439 \u043a\u043b\u0438\u0435\u043d\u0442, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u0439 \u043d\u0430\u0448\u0435 BSP, \u043a\u0430\u0436\u0434\u044b\u0439 \u043d\u043e\u0432\u044b\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043d\u0430 \u043a\u0430\u043a\u043e\u043c-\u043d\u0438\u0431\u0443\u0434\u044c \u044d\u0442\u0430\u043f\u0435 \u0434\u0430 \u0438 \u0441\u043f\u043e\u0442\u043a\u043d\u0435\u0442\u0441\u044f, \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u043e \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435. \u041f\u043e\u044d\u0442\u043e\u043c\u0443, \u043b\u043e\u0433\u0438\u0447\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u043d\u044b\u0432\u0430\u043d\u0438\u0435 \u0432\u0441\u0435\u0439 \u0441\u0440\u0435\u0434\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u0435 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0445 \u043a\u043e\u0434\u043e\u0432, \u0441\u0431\u043e\u0440\u043a\u0443 \u0442\u0443\u043b\u0447\u0435\u0439\u043d\u0430 \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 IDE. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c, \u0443\u043f\u0430\u043a\u043e\u0432\u043a\u0430 \u0432 docker \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u0434\u0430\u0435\u0442 \u043d\u0430\u0434\u0435\u0436\u043a\u0443, \u0447\u0442\u043e \u0432\u0441\u044f \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0431\u0443\u0434\u0435\u0442 \u0431\u043e\u043b\u0435\u0435-\u043c\u0435\u043d\u0435\u0435 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0430 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u043e\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0435 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043e\u0432. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0432\u0441\u044f \u0432\u044b\u0448\u0435-\u043e\u043f\u0438\u0441\u0430\u043d\u043d\u0430\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u0437\u0430\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0447\u0435\u0442\u044b\u0440\u044c\u043c\u044f \u043a\u043e\u043d\u0441\u043e\u043b\u044c\u043d\u044b\u043c\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u043c\u0438:<\/p>\n<pre><code>$ git clone https:\/\/github.com\/wireless-road\/openwrt-ide.git $ docker-compose run --name openwrt openwrt<\/code><\/pre>\n<p>\u0418 \u0443\u0436\u0435 \u0438\u0437 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430:<\/p>\n<pre><code>$ .\/setup_ide.sh $ \/opt\/eclipse\/eclipse\/eclipse<\/code><\/pre>\n<p>\u0418\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438 \u0441\u0440\u0435\u0434\u044b \u0438 \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0443\u044e \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e \u0441 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u043f\u043e\u044f\u0441\u043d\u0435\u043d\u0438\u044f\u043c\u0438 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 <a href=\"https:\/\/github.com\/wireless-road\/openwrt-ide.git\" rel=\"noopener noreferrer nofollow\">\u0442\u0443\u0442<\/a>. Eclipse, \u043a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u0438\u043c\u0435\u0435\u0442 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0438\u0437 \u043a\u043e\u043d\u0441\u043e\u043b\u0438, \u043d\u043e, \u043a \u0441\u0447\u0430\u0441\u0442\u044c\u044e, \u043e\u043d portable. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043e\u0434\u0438\u043d \u0440\u0430\u0437 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0432 \u043f\u0440\u043e\u0435\u043a\u0442 \u0432 eclipse, \u0438 \u0443\u043f\u0430\u043a\u043e\u0432\u0430\u0432 \u0435\u0433\u043e \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0432 \u0430\u0440\u0445\u0438\u0432, \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u0442\u044c \u043f\u0440\u0435\u0434-\u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u0443\u044e IDE \u0441 \u043c\u0430\u0448\u0438\u043d\u044b \u043d\u0430 \u043c\u0430\u0448\u0438\u043d\u0443. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 docker, \u0432 \u0434\u043e\u0431\u0430\u0432\u043e\u043a \u043a \u0438\u0437\u043e\u043b\u044f\u0446\u0438\u0438 \u0441\u0440\u0435\u0434\u044b \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0442\u0430\u043a\u0436\u0435 \u0440\u0435\u0448\u0438\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u043f\u0440\u0438 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u043a\u0435 \u0430\u0440\u0445\u0438\u0432\u0430 \u043f\u043e \u0434\u0440\u0443\u0433\u043e\u043c\u0443 \u043f\u0443\u0442\u0438. \u0412 \u0442\u0435\u043e\u0440\u0438\u0438 \u0434\u043e\u043b\u0436\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c, \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0430 \u043f\u043e\u043a\u0430\u0436\u0435\u0442 \u043a\u0430\u043a \u043e\u043d\u043e \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435. <\/p>\n<p>\u0418 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435, &#8212; \u0433\u0440\u044f\u0437\u043d\u044b\u0439 \u0445\u0430\u043a, \u0431\u0435\u0437 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e, \u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435, u-boot \u043d\u0435 \u0445\u043e\u0442\u0435\u043b \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043f\u043e\u0434 \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a\u043e\u043c. \u0412\u043d\u0430\u0447\u0430\u043b\u0435, \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 u-boot \u0432\u0432\u043e\u0434\u0438\u043c:<\/p>\n<pre><code>=> printenv fdtcontroladdr fdtcontroladdr=8ef216d8<\/code><\/pre>\n<p>\u0438 \u0434\u0430\u043d\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0445\u0430\u0440\u0434-\u043a\u043e\u0434\u0438\u043c \u0432 <strong>u-boot\/lib\/fdtdec.c <\/strong>\u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <strong>fdtdec_setup():<\/strong><\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/ece\/fb6\/a82\/ecefb6a82bb71139c33caabc2c0401a8.png\" width=\"886\" height=\"380\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ece\/fb6\/a82\/ecefb6a82bb71139c33caabc2c0401a8.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041a\u0430\u043a \u044d\u0442\u043e\u0442 \u043a\u043e\u0441\u0442\u044b\u043b\u044c \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u043c\u0438 \u043c\u0435\u0442\u043e\u0434\u0430\u043c\u0438 \u043c\u044b \u043f\u043e\u043a\u0430, \u043a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u043d\u0435 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043b\u0438\u0441\u044c. \u041d\u0430\u0434\u0435\u044e\u0441\u044c, \u043e\u0441\u0438\u043b\u0438\u043c \u0432 \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0435\u0435 \u0432\u0440\u0435\u043c\u044f, \u043d\u043e \u043f\u043e\u043a\u0430 \u0442\u0430\u043a. \u0412 \u0432\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u0435\u0441\u043b\u0438 eclipse \u043d\u0435 \u0441\u043c\u043e\u0436\u0435\u0442 \u0441\u0442\u0430\u0440\u0442\u0430\u043d\u0443\u0442\u044c \u043e\u0442\u043b\u0430\u0434\u043a\u0443 \u043a\u043e\u0434\u0430, \u043c\u043e\u0436\u0435\u0442 \u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u043c \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043e\u0442\u043b\u0430\u0434\u043a\u0443 \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0435 GDBServer:<\/p>\n<pre><code>$ JLinkGDBServer -device MCIMX6Y2 -if JTAG -speed 1000<\/code><\/pre>\n<p>\u0430 \u0441\u043b\u0435\u0434\u043e\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0435 \u043a\u043e\u043d\u0441\u043e\u043b\u044c\u043d\u044b\u0439 \u0434\u0435\u0431\u0430\u0433\u0433\u0435\u0440, \u0433\u0434\u0435 u-boot &#8212; \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0440\u0430\u043d\u0435\u0435 \u043e\u0431\u0440\u0430\u0437 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430:<\/p>\n<pre><code>$ gdb-multiarch u-boot --nx (gdb) target remote localhost:2331 (gdb) monitor reset (gdb) monitor halt (gdb) monitor sleep 200 (gdb) load<\/code><\/pre>\n<p>\u0430 \u0434\u0430\u043b\u0435\u0435 \u0448\u0430\u0433\u0430\u0435\u0442\u0435 \u0434\u043e \u0443\u0447\u0430\u0441\u0442\u043a\u0430 \u043a\u043e\u0434\u0430, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0432\u0441\u0435 \u0440\u0443\u0448\u0438\u0442\u0441\u044f:<\/p>\n<pre><code>(gdb) s reset () at arch\/arm\/cpu\/armv7\/start.S:40 40bsave_boot_params (gdb) s save_boot_params () at arch\/arm\/cpu\/armv7\/start.S:116 116bsave_boot_params_ret@ back to my caller (gdb) s save_boot_params_ret () at arch\/arm\/cpu\/armv7\/start.S:56 56mrsr0, cpsr (gdb) s 57andr1, r0, #0x1f@ mask mode bits (gdb) s 58teqr1, #0x1a@ test for HYP mode <\/code><\/pre>\n<p><a href=\"https:\/\/community.nxp.com\/t5\/i-MX-Processors\/Debugging-U-boot-on-IMX6ULL-using-JTAG\/td-p\/1337159\" rel=\"noopener noreferrer nofollow\">\u0422\u0443\u0442<\/a> \u043c\u043e\u0436\u043d\u043e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u0442\u0435\u043c, \u043a\u0430\u043a \u043c\u044b \u0438\u0441\u043a\u0430\u043b\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043d\u044b\u0439 \u043a\u043e\u0434.<\/p>\n<h2>\u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u043e\u0442\u043b\u0430\u0434\u043a\u0430<\/h2>\n<p>\u0417\u0430\u0434\u0430\u0435\u043c \u0442\u043e\u0447\u043a\u0443 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0444\u0443\u043d\u043a\u0446\u0438\u044e <strong>initcall_run_list<\/strong>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432 \u0446\u0438\u043a\u043b\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0435\u0440\u0444\u0435\u0440\u0438\u0438:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/09f\/22a\/9a4\/09f22a9a4f76d6704b68e5d3f57310bf.png\" width=\"1163\" height=\"982\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/09f\/22a\/9a4\/09f22a9a4f76d6704b68e5d3f57310bf.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0418 \u043d\u0430\u0436\u0438\u043c\u0430\u0435\u043c \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0443 Debug, \u0430 \u0441\u043b\u0435\u0434\u043e\u043c \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0443 Resume:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/ce0\/d9d\/f06\/ce0d9df061ad21d7c77fe79f7d156a43.png\" width=\"1220\" height=\"270\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ce0\/d9d\/f06\/ce0d9df061ad21d7c77fe79f7d156a43.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0412 \u0438\u0442\u043e\u0433\u0435, \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u043e\u043f\u0430\u0441\u0442\u044c \u0432 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u0443\u044e \u043d\u0430\u043c\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044e. \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u043d\u0430\u0436\u0430\u0442\u044c \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0443 <strong>Step Over<\/strong> \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437 &#8212; \u043a\u0443\u0440\u0441\u043e\u0440 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0434\u043e\u043b\u0436\u0435\u043d \u043d\u0430\u0447\u0430\u0442\u044c \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u0442\u044c\u0441\u044f \u043f\u043e \u043a\u043e\u0434\u0443:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/053\/221\/291\/05322129128bbf4bce3eb425d0609c40.png\" width=\"1036\" height=\"580\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/053\/221\/291\/05322129128bbf4bce3eb425d0609c40.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043d\u0430\u0447\u0430\u0442\u044c \u0437\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u043e \u0441 u-boot. \u0414\u043e\u0439\u0434\u044f \u0434\u043e \u0441\u0442\u0440\u043e\u0447\u043a\u0438 \u043f\u043e\u0434\u0441\u0432\u0435\u0447\u0435\u043d\u043d\u043e\u0439 \u0437\u0435\u043b\u0435\u043d\u044b\u043c \u0446\u0432\u0435\u0442\u043e\u043c \u043d\u0430 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u0435 \u043f\u043e\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u043d\u0430 \u043d\u0435\u0439 \u0442\u043e\u0447\u043a\u0443 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 (\u0434\u0432\u043e\u0439\u043d\u043e\u0439 \u0449\u0435\u043b\u0447\u043e\u043a \u043b\u0435\u0432\u043e\u0439 \u043a\u043d\u043e\u043f\u043a\u043e\u0439 \u043c\u044b\u0448\u0438 \u043f\u043e \u0441\u0438\u043d\u0435\u043c\u0443 \u043f\u043e\u043b\u044e \u0441\u043b\u0435\u0432\u0430 \u043d\u0430\u043f\u0440\u043e\u0442\u0438\u0432 \u043d\u0443\u0436\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438), \u0430 \u0434\u0430\u043b\u0435\u0435 \u043d\u0430\u0436\u0438\u043c\u0430\u0439\u0442\u0435 \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0443 Resume. \u041f\u043e\u0441\u043b\u0435 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043d\u0430\u0436\u0430\u0442\u0438\u044f \u043d\u0430 Resume, \u043d\u0430\u0432\u043e\u0434\u0438\u0442\u0435 \u043a\u0443\u0440\u0441\u043e\u0440 init_fnc_ptr, &#8212; \u0432 \u043f\u043e\u044f\u0432\u043b\u044f\u044e\u0449\u0435\u043c\u0441\u044f \u0432\u0441\u043f\u043b\u044b\u0432\u0430\u044e\u0449\u0435\u043c \u043e\u043a\u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u044f\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0437\u0432\u0430\u043d\u0430. \u0412 \u0438\u0442\u043e\u0433\u0435, \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043f\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043b\u0435\u043d\u0438\u0435 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a\u0438\u043c\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c\u0438 \u0441\u043e\u0431\u0442\u0441\u0432\u0435\u043d\u043d\u043e, \u0438 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u0438:<\/p>\n<pre><code>setup_mon_len fdtdec_setup initf_malloc initf_bootstage init_console_record arch_cpu_init march_cpu_init initf_dm arch_cpu_init_dm board_early_init_f get_clocks timer_init board_post_clk_init env_init init_baud_rate serial_init console_init_f display_optionsU-Boot 2017.07 (Sep 19 2021 - 11:24:07 +0300) display_text_info print_cpuinfoCPU:   Freescale i.MX6ULL rev1.1 528 MHz (running at 396 MHz) CPU:   Industrial temperature grade (-40C to 105C) at 70C Reset cause: unknown reset show_board_infoModel: WirelessRoad ecspi3 Board: MX6ULL WirelessRoad ECSPI3 module init_func_i2cI2C:   ready announce_dram_initDRAM: dram_init setup_dest_addr reserve_round_4k reserve_mmu reserve_video reserve_trace reserve_uboot reserve_malloc reserve_board setup_machine reserve_global_data reserve_fdt reserve_bootstage reserve_arch reserve_stacks dram_init_banksize show_dram_config256MiB display_new_sp reloc_fdt reloc_bootstage setup_relocSetup fec 0                                 NAND:  0 MiB                                 MMC:   FSL_SDHC: 0                                 board_spi_cs_gpio bus 2 cs 0                                 SF: Detected w25q256 with page size 256 Bytes, erase size 4 KiB, total 32 MiB                                 In:    serial                                 Out:   serial                                 Err:   serial                                 Net:   FEC [PRIME]                                 Hit any key to stop autoboot:  0  <\/code><\/pre>\n<p>\u0417\u0434\u0435\u0441\u044c, \u043b\u0435\u0432\u0430\u044f \u043a\u043e\u043b\u043e\u043d\u043a\u0430 &#8212; \u0432\u044b\u0437\u044b\u0432\u0430\u044e\u0449\u0438\u0435\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u043f\u0440\u0430\u0432\u0430\u044f &#8212; \u043b\u043e\u0433\u0438 \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u0438, \u0432\u044b\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439.<\/p>\n<h2>\u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435<\/h2>\n<p><a href=\"https:\/\/m2m-tele.com\/blog\/2021\/09\/07\/embedded-linux-development-and-remote-debugging-using-eclipse-ide\/\" rel=\"noopener noreferrer nofollow\">\u0422\u0443\u0442<\/a> \u0438 <a href=\"https:\/\/m2m-tele.com\/blog\/2021\/09\/07\/embedded-linux-development-and-remote-debugging-using-eclipse-ide-part-2\/\" rel=\"noopener noreferrer nofollow\">\u0442\u0443\u0442<\/a> \u043c\u043e\u0436\u043d\u043e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u0439 \u043e\u0442\u043b\u0430\u0434\u043a\u043e\u0439 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f.  \u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0436\u0435 \u0441\u0442\u0430\u0442\u044c\u0435 \u043d\u0430\u0434\u0435\u044e\u0441\u044c \u0434\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0434\u043e \u043f\u043e\u0448\u0430\u0433\u043e\u0432\u043e\u0439 \u043e\u0442\u043b\u0430\u0434\u043a\u0438 \u044f\u0434\u0440\u0430.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/578830\/\"> https:\/\/habr.com\/ru\/articles\/578830\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 <a href=\"https:\/\/habr.com\/ru\/post\/574118\/\" rel=\"noopener noreferrer nofollow\">\u0441\u0442\u0430\u0442\u044c\u0438<\/a>, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043c\u044b \u0443\u0441\u043a\u043e\u0440\u0438\u043b\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u043f\u043e\u0434 embedded linux. \u0420\u0430\u0431\u043e\u0447\u0430\u044f \u0441\u0442\u0430\u043d\u0446\u0438\u044f + sftp \u0441\u0435\u0440\u0432\u0435\u0440 + nfs \u0441\u0435\u0440\u0432\u0435\u0440 \u0443\u0441\u043a\u043e\u0440\u0438\u043b\u0438 \u043d\u0430 \u043f\u043e\u0440\u044f\u0434\u043e\u043a (10\u0445) \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0443 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u043a\u043e\u0434\u0430 \u043d\u0430 \u0446\u0435\u043b\u0435\u0432\u043e\u0435 \u0436\u0435\u043b\u0435\u0437\u043e. \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0447\u0430\u0441\u0430\u043c\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u0434. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u043c \u043e\u0447\u0435\u043b\u043e\u0432\u0435\u0447\u0438\u0432\u0430\u0442\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0443. \u041d\u0430 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u043f\u0440\u0438\u043a\u0440\u0443\u0447\u0438\u0432\u0430\u0435\u043c \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u0443\u044e \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0443\u044e IDE \u0438 \u043f\u043e\u0448\u0430\u0433\u043e\u0432\u0443\u044e \u043e\u0442\u043b\u0430\u0434\u043a\u0443 \u043a\u043e\u0434\u0430 \u043d\u0430 \u0446\u0435\u043b\u0435\u0432\u043e\u043c \u0436\u0435\u043b\u0435\u0437\u0435 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e  \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430\u0442\u043e\u0440\u0430 J-Link. \u041d\u043e \u043f\u043e\u043a\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430 U-boot. \u0418 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0435 \u0440\u0430\u0431\u043e\u0447\u0435\u0439 \u0441\u0440\u0435\u0434\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Docker.<\/p>\n<p>\u041c\u0438\u043a\u0440\u043e\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0439 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 &#8212; <a href=\"https:\/\/www.nxp.com\/products\/processors-and-microcontrollers\/arm-processors\/i-mx-applications-processors\/i-mx-6-processors\/i-mx-6ull-single-core-processor-with-arm-cortex-a7-core:i.MX6ULL\" rel=\"noopener noreferrer nofollow\">imx6ull<\/a> (ArmV7), \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430\u0442\u043e\u0440 &#8212; <a href=\"https:\/\/www.segger.com\/products\/debug-probes\/j-link\/#:~:text=SEGGER%20J%2DLinks%20are%20the,J%2DLink%20an%20unbeatable%20choice.\" rel=\"noopener noreferrer nofollow\">j-link<\/a>. \u0412 \u0441\u043b\u0443\u0447\u0430\u0435, \u0435\u0441\u043b\u0438 \u0432\u0430\u0448 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 \u0435\u0441\u0442\u044c \u0432 \u0441\u043f\u0438\u0441\u043a\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0445 <a href=\"https:\/\/www.segger.com\/supported-devices\/jlink\" rel=\"noopener noreferrer nofollow\">\u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440<\/a>, &#8212; \u0442\u043e \u0443 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u0432\u0441\u0435 \u0448\u0430\u043d\u0441\u044b \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u044c \u0432\u0441\u0435 \u0448\u0430\u0433\u0438, \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0435 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e\u0439 \u043e\u0442\u043b\u0430\u0434\u043a\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u043d\u0430 \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u043c \u0436\u0435\u043b\u0435\u0437\u0435. \u041f\u043e \u043a\u0440\u0430\u0439\u043d\u0435\u0439 \u043c\u0435\u0440\u0435, \u0441 ARM-\u0430\u043c\u0438 \u0437\u0430\u0442\u0440\u0443\u0434\u043d\u0435\u043d\u0438\u0439 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u0443\u0442\u044c \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u043e. \u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0442\u043b\u0430\u0434\u043a\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430 (u-boot). \u041d\u0430\u0434\u0435\u044e\u0441\u044c, \u0447\u0442\u043e \u0438 \u0434\u043e \u044f\u0434\u0440\u0430 \u0434\u043e\u0431\u0435\u0440\u0435\u043c\u0441\u044f \u0432 \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0441\u0442\u0430\u0442\u0435\u0439.<\/p>\n<h2>\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u0436\u0435\u043b\u0435\u0437\u0430<\/h2>\n<ul>\n<li>\n<p>\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430\u0442\u043e\u0440 \u043f\u043e JTAG \u043a \u0446\u0435\u043b\u0435\u0432\u043e\u0439 \u0436\u0435\u043b\u0435\u0437\u043a\u0435.<\/p>\n<\/li>\n<li>\n<p>\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430\u0442\u043e\u0440 \u043f\u043e USB \u043a \u0445\u043e\u0441\u0442\u0443 (\u0440\u0430\u0431\u043e\u0447\u0435\u043c\u0443 \u041f\u041a).<\/p>\n<\/li>\n<li>\n<p>\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0436\u0435\u043b\u0435\u0437\u043a\u0443 \u043a \u0445\u043e\u0441\u0442\u0443 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e COM-\u043f\u043e\u0440\u0442\u0430.<\/p>\n<\/li>\n<li>\n<p>\u043f\u043e\u0434\u0430\u0435\u043c \u043f\u0438\u0442\u0430\u043d\u0438\u0435 \u043d\u0430 \u0436\u0435\u043b\u0435\u0437\u043a\u0443.<\/p>\n<\/li>\n<\/ul>\n<p>\u041c\u043e\u0436\u0435\u0442 \u0441\u043b\u0443\u0447\u0438\u0442\u044c\u0441\u044f \u0442\u0430\u043a\u043e\u0435, \u0447\u0442\u043e, \u0432 \u044f\u0434\u0440\u0435 \u0432\u044b\u0432\u043e\u0434\u044b JTAG-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u043f\u0435\u0440\u0435\u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u043d\u0430 \u0434\u0440\u0443\u0433\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438. \u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u043b\u0435 \u043f\u043e\u0434\u0430\u0447\u0438 \u043f\u0438\u0442\u0430\u043d\u0438\u044f \u043d\u0443\u0436\u043d\u043e \u043d\u0435 \u0434\u0430\u0442\u044c \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0443 \u043d\u0430\u0447\u0430\u0442\u044c \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u044f\u0434\u0440\u0430. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 \u043d\u0430\u0436\u0430\u0442\u044c \u043b\u044e\u0431\u0443\u044e \u043a\u043b\u0430\u0432\u0438\u0448\u0443 \u0434\u043e \u043e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u044f \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u043e\u0442\u0441\u0447\u0435\u0442\u0430 \u0438 \u043e\u0441\u0442\u0430\u0442\u044c\u0441\u044f \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430.<\/p>\n<h2>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u043e\u0432<\/h2>\n<p>\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c gdb-multiarch:<\/p>\n<pre><code>$ sudo apt-get install gdb-multiarch<\/code><\/pre>\n<p>\u0421\u043a\u0430\u0447\u0438\u0432\u0430\u0435\u043c <a href=\"https:\/\/www.segger.com\/downloads\/jlink\" rel=\"noopener noreferrer nofollow\">\u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430<\/a> j-link \u0438 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0438\u0445:<\/p>\n<pre><code>$ dpkg -i \/drivers\/JLink_Linux_V754b_x86_64.deb<\/code><\/pre>\n<h2>\u0421\u0431\u043e\u0440\u043a\u0430 toolchain<\/h2>\n<p>\u0412 \u0432\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u043d \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0443\u0436\u0435 \u043f\u0440\u0435\u0434\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\/\u043f\u0440\u0435\u0434\u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d. \u0412 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u043c:<\/p>\n<pre><code>$ mkdir \/opt\/eclipse\/ $ cd \/opt\/elcipse\/ $ git clone https:\/\/github.com\/wireless-road\/imx6ull-openwrt.git $ cd imx6ull-openwrt $ .\/compile.sh flexcan_wifi<\/code><\/pre>\n<h2>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 IDE \u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430<\/h2>\n<p>\u0421\u043a\u0430\u0447\u0438\u0432\u0430\u0435\u043c <a href=\"https:\/\/www.eclipse.org\/downloads\/packages\/release\/2021-09\/r\/eclipse-ide-embedded-cc-developers\" rel=\"noopener noreferrer nofollow\">Eclipse IDE for Embedded C\/C++ Developers<\/a> \u0438 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u044b\u0432\u0430\u0435\u043c \u0430\u0440\u0445\u0438\u0432 \u0432 \/opt\/eclipse.<\/p>\n<p>\u041d\u0430\u0436\u0438\u043c\u0430\u0435\u043c File &#8212;> New Project \u0438 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c Makefile Project with Existing Code:<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u0417\u0430\u0434\u0430\u0435\u043c \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u0441 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0430\u043c\u0438 U-boot. \u0412 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u0438\u0445 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0432 <strong>build_dir\/target-arm_cortex-a7+neon-vfpv4_musl_eabi\/u-boot-wirelessroad_ecspi3\/u-boot-2017.07:<\/strong><\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u0414\u0430\u043b\u0435\u0435, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0437\u0430\u0434\u0430\u0442\u044c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b eclipse \u0441 \u0432\u0430\u0448\u0438\u043c toolchain. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043a\u043b\u0438\u043a\u0430\u0435\u0442\u0435 \u043f\u0440\u0430\u0432\u043e\u0439 \u043a\u043d\u043e\u043f\u043a\u043e\u0439 \u043c\u044b\u0448\u0438 \u043d\u0430 \u043f\u0440\u043e\u0435\u043a\u0442 \u0432 \u043e\u043a\u043d\u0435 Eclipse, \u043d\u0430\u0436\u0438\u043c\u0430\u0435\u0442\u0435 Properties, \u0430 \u0434\u0430\u043b\u0435\u0435 &#8212; <strong>C\/C++ Build &#8212;> Environment <\/strong>\u0438<strong> <\/strong>\u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445:<\/p>\n<pre><code>ARCH=arm CROSS_COMPILE=arm-openwrt-linux-muslgnueabi- STAGING_DIR=\/opt\/eclipse\/imx6ull\/imx6ull-openwrt\/staging_dir\/<\/code><\/pre>\n<p>\u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f STAGING_DIR \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u043d\u0430 \u0434\u043b\u044f OpenWrt, &#8212; \u0432\u0430\u043c \u043e\u043d\u0430, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0438 \u043d\u0435 \u043d\u0443\u0436\u043d\u0430.<br \/>\u0414\u0430\u043b\u0435\u0435 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0443\u0435\u043c \u0443\u0436\u0435 \u0438\u043c\u0435\u044e\u0449\u0443\u044e\u0441\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e PATH, \u0434\u043e\u0431\u0430\u0432\u0438\u0432 \u0432 \u0435\u0435 \u043d\u0430\u0447\u0430\u043b\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<pre><code>\/opt\/eclipse\/imx6ull-openwrt\/build_dir\/target-arm_cortex-a7+neon-vfpv4_musl_eabi\/linux-imx6ull_cortexa7\/linux-4.14.199\/scripts\/dtc\/:\/opt\/eclipse\/imx6ull-openwrt\/staging_dir\/target-arm_cortex-a7+neon-vfpv4_musl_eabi\/host\/bin:\/opt\/eclipse\/imx6ull-openwrt\/staging_dir\/hostpkg\/bin:\/opt\/eclipse\/imx6ull-openwrt\/staging_dir\/toolchain-arm_cortex-a7+neon-vfpv4_gcc-7.5.0_musl_eabi\/bin:\/opt\/eclipse\/imx6ull-openwrt\/staging_dir\/host\/bin:\/bin:<\/code><\/pre>\n<p>\u0417\u0434\u0435\u0441\u044c, \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432 \u0442\u0443\u043b\u0447\u0435\u0439\u043d\u0430, \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u0434\u0432\u043e\u0435\u0442\u043e\u0447\u0438\u0435\u043c. \u0412 \u0438\u0442\u043e\u0433\u0435, \u0434\u043e\u043b\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0448\u0430\u0433\u043e\u043c \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0434\u0435\u0444\u043e\u043b\u0442\u043d\u044b\u0439 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440:<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u0438 \u0437\u0430\u0434\u0430\u0435\u043c \u043f\u0443\u0442\u0438 \u043a \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u0447\u043d\u044b\u043c \u0444\u0430\u0439\u043b\u0430\u043c \u043d\u0430\u0448\u0435\u0433\u043e \u0442\u0443\u043b\u0447\u0435\u0439\u043d\u0430:<\/p>\n<pre><code>\/opt\/eclipse\/imx6ull-openwrt\/staging_dir\/toolchain-arm_cortex-a7+neon-vfpv4_gcc-7.5.0_musl_eabi\/arm-openwrt-linux-muslgnueabi\/include\/ \/opt\/eclipse\/imx6ull-openwrt\/staging_dir\/toolchain-arm_cortex-a7+neon-vfpv4_gcc-7.5.0_musl_eabi\/include\/ \/opt\/eclipse\/imx6ull-openwrt\/staging_dir\/toolchain-arm_cortex-a7+neon-vfpv4_gcc-7.5.0_musl_eabi\/lib\/gcc\/arm-openwrt-linux-muslgnueabi\/7.5.0\/include\/<\/code><\/pre>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u041d\u0435 \u0437\u0430\u0431\u044b\u0432\u0430\u0435\u043c \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u0443\u044e \u0441\u0431\u043e\u0440\u043a\u0443:<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u0413\u043e\u0442\u043e\u0432\u043e. \u0422\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0441\u043e\u0431\u0440\u0430\u0442\u044c u-boot. \u041d\u0430\u0436\u043c\u0438\u0442\u0435 \u043f\u0440\u0430\u0432\u043e\u0439 \u043a\u043d\u043e\u043f\u043a\u043e\u0439 \u043c\u044b\u0448\u0438 \u043d\u0430 \u043f\u0440\u043e\u0435\u043a\u0442 \u0438 \u0437\u0430\u0442\u0435\u043c Clean Project \u0434\u043b\u044f \u043e\u0447\u0438\u0441\u0442\u043a\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430, Build Project \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438:<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u0414\u0430\u043b\u0435\u0435, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e, \u043b\u0438\u0431\u043e \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0432 \u043a\u043e\u043d\u0446\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 u-boot \u043e\u043f\u0446\u0438\u044e CONFIG_TOOLS_DEBUG, \u043b\u0438\u0431\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0443\u0442\u0438\u043b\u0438\u0442\u044b make menuconfig, \u043b\u0438\u0431\u043e \u0432 \u0440\u0443\u0447\u043d\u0443\u044e \u0437\u0430\u0434\u0430\u0432 \u0432 .config \u0444\u0430\u0439\u043b\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<pre><code>CONFIG_TOOLS_DEBUG=y<\/code><\/pre>\n<p>\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0432 ide \u0432\u044b \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u0442\u0435 \u044d\u0442\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043e\u043d \u0441\u043a\u0440\u044b\u0442. \u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0441\u043a\u0440\u044b\u0442\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u043f\u0435\u0440\u0435\u0441\u043e\u0431\u0435\u0440\u0438\u0442\u0435 \u043f\u0440\u043e\u0435\u043a\u0442, \u0447\u0442\u043e\u0431\u044b \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u044b\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u044b \u043f\u043e\u043f\u0430\u043b\u0438 \u0432 \u0438\u0442\u043e\u0433\u043e\u0432\u044b\u0439 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a.<\/p>\n<p>\u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0441\u043e\u0432\u0441\u0435\u043c \u0447\u0443\u0442\u044c-\u0447\u0443\u0442\u044c, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430\u0442\u043e\u0440\u0430. \u041d\u0430\u0436\u043c\u0438\u0442\u0435 Run &#8212;> Debug Configurations \u0438 \u0437\u0430\u0434\u0430\u0439\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438:<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<h2>\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u0443\u0439 \u044d\u0442\u043e.<\/h2>\n<p>\u0414\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0438 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043a\u0430\u0436\u0434\u044b\u0439 \u043a\u043b\u0438\u0435\u043d\u0442, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u0439 \u043d\u0430\u0448\u0435 BSP, \u043a\u0430\u0436\u0434\u044b\u0439 \u043d\u043e\u0432\u044b\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043d\u0430 \u043a\u0430\u043a\u043e\u043c-\u043d\u0438\u0431\u0443\u0434\u044c \u044d\u0442\u0430\u043f\u0435 \u0434\u0430 \u0438 \u0441\u043f\u043e\u0442\u043a\u043d\u0435\u0442\u0441\u044f, \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u043e \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435. \u041f\u043e\u044d\u0442\u043e\u043c\u0443, \u043b\u043e\u0433\u0438\u0447\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u043d\u044b\u0432\u0430\u043d\u0438\u0435 \u0432\u0441\u0435\u0439 \u0441\u0440\u0435\u0434\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u0435 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0445 \u043a\u043e\u0434\u043e\u0432, \u0441\u0431\u043e\u0440\u043a\u0443 \u0442\u0443\u043b\u0447\u0435\u0439\u043d\u0430 \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 IDE. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c, \u0443\u043f\u0430\u043a\u043e\u0432\u043a\u0430 \u0432 docker \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u0434\u0430\u0435\u0442 \u043d\u0430\u0434\u0435\u0436\u043a\u0443, \u0447\u0442\u043e \u0432\u0441\u044f \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0431\u0443\u0434\u0435\u0442 \u0431\u043e\u043b\u0435\u0435-\u043c\u0435\u043d\u0435\u0435 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0430 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u043e\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0435 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043e\u0432. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0432\u0441\u044f \u0432\u044b\u0448\u0435-\u043e\u043f\u0438\u0441\u0430\u043d\u043d\u0430\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u0437\u0430\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0447\u0435\u0442\u044b\u0440\u044c\u043c\u044f \u043a\u043e\u043d\u0441\u043e\u043b\u044c\u043d\u044b\u043c\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u043c\u0438:<\/p>\n<pre><code>$ git clone https:\/\/github.com\/wireless-road\/openwrt-ide.git $ docker-compose run --name openwrt openwrt<\/code><\/pre>\n<p>\u0418 \u0443\u0436\u0435 \u0438\u0437 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430:<\/p>\n<pre><code>$ .\/setup_ide.sh $ \/opt\/eclipse\/eclipse\/eclipse<\/code><\/pre>\n<p>\u0418\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438 \u0441\u0440\u0435\u0434\u044b \u0438 \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0443\u044e \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e \u0441 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u043f\u043e\u044f\u0441\u043d\u0435\u043d\u0438\u044f\u043c\u0438 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 <a href=\"https:\/\/github.com\/wireless-road\/openwrt-ide.git\" rel=\"noopener noreferrer nofollow\">\u0442\u0443\u0442<\/a>. Eclipse, \u043a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u0438\u043c\u0435\u0435\u0442 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0438\u0437 \u043a\u043e\u043d\u0441\u043e\u043b\u0438, \u043d\u043e, \u043a \u0441\u0447\u0430\u0441\u0442\u044c\u044e, \u043e\u043d portable. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043e\u0434\u0438\u043d \u0440\u0430\u0437 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0432 \u043f\u0440\u043e\u0435\u043a\u0442 \u0432 eclipse, \u0438 \u0443\u043f\u0430\u043a\u043e\u0432\u0430\u0432 \u0435\u0433\u043e \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0432 \u0430\u0440\u0445\u0438\u0432, \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u0442\u044c \u043f\u0440\u0435\u0434-\u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u0443\u044e IDE \u0441 \u043c\u0430\u0448\u0438\u043d\u044b \u043d\u0430 \u043c\u0430\u0448\u0438\u043d\u0443. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 docker, \u0432 \u0434\u043e\u0431\u0430\u0432\u043e\u043a \u043a \u0438\u0437\u043e\u043b\u044f\u0446\u0438\u0438 \u0441\u0440\u0435\u0434\u044b \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0442\u0430\u043a\u0436\u0435 \u0440\u0435\u0448\u0438\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u043f\u0440\u0438 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u043a\u0435 \u0430\u0440\u0445\u0438\u0432\u0430 \u043f\u043e \u0434\u0440\u0443\u0433\u043e\u043c\u0443 \u043f\u0443\u0442\u0438. \u0412 \u0442\u0435\u043e\u0440\u0438\u0438 \u0434\u043e\u043b\u0436\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c, \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0430 \u043f\u043e\u043a\u0430\u0436\u0435\u0442 \u043a\u0430\u043a \u043e\u043d\u043e \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435. <\/p>\n<p>\u0418 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435, &#8212; \u0433\u0440\u044f\u0437\u043d\u044b\u0439 \u0445\u0430\u043a, \u0431\u0435\u0437 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e, \u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435, u-boot \u043d\u0435 \u0445\u043e\u0442\u0435\u043b \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043f\u043e\u0434 \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a\u043e\u043c. \u0412\u043d\u0430\u0447\u0430\u043b\u0435, \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 u-boot \u0432\u0432\u043e\u0434\u0438\u043c:<\/p>\n<pre><code>=> printenv fdtcontroladdr fdtcontroladdr=8ef216d8<\/code><\/pre>\n<p>\u0438 \u0434\u0430\u043d\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0445\u0430\u0440\u0434-\u043a\u043e\u0434\u0438\u043c \u0432 <strong>u-boot\/lib\/fdtdec.c <\/strong>\u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <strong>fdtdec_setup():<\/strong><\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u041a\u0430\u043a \u044d\u0442\u043e\u0442 \u043a\u043e\u0441\u0442\u044b\u043b\u044c \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u043c\u0438 \u043c\u0435\u0442\u043e\u0434\u0430\u043c\u0438 \u043c\u044b \u043f\u043e\u043a\u0430, \u043a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u043d\u0435 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043b\u0438\u0441\u044c. \u041d\u0430\u0434\u0435\u044e\u0441\u044c, \u043e\u0441\u0438\u043b\u0438\u043c \u0432 \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0435\u0435 \u0432\u0440\u0435\u043c\u044f, \u043d\u043e \u043f\u043e\u043a\u0430 \u0442\u0430\u043a. \u0412 \u0432\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u0435\u0441\u043b\u0438 eclipse \u043d\u0435 \u0441\u043c\u043e\u0436\u0435\u0442 \u0441\u0442\u0430\u0440\u0442\u0430\u043d\u0443\u0442\u044c \u043e\u0442\u043b\u0430\u0434\u043a\u0443 \u043a\u043e\u0434\u0430, \u043c\u043e\u0436\u0435\u0442 \u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u043c \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043e\u0442\u043b\u0430\u0434\u043a\u0443 \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0435 GDBServer:<\/p>\n<pre><code>$ JLinkGDBServer -device MCIMX6Y2 -if JTAG -speed 1000<\/code><\/pre>\n<p>\u0430 \u0441\u043b\u0435\u0434\u043e\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0435 \u043a\u043e\u043d\u0441\u043e\u043b\u044c\u043d\u044b\u0439 \u0434\u0435\u0431\u0430\u0433\u0433\u0435\u0440, \u0433\u0434\u0435 u-boot &#8212; \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0440\u0430\u043d\u0435\u0435 \u043e\u0431\u0440\u0430\u0437 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430:<\/p>\n<pre><code>$ gdb-multiarch u-boot --nx (gdb) target remote localhost:2331 (gdb) monitor reset (gdb) monitor halt (gdb) monitor sleep 200 (gdb) load<\/code><\/pre>\n<p>\u0430 \u0434\u0430\u043b\u0435\u0435 \u0448\u0430\u0433\u0430\u0435\u0442\u0435 \u0434\u043e \u0443\u0447\u0430\u0441\u0442\u043a\u0430 \u043a\u043e\u0434\u0430, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0432\u0441\u0435 \u0440\u0443\u0448\u0438\u0442\u0441\u044f:<\/p>\n<pre><code>(gdb) s reset () at arch\/arm\/cpu\/armv7\/start.S:40 40bsave_boot_params (gdb) s save_boot_params () at arch\/arm\/cpu\/armv7\/start.S:116 116bsave_boot_params_ret@ back to my caller (gdb) s save_boot_params_ret () at arch\/arm\/cpu\/armv7\/start.S:56 56mrsr0, cpsr (gdb) s 57andr1, r0, #0x1f@ mask mode bits (gdb) s 58teqr1, #0x1a@ test for HYP mode <\/code><\/pre>\n<p><a href=\"https:\/\/community.nxp.com\/t5\/i-MX-Processors\/Debugging-U-boot-on-IMX6ULL-using-JTAG\/td-p\/1337159\" rel=\"noopener noreferrer nofollow\">\u0422\u0443\u0442<\/a> \u043c\u043e\u0436\u043d\u043e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u0442\u0435\u043c, \u043a\u0430\u043a \u043c\u044b \u0438\u0441\u043a\u0430\u043b\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043d\u044b\u0439 \u043a\u043e\u0434.<\/p>\n<h2>\u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u043e\u0442\u043b\u0430\u0434\u043a\u0430<\/h2>\n<p>\u0417\u0430\u0434\u0430\u0435\u043c \u0442\u043e\u0447\u043a\u0443 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0444\u0443\u043d\u043a\u0446\u0438\u044e <strong>initcall_run_list<\/strong>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432 \u0446\u0438\u043a\u043b\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0435\u0440\u0444\u0435\u0440\u0438\u0438:<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u0418 \u043d\u0430\u0436\u0438\u043c\u0430\u0435\u043c \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0443 Debug, \u0430 \u0441\u043b\u0435\u0434\u043e\u043c \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0443 Resume:<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u0412 \u0438\u0442\u043e\u0433\u0435, \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u043e\u043f\u0430\u0441\u0442\u044c \u0432 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u0443\u044e \u043d\u0430\u043c\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044e. \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u043d\u0430\u0436\u0430\u0442\u044c \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0443 <strong>Step Over<\/strong> \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437 &#8212; \u043a\u0443\u0440\u0441\u043e\u0440 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0434\u043e\u043b\u0436\u0435\u043d \u043d\u0430\u0447\u0430\u0442\u044c \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u0442\u044c\u0441\u044f \u043f\u043e \u043a\u043e\u0434\u0443:<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043d\u0430\u0447\u0430\u0442\u044c \u0437\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u043e \u0441 u-boot. \u0414\u043e\u0439\u0434\u044f \u0434\u043e \u0441\u0442\u0440\u043e\u0447\u043a\u0438 \u043f\u043e\u0434\u0441\u0432\u0435\u0447\u0435\u043d\u043d\u043e\u0439 \u0437\u0435\u043b\u0435\u043d\u044b\u043c \u0446\u0432\u0435\u0442\u043e\u043c \u043d\u0430 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u0435 \u043f\u043e\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u043d\u0430 \u043d\u0435\u0439 \u0442\u043e\u0447\u043a\u0443 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 (\u0434\u0432\u043e\u0439\u043d\u043e\u0439 \u0449\u0435\u043b\u0447\u043e\u043a \u043b\u0435\u0432\u043e\u0439 \u043a\u043d\u043e\u043f\u043a\u043e\u0439 \u043c\u044b\u0448\u0438 \u043f\u043e \u0441\u0438\u043d\u0435\u043c\u0443 \u043f\u043e\u043b\u044e \u0441\u043b\u0435\u0432\u0430 \u043d\u0430\u043f\u0440\u043e\u0442\u0438\u0432 \u043d\u0443\u0436\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438), \u0430 \u0434\u0430\u043b\u0435\u0435 \u043d\u0430\u0436\u0438\u043c\u0430\u0439\u0442\u0435 \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0443 Resume. \u041f\u043e\u0441\u043b\u0435 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043d\u0430\u0436\u0430\u0442\u0438\u044f \u043d\u0430 Resume, \u043d\u0430\u0432\u043e\u0434\u0438\u0442\u0435 \u043a\u0443\u0440\u0441\u043e\u0440 init_fnc_ptr, &#8212; \u0432 \u043f\u043e\u044f\u0432\u043b\u044f\u044e\u0449\u0435\u043c\u0441\u044f \u0432\u0441\u043f\u043b\u044b\u0432\u0430\u044e\u0449\u0435\u043c \u043e\u043a\u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u044f\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0437\u0432\u0430\u043d\u0430. \u0412 \u0438\u0442\u043e\u0433\u0435, \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043f\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043b\u0435\u043d\u0438\u0435 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a\u0438\u043c\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c\u0438 \u0441\u043e\u0431\u0442\u0441\u0432\u0435\u043d\u043d\u043e, \u0438 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u0438:<\/p>\n<pre><code>setup_mon_len fdtdec_setup initf_malloc initf_bootstage init_console_record arch_cpu_init march_cpu_init initf_dm arch_cpu_init_dm board_early_init_f get_clocks timer_init board_post_clk_init env_init init_baud_rate serial_init console_init_f display_optionsU-Boot 2017.07 (Sep 19 2021 - 11:24:07 +0300) display_text_info print_cpuinfoCPU:   Freescale i.MX6ULL rev1.1 528 MHz (running at 396 MHz) CPU:   Industrial temperature grade (-40C to 105C) at 70C Reset cause: unknown reset show_board_infoModel: WirelessRoad ecspi3 Board: MX6ULL WirelessRoad ECSPI3 module init_func_i2cI2C:   ready announce_dram_initDRAM: dram_init setup_dest_addr reserve_round_4k reserve_mmu reserve_video reserve_trace reserve_uboot reserve_malloc reserve_board setup_machine reserve_global_data reserve_fdt reserve_bootstage reserve_arch reserve_stacks dram_init_banksize show_dram_config256MiB display_new_sp reloc_fdt reloc_bootstage setup_relocSetup fec 0                                 NAND:  0 MiB                                 MMC:   FSL_SDHC: 0                                 board_spi_cs_gpio bus 2 cs 0                                 SF: Detected w25q256 with page size 256 Bytes, erase size 4 KiB, total 32 MiB                                 In:    serial                                 Out:   serial                                 Err:   serial                                 Net:   FEC [PRIME]                                 Hit any key to stop autoboot:  0  <\/code><\/pre>\n<p>\u0417\u0434\u0435\u0441\u044c, \u043b\u0435\u0432\u0430\u044f \u043a\u043e\u043b\u043e\u043d\u043a\u0430 &#8212; \u0432\u044b\u0437\u044b\u0432\u0430\u044e\u0449\u0438\u0435\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u043f\u0440\u0430\u0432\u0430\u044f &#8212; \u043b\u043e\u0433\u0438 \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u0438, \u0432\u044b\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439.<\/p>\n<h2>\u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435<\/h2>\n<p><a href=\"https:\/\/m2m-tele.com\/blog\/2021\/09\/07\/embedded-linux-development-and-remote-debugging-using-eclipse-ide\/\" rel=\"noopener noreferrer nofollow\">\u0422\u0443\u0442<\/a> \u0438 <a href=\"https:\/\/m2m-tele.com\/blog\/2021\/09\/07\/embedded-linux-development-and-remote-debugging-using-eclipse-ide-part-2\/\" rel=\"noopener noreferrer nofollow\">\u0442\u0443\u0442<\/a> \u043c\u043e\u0436\u043d\u043e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u0439 \u043e\u0442\u043b\u0430\u0434\u043a\u043e\u0439 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f.  \u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0436\u0435 \u0441\u0442\u0430\u0442\u044c\u0435 \u043d\u0430\u0434\u0435\u044e\u0441\u044c \u0434\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0434\u043e \u043f\u043e\u0448\u0430\u0433\u043e\u0432\u043e\u0439 \u043e\u0442\u043b\u0430\u0434\u043a\u0438 \u044f\u0434\u0440\u0430.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/578830\/\"> https:\/\/habr.com\/ru\/articles\/578830\/<\/a><br \/><\/br><\/br><\/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-410323","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/410323","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=410323"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/410323\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=410323"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=410323"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=410323"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}