From 639687f92bf489a0e2dab4f4ed464e06420ad3ad Mon Sep 17 00:00:00 2001 From: Kirill Chalov Date: Tue, 23 Jul 2019 17:45:41 +0800 Subject: [PATCH] Replace gif images on EN and zh_CN index pages with identical png images for successful building of PDFs on ReadTheDocs. --- docs/_static/api-guides.gif | Bin 3285 -> 0 bytes docs/_static/api-guides.png | Bin 0 -> 7875 bytes docs/_static/api-reference.gif | Bin 3100 -> 0 bytes docs/_static/api-reference.png | Bin 0 -> 6986 bytes docs/_static/contribute.gif | Bin 3377 -> 0 bytes docs/_static/contribute.png | Bin 0 -> 6437 bytes docs/_static/esp32-pico-kit-v4.1-layout.jpg | Bin 90612 -> 0 bytes docs/_static/get-started-garbled-output.png | Bin 0 -> 17717 bytes docs/_static/get-started.gif | Bin 2865 -> 0 bytes docs/_static/get-started.png | Bin 0 -> 6625 bytes docs/_static/hw-reference.gif | Bin 3032 -> 0 bytes docs/_static/hw-reference.png | Bin 0 -> 6567 bytes docs/_static/resources.gif | Bin 2454 -> 0 bytes docs/_static/resources.png | Bin 0 -> 4482 bytes docs/en/get-started-legacy/index.rst | 8 +- docs/en/get-started/index.rst | 8 +- docs/en/index.rst | 12 +- docs/zh_CN/get-started-legacy/index.rst | 894 +++++++++--------- docs/zh_CN/get-started/index.rst | 986 ++++++++++---------- docs/zh_CN/index.rst | 12 +- 20 files changed, 960 insertions(+), 960 deletions(-) delete mode 100644 docs/_static/api-guides.gif create mode 100644 docs/_static/api-guides.png delete mode 100644 docs/_static/api-reference.gif create mode 100644 docs/_static/api-reference.png delete mode 100644 docs/_static/contribute.gif create mode 100644 docs/_static/contribute.png delete mode 100644 docs/_static/esp32-pico-kit-v4.1-layout.jpg create mode 100644 docs/_static/get-started-garbled-output.png delete mode 100644 docs/_static/get-started.gif create mode 100644 docs/_static/get-started.png delete mode 100644 docs/_static/hw-reference.gif create mode 100644 docs/_static/hw-reference.png delete mode 100644 docs/_static/resources.gif create mode 100644 docs/_static/resources.png diff --git a/docs/_static/api-guides.gif b/docs/_static/api-guides.gif deleted file mode 100644 index bc9dd36dba1f4c17e6cda59528cf28c8d66bc67e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3285 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 b*8hKA=->Bcx&Pl+(f@zlX!mwtV6X-N?Tp%x diff --git a/docs/_static/api-reference.png b/docs/_static/api-reference.png new file mode 100644 index 0000000000000000000000000000000000000000..91b09ad6e747923218a309ae366baa3eda09a727 GIT binary patch literal 6986 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 literal 0 HcmV?d00001 diff --git a/docs/_static/contribute.gif b/docs/_static/contribute.gif deleted file mode 100644 index 48a4508909cca9ed3b1c6118413e14397a8b3693..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3377 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 diff --git a/docs/_static/contribute.png b/docs/_static/contribute.png new file mode 100644 index 0000000000000000000000000000000000000000..1984736545fb6090fddeb65c71e57aac2e075d57 GIT binary patch literal 6437 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 diff --git a/docs/_static/get-started-garbled-output.png b/docs/_static/get-started-garbled-output.png new file mode 100644 index 0000000000000000000000000000000000000000..2e6dd68ca388d8dc958f03aa305a47e11dc94d7c GIT binary patch literal 17717 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 literal 0 HcmV?d00001 diff --git a/docs/_static/get-started.gif b/docs/_static/get-started.gif deleted file mode 100644 index 7a7a8023b694b3fe0baaeaaa00a8110de2181795..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2865 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%0A9=T0gD&(!-bE)-9j>U*X8?a|_vi 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 literal 0 HcmV?d00001 diff --git a/docs/_static/hw-reference.gif b/docs/_static/hw-reference.gif deleted file mode 100644 index 0b969c209988a8f8993dbc3e79e42588e12d6313..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3032 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 diff --git a/docs/_static/hw-reference.png b/docs/_static/hw-reference.png new file mode 100644 index 0000000000000000000000000000000000000000..ec31ab52b9796f9adcc0eb88086b4c3bfc5a5839 GIT binary patch literal 6567 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 literal 0 HcmV?d00001 diff --git a/docs/_static/resources.gif b/docs/_static/resources.gif deleted file mode 100644 index cde4bd80946ced3c907e931d3c66f7aa3c1b0845..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2454 zcmZ?wbhEHbJkD^O;X4Be{P^+X)TvXmX3eUqs!C2yE+{CdtE($4EG#N2s;{rl&(E)| zt?lgW%*n|~N=oYM>)W(x)2&;#K7amv=gyt>_V${Zn)LMaw6wJ1;^NZM(vp&r)YR0J zl$4n>Xa4*5@5z%V85tQ9Cr*6-{{59JR}vEwJ32bDva+5(fByLKKdgsoaSFc`OxpL*{)2H|E-+$o1frAGRZr!?d+qP}ju3bBO z_H0j2&+{86j-S8&{r~^}-~aEwzW@65>*w!3zkdGw@$=`epWlD}{PhD<>J#GQGv;0U z|M^LHRD5Vwe_VXZ=YRkH{d-#w7Zo2B_UHfqfB#-hOo@n#iP~`e|BM+k4o+)LO-rlX zaPR+@=W$7?v4vAo)3QE+v^*?JO-xOU`wPNmAo%)+ zG;_&%ZCP<~vBzYs*i&0pUS1xs*lVuW)>T(mM{Lfzdur?I>+2H^cgcEhTXS=B#^qJ9 zr?;)Wy}jV^skz?U*WKM+@%h!=)7#hI-`~K@E$6di!^6WJ!s>a3XAX1mNcbdF>}mRx za(b$I_Bo%Q8=st;ZP@*+#_~(*g%z6KeP>)aqg2)8oae2bx$W)k9l58^ovk*{Ke4Z# zeg4~ptPyGZCu^U#t*QL{bWix_ZwGQ#Ps%>G&^f*_*80QS2f5zm%VY0q6}`AVuX_2~ zxF1zd4_^(xYb&?u%PH-o$M?_6@BjDbAM1_#4Sy`%9@MG*37^^YPx8jSoa+?|p+#yf zk8g$D`O7AnH*aF9Q`N4-2O+f*F^`#}XuF#2Ov2uY z&u@0;Rerc>di}qS=q-Z+-r`vuUMo8oC*^B$CiZV}d>PgkY!;b1X^ZI1L(>zs9XK;R zx$flT$>MREaw#_iBOlGqUuD))Xlj|68Xa`bO{sl{sQKi%1&J%u%eH&6J@IaE+qta# z?9nMJW@)e6o<6Z7Z>2`dnVy*|XQZ|bYrZ^R$Ar1cf)B{5He8|Iy8* zu1yXM)Yve(-Vv3b3BeZOwWy2z(- zCUUzpKAPuj{!^Q+zh}Zp?|1ve{_~#sF!@)Sra{a1W!WpE8Qu46*#C3i(LA@uvb)|K zlYd$0t5qZMgkxg8#1*EAbr&K96kB4FH#@Y)ICrQimc~qEmwzn1-eZ2kgj1SqoRhfN zCY-RDt-&7HbWq#6y_qw`q1nX9%|-aQP{T&qGl7>R8ZK>-5Af!dyvo+w#Hbi4f2j1r zMpceCu8GcRpSEZSbAPDN=% zd;ZRPdOJ@_bociC2R)CuT#HSVlqr`MJ)QF2?|<3*gKvWlE|YOTclb!$!W_3}2fs*Z z1}>WYVgG-%KQE8w*U$cR-`>9b$KmS}zZt%~ojWghPnX6^$1|1utsJf!dKd!KCT}`x znsj+x=aYA~95McE^S|$Zd{L!YVu75?mgSDDyVT8Ja^7>hbA9J5l@p#qTR3>UGY;Lk zqTZ^Ws5rak5%cjIZY{hQ7uL>rz^o>*vBN`Uk>K=*BdS&(JH0}Zgl3;`5uN7JA$o_C zM|0EB^$CU=Gj7YdoHL%ymendb?YF16;-$SCCQJ->6kH(DoH4tnbZKY-&nYQsA?FP} z>h{i@d;+{mE)RZQG>`n!Ss_z2d;J!M{t1SQ{hKaNFi%^joj4~ZCh$pyYvY$f?cJXe z0;N_8co%KZTB!0g@Ky5hraQ;j4|gopNw?&Yzwv3>wiG3i&KHewzb;Kz6PT3z$!*)8 z5+NmB4(Weans+UJp{CgHbB-t9_^cG4LBH6>C;2MM|2-Ee1Wi)dvdqGp*{*$wdh^+k zQ^x#8=gP9wC-PrR%j=62@se`sdv``X@6^r-S-*Pcc|-Se)9DvRW7b4O4qqZO)!5M^?lckv+K&XpT7I9>ig~oyz48D zd*Ays>-(M;zU!;5pT75P*Y~|2dga&GJomo;>(=*uKhCbN`+oZVzhB??Gw^L_VE1{z KRIIANU=0Arvj8ms diff --git a/docs/_static/resources.png b/docs/_static/resources.png new file mode 100644 index 0000000000000000000000000000000000000000..8989b6298721f7c1213039efd338b8684028dedc GIT binary patch literal 4482 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 literal 0 HcmV?d00001 diff --git a/docs/en/get-started-legacy/index.rst b/docs/en/get-started-legacy/index.rst index bd3d000ce1..7e8f93ca0b 100644 --- a/docs/en/get-started-legacy/index.rst +++ b/docs/en/get-started-legacy/index.rst @@ -373,10 +373,10 @@ To exit IDF monitor use the shortcut ``Ctrl+]``. If IDF monitor fails shortly after the upload, or if instead of the messages above you see a random garbage similar to what is given below, your board is likely using a 26MHz crystal. Most development board designs use 40MHz, so ESP-IDF uses this frequency as a default value. -.. code-block:: none - - e���)(Xn@�y.!��(�PW+)��Hn9a؅/9�!�t5��P�~�k��e�ea�5�jA - ~zY��Y(1�,1�� e���)(Xn@�y.!Dr�zY(�jpi�|�+z5Ymvp +.. figure:: ../../_static/get-started-garbled-output.png + :align: center + :alt: Garbled output + :figclass: align-center If you have such a problem, do the following: diff --git a/docs/en/get-started/index.rst b/docs/en/get-started/index.rst index 51b87fa32c..713362bb72 100644 --- a/docs/en/get-started/index.rst +++ b/docs/en/get-started/index.rst @@ -447,10 +447,10 @@ To exit IDF monitor use the shortcut ``Ctrl+]``. If IDF monitor fails shortly after the upload, or, if instead of the messages above, you see random garbage similar to what is given below, your board is likely using a 26MHz crystal. Most development board designs use 40MHz, so ESP-IDF uses this frequency as a default value. -.. code-block:: none - - e���)(Xn@�y.!��(�PW+)��Hn9a؅/9�!�t5��P�~�k��e�ea�5�jA - ~zY��Y(1�,1�� e���)(Xn@�y.!Dr�zY(�jpi�|�+z5Ymvp +.. figure:: ../../_static/get-started-garbled-output.png + :align: center + :alt: Garbled output + :figclass: align-center If you have such a problem, do the following: diff --git a/docs/en/index.rst b/docs/en/index.rst index d8a10c1d45..2a2f3382a2 100644 --- a/docs/en/index.rst +++ b/docs/en/index.rst @@ -14,24 +14,24 @@ This is the documentation for Espressif IoT Development Framework (`esp-idf `_。 - - -.. figure:: ../../_static/what-you-need.png - :align: center - :alt: ESP32 应用程序开发 - :figclass: align-center - - ESP32 应用程序开发 - - -开发板简介 -========== - -请点击下方连接,了解有关具体开发板的详细信息。 - -.. toctree:: - :maxdepth: 1 - - ESP32-DevKitC <../hw-reference/get-started-devkitc> - ESP-WROVER-KIT <../hw-reference/get-started-wrover-kit> - ESP32-PICO-KIT <../hw-reference/get-started-pico-kit> - ESP32-Ethernet-Kit <../hw-reference/get-started-ethernet-kit> - - -.. _get-started-step-by-step-legacy: - -详细安装步骤 -============ - -请根据下方详细步骤,完成安装过程。 - -设置开发环境 -~~~~~~~~~~~~ - -* :ref:`get-started-setup-toolchain-legacy` -* :ref:`get-started-get-esp-idf-legacy` -* :ref:`get-started-setup-path-legacy` -* :ref:`get-started-get-packages-legacy` - -创建您的第一个工程 -~~~~~~~~~~~~~~~~~~ - -* :ref:`get-started-start-project-legacy` -* :ref:`get-started-connect-legacy` -* :ref:`get-started-configure-legacy` -* :ref:`get-started-build-and-flash-legacy` -* :ref:`get-started-monitor-legacy` - - -.. _get-started-setup-toolchain-legacy: - -第一步:设置工具链 -================== - -工具链指一套用于编译代码和应用程序的程序。 - -为了加快开发进度,您可以直接使用乐鑫提供的预制工具链。请根据您的操作系统,点击下方对应的链接,并按照链接中的指导进行安装。 - -.. toctree:: - :hidden: - - Windows - Linux - MacOS - -+-----------------------------+-------------------------+----------------------------------+ -| |windows-logo| | |linux-logo| | |macos-logo| | -+-----------------------------+-------------------------+----------------------------------+ -| `Windows `_ | `Linux `_ | `Mac OS `_ | -+-----------------------------+-------------------------+----------------------------------+ - -.. |windows-logo| image:: ../../_static/windows-logo.png - :target: ../get-started-legacy/windows-setup.html - -.. |linux-logo| image:: ../../_static/linux-logo.png - :target: ../get-started-legacy/linux-setup.html - -.. |macos-logo| image:: ../../_static/macos-logo.png - :target: ../get-started-legacy/macos-setup.html - -.. _Windows-legacy: ../get-started-legacy/windows-setup.html -.. _Linux-legacy: ../get-started-legacy/linux-setup.html -.. _Mac OS-legacy: ../get-started-legacy/macos-setup.html - -.. note:: - - 在本文档中,Linux 和 MacOS 操作系统中 ESP-IDF 的默认安装路径为 ``~/esp``;Windows 操作系统的默认路径为 ``%userprofile%\esp``。您也可以将 ESP-IDF 安装在任何其他路径下,但请注意在使用命令行时进行相应替换。注意,ESP-IDF 不支持带有空格的路径。 - -此外, 您也可以根据自身经验和实际需求,对环境进行个性化设置,而非使用预制工具链。此时,请前往 :ref:`工具链的个性化设置` 章节获取更多信息。 - - -.. _get-started-get-esp-idf-legacy: - -第二步:获取 ESP-IDF -===================== - -除了工具链,您还需要供 ESP32 使用的 API(软件库和源代码),具体请见 `ESP-IDF 仓库 `_。 - -获取本地副本:打开终端,切换到你要存放 ESP-IDF 的工作目录,使用 ``git clone`` 命令克隆远程仓库。 - -打开终端,后运行以下命令: - -.. include:: /_build/inc/git-clone-bash.inc - -ESP-IDF 将下载至 ``~/esp/esp-idf``。 - -请前往 :doc:`/versions`,查看 ESP-IDF 不同版本的具体适用场景。 - -.. include:: /_build/inc/git-clone-notes.inc - -.. note:: - - 在克隆远程仓库时,不要忘记加上 ``--recursive`` 选项。否则,请接着运行以下命令,获取所有子模块: :: - - cd esp-idf - git submodule update --init - - -.. _get-started-setup-path-legacy: - -第三步:设置环境变量 -===================== - -工具链通过环境变量 ``IDF_PATH`` 获得 ESP-IDF 的目录。因此,您需要在 PC 中设置该环境变量,否则无法编译工程。 - -您可以在每次重启会话时手动设置,也可以在用户配置中进行永久设置,具体请前往 :doc:`add-idf_path-to-profile` 章节,查看 :ref:`Windows ` 、:ref:`Linux 及 MacOS ` 操作系统的具体设置方式。 - - -.. _get-started-get-packages-legacy: - -第四步:安装 Python 软件包 -========================== - -ESP-IDF 所需 Python 软件包位于 ``IDF_PATH/requirements.txt`` 中。您可以运行以下命令进行安装: :: - - python -m pip install --user -r $IDF_PATH/requirements.txt - -.. note:: - - 请注意查询您所使用的 Python 解释器的版本(运行命令 ``python --version``),并根据查询结果将上方命令中的 ``python`` 替换为 ``python2``, ``python2.7``,例如: :: - - python2.7 -m pip install --user -r $IDF_PATH/requirements.txt - - -.. _get-started-start-project-legacy: - -第五步:开始创建工程 -===================== - -现在,您可以开始准备开发 ESP32 应用程序了。您可以从 ESP-IDF 中 :idf:`examples` 目录下的 :example:`get-started/hello_world` 工程开始。 - -将 :example:`get-started/hello_world` 复制至您本地的 ``~/esp`` 目录下: - -Linux 和 MacOS 操作系统 -~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. code-block:: bash - - cd ~/esp - cp -r $IDF_PATH/examples/get-started/hello_world . - -Windows 操作系统 -~~~~~~~~~~~~~~~~~~ - -.. code-block:: batch - - cd %userprofile%\esp - xcopy /e /i %IDF_PATH%\examples\get-started\hello_world hello_world - -ESP-IDF 的 :idf:`examples` 目录下有一系列示例工程,都可以按照上面的方法进行创建。您可以按照上述方法复制并运行其中的任何示例,也可以直接编译示例,无需进行复制。 - -.. important:: - - ESP-IDF 编译系统不支持带有空格的路径。 - -.. _get-started-connect-legacy: - -第六步:连接设备 -================== - -现在,请将您的 ESP32 开发板连接到 PC,并查看开发板使用的串口。 - -通常,串口在不同操作系统下显示的名称有所不同: - -- **Windows 操作系统:** ``COM1`` 等 -- **Linux 操作系统:** 以 ``/dev/tty`` 开始 -- **MacOS 操作系统:** 以 ``/dev/cu.`` 开始 - -有关如何查看串口名称的详细信息,请见 :doc:`establish-serial-connection`。 - -.. note:: - - 请记住串口名,您会在下面的步骤中用到。 - - -.. _get-started-configure-legacy: - -第七步:配置 -============= - -请进入 :ref:`get-started-start-project-legacy` 中提到的 ``hello_world`` 目录,并运行工程配置工具 ``menuconfig``。 - -Linux 和 MacOS 操作系统 -~~~~~~~~~~~~~~~~~~~~~~~~ - -.. code-block:: bash - - cd ~/esp/hello_world - make menuconfig - -Windows 操作系统 -~~~~~~~~~~~~~~~~~~~ - -.. code-block:: batch - - cd %userprofile%\esp\hello_world - make menuconfig - -如果之前的步骤都正确,则会显示下面的菜单: - -.. figure:: ../../_static/project-configuration.png - :align: center - :alt: 工程配置 — 主窗口 - :figclass: align-center - - 工程配置 — 主窗口 - -进入菜单后,选择 ``Serial flasher config`` > ``Default serial port`` 配置串口(设备将通过该串口加载工程)。按回车键确认选择,点击 ``< Save >`` 保存配置,然后点击 ``< Exit >`` 退出 ``menuconfig``。 - -``menuconfig`` 工具的常见操作见下。 - -* ``上下箭头``:移动 -* ``回车``:进入子菜单 -* ``ESC 键``:返回上级菜单或退出 -* ``英文问号``:调出帮助菜单(退出帮助菜单,请按回车键)。 -* ``空格``、``Y 键``或``N 键``:使能/禁用 ``[*]`` 配置选项 -* ``英文问号`` :调出有关高亮选项的帮助菜单 -* ``/ 键``:寻找配置项目 - -.. note:: - - 如果您是 **Arch Linux** 用户,请前往 ``SDK tool configuration``,并将 ``Python 2 interpreter`` 的名称从 ``python`` 替换为 ``python2``。 - -.. attention:: - - 如果您使用的是 ESP32-DevKitC(板载 ESP32-SOLO-1 模组),请在烧写示例程序前,前往 ``menuconfig`` 中使能单核模式(:ref:`CONFIG_FREERTOS_UNICORE`)。 - -.. _get-started-build-and-flash-legacy: - -第八步:编译和烧录 -==================== - -请使用以下命令,编译烧录工程: :: - - make flash - -运行以上命令可以编译应用程序和所有 ESP-IDF 组件,接着生成 bootloader、分区表和应用程序二进制文件。接着,这些二进制文件将被烧录至 ESP32 开发板。 - -如果一切顺利,您可在烧录完成后看到类似下方的打印信息(代表加载进程)。接着,开发板将会复位,应用程序 "hello_world" 开始启动。 - -.. highlight:: none - -:: - - esptool.py v2.0-beta2 - Flashing binaries to serial port /dev/ttyUSB0 (app at offset 0x10000)... - esptool.py v2.0-beta2 - Connecting........___ - Uploading stub... - Running stub... - Stub running... - Changing baud rate to 921600 - Changed. - Attaching SPI flash... - Configuring flash size... - Auto-detected Flash size:4MB - Flash params set to 0x0220 - Compressed 11616 bytes to 6695... - Wrote 11616 bytes (6695 compressed) at 0x00001000 in 0.1 seconds (effective 920.5 kbit/s)... - Hash of data verified. - Compressed 408096 bytes to 171625... - Wrote 408096 bytes (171625 compressed) at 0x00010000 in 3.9 seconds (effective 847.3 kbit/s)... - Hash of data verified. - Compressed 3072 bytes to 82... - Wrote 3072 bytes (82 compressed) at 0x00008000 in 0.0 seconds (effective 8297.4 kbit/s)... - Hash of data verified. - - Leaving... - Hard resetting... - - -如果您希望使用 Eclipse IDE,而非 ``make`` 编译系统,请参考 :doc:`Eclipse 指南 `。 - - -.. _get-started-monitor-legacy: - -第九步:监视器 -=============== - -您可以使用 ``make monitor`` 命令,监视 “hello_world” 的运行情况。 - -运行该命令后,:doc:`IDF 监视器 <../api-guides/tools/idf-monitor>` 应用程序将启动: :: - - $ make monitor - MONITOR - --- idf_monitor on /dev/ttyUSB0 115200 --- - --- Quit:Ctrl+] | Menu:Ctrl+T | Help:Ctrl+T followed by Ctrl+H --- - ets Jun 8 2016 00:22:57 - - rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) - ets Jun 8 2016 00:22:57 - ... - -此时,您就可以在启动日志和诊断日志之后,看到打印的 “Hello world!” 了。 - -.. code-block:: none - - ... - Hello world! - Restarting in 10 seconds... - I (211) cpu_start:Starting scheduler on APP CPU. - Restarting in 9 seconds... - Restarting in 8 seconds... - Restarting in 7 seconds... - -您可使用快捷键 ``Ctrl+]``,退出 IDF 监视器。 - -如果 IDF 监视器在烧录后很快发生错误,或打印信息全是乱码(见下),很有可能是因为您的开发板选用了 26 MHz 晶振,而 ESP-IDF 默认支持大多数开发板使用的 40 MHz 晶振。 - -.. code-block:: none - - e���)(Xn@�y.!��(�PW+)��Hn9a؅/9�!�t5��P�~�k��e�ea�5�jA - ~zY��Y(1�,1�� e���)(Xn@�y.!Dr�zY(�jpi�|�+z5Ymvp - -此时,请您: - -1. 退出监视器。 -2. 打开 :ref:`menuconfig `, -3. 进入 ``Component config`` --> ``ESP32-specific`` --> ``Main XTAL frequency`` 进行配置,将 :ref:`CONFIG_ESP32_XTAL_FREQ_SEL` 设置为 26 MHz。 -4. 然后,请重新 :ref:`编译和烧录 ` 应用程序。 - -.. note:: - - 您也可以运行以下命令,一次性执行构建、烧录和监视过程: :: - - make flash monitor - -此外,请前往 :doc:`IDF 监视器 <../api-guides/tools/idf-monitor>`,了解更多使用 IDF 监视器的快捷键和其他详情。 - -**恭喜,您已完成 ESP32 的入门学习!** - -现在,您可以尝试一些其他 :idf:`examples`,或者直接开发自己的应用程序。 - - -环境变量 -========= - -用户可以在使用 ``make`` 命令时 **直接设置** 部分环境变量,而无需进入 ``make menuconfig`` 进行重新配置。这些变量包括: - -+-----------------+-----------------------------------------------------------------------+ -| 变量 | 描述与使用方式 | -+-----------------+-----------------------------------------------------------------------+ -| ``ESPPORT`` | 覆盖 ``flash`` 和 ``monitor`` 命令使用的串口。 | -+ +-----------------------------------------------------------------------+ -| | 例:``make flash ESPPORT=/dev/ttyUSB1``, ``make monitor ESPPORT=COM1``| -+-----------------+-----------------------------------------------------------------------+ -| ``ESPBAUD`` | 覆盖烧录 ESP32 时使用的串口速率。 | -+ +-----------------------------------------------------------------------+ -| | 例:``make flash ESPBAUD=9600`` | -+-----------------+-----------------------------------------------------------------------+ -| ``MONITORBAUD`` | 覆盖监控时使用的串口速率。 | -+ +-----------------------------------------------------------------------+ -| | 例:``make monitor MONITORBAUD=9600`` | -+-----------------+-----------------------------------------------------------------------+ - -.. note:: - - 您可导出环境变量(例:``export ESPPORT=/dev/ttyUSB1``)。 - 在同一会话窗口中,如果未被同步覆盖,所有 ``make`` 命令均会使用导出的环境变量值。 - - -更新 ESP-IDF -============= - -乐鑫会不时推出更新版本的 ESP-IDF,修复 bug 或提出新的特性。因此,在使用时,您也应注意更新您本地的版本。最简单的方法是:直接删除您本地的 ``esp-idf`` 文件夹,然后按照 :ref:`get-started-get-esp-idf-legacy` 中的指示,重新完成克隆。 - -如果您希望将 ESP-IDF 克隆到新的路径下,请务必 :doc:`重新设置 IDF_PATH `。否则,工具链将无法找到 ESP-IDF。 - -此外,您可以仅更新变更部分。具体方式,请前往 :ref:`更新 ` 章节查看。 - -相关文档 -========= - -.. toctree:: - :maxdepth: 1 - - add-idf_path-to-profile - establish-serial-connection - make-project - eclipse-setup - ../api-guides/tools/idf-monitor - toolchain-setup-scratch - -.. _Stable version: https://docs.espressif.com/projects/esp-idf/zh_CN/stable/ -.. _Releases page: https://github.com/espressif/esp-idf/releases +*************************** +快速入门 (传统 GNU Make) +*************************** +:link_to_translation:`en:[English]` + +.. include:: ../gnu-make-legacy.rst + +本文档旨在指导用户搭建 ESP32 硬件开发的软件环境, + +通过一个简单的示例展示如何使用 ESP-IDF (Espressif IoT Development Framework) 配置菜单,并编译、下载固件至 ESP32 开发板等步骤。 + +.. include:: /_build/inc/version-note.inc + +概述 +==== + +ESP32 SoC 芯片支持以下功能: + +* 2.4 GHz Wi-Fi +* 蓝牙 4.2 标准 +* 高性能双核 +* 超低功耗协处理器 +* 多种外设 + +ESP32 采用 40 nm 工艺制成,具有最佳的功耗性能、射频性能、稳定性、通用性和可靠性,适用于各种应用场景和不同功耗需求。 + +乐鑫为用户提供完整的软、硬件资源,进行 ESP32 硬件设备的开发。其中,乐鑫的软件开发环境 ESP-IDF 旨在协助用户快速开发物联网 (IoT) 应用,可满足用户对 Wi-Fi、蓝牙、低功耗等方面的要求。 + +准备工作 +======== + +硬件: + +* 一款 **ESP32** 开发板 +* **USB 数据线** (USB A/Micro USB B) +* PC(Windows、Linux 或 Mac OS) + +软件: + +* 设置 **工具链**,用于编译 ESP32 **应用程序**; +* 获取 **ESP-IDF** 软件开发框架。该框架已经基本包含 ESP32 使用的 API(软件库和源代码)和运行 **工具链** 的脚本; +* 安装 C 语言编程(**工程**)的 **文本编辑器**,例如 `Eclipse `_。 + + +.. figure:: ../../_static/what-you-need.png + :align: center + :alt: ESP32 应用程序开发 + :figclass: align-center + + ESP32 应用程序开发 + + +开发板简介 +========== + +请点击下方连接,了解有关具体开发板的详细信息。 + +.. toctree:: + :maxdepth: 1 + + ESP32-DevKitC <../hw-reference/get-started-devkitc> + ESP-WROVER-KIT <../hw-reference/get-started-wrover-kit> + ESP32-PICO-KIT <../hw-reference/get-started-pico-kit> + ESP32-Ethernet-Kit <../hw-reference/get-started-ethernet-kit> + + +.. _get-started-step-by-step-legacy: + +详细安装步骤 +============ + +请根据下方详细步骤,完成安装过程。 + +设置开发环境 +~~~~~~~~~~~~ + +* :ref:`get-started-setup-toolchain-legacy` +* :ref:`get-started-get-esp-idf-legacy` +* :ref:`get-started-setup-path-legacy` +* :ref:`get-started-get-packages-legacy` + +创建您的第一个工程 +~~~~~~~~~~~~~~~~~~ + +* :ref:`get-started-start-project-legacy` +* :ref:`get-started-connect-legacy` +* :ref:`get-started-configure-legacy` +* :ref:`get-started-build-and-flash-legacy` +* :ref:`get-started-monitor-legacy` + + +.. _get-started-setup-toolchain-legacy: + +第一步:设置工具链 +================== + +工具链指一套用于编译代码和应用程序的程序。 + +为了加快开发进度,您可以直接使用乐鑫提供的预制工具链。请根据您的操作系统,点击下方对应的链接,并按照链接中的指导进行安装。 + +.. toctree:: + :hidden: + + Windows + Linux + MacOS + ++-----------------------------+-------------------------+----------------------------------+ +| |windows-logo| | |linux-logo| | |macos-logo| | ++-----------------------------+-------------------------+----------------------------------+ +| `Windows `_ | `Linux `_ | `Mac OS `_ | ++-----------------------------+-------------------------+----------------------------------+ + +.. |windows-logo| image:: ../../_static/windows-logo.png + :target: ../get-started-legacy/windows-setup.html + +.. |linux-logo| image:: ../../_static/linux-logo.png + :target: ../get-started-legacy/linux-setup.html + +.. |macos-logo| image:: ../../_static/macos-logo.png + :target: ../get-started-legacy/macos-setup.html + +.. _Windows-legacy: ../get-started-legacy/windows-setup.html +.. _Linux-legacy: ../get-started-legacy/linux-setup.html +.. _Mac OS-legacy: ../get-started-legacy/macos-setup.html + +.. note:: + + 在本文档中,Linux 和 MacOS 操作系统中 ESP-IDF 的默认安装路径为 ``~/esp``;Windows 操作系统的默认路径为 ``%userprofile%\esp``。您也可以将 ESP-IDF 安装在任何其他路径下,但请注意在使用命令行时进行相应替换。注意,ESP-IDF 不支持带有空格的路径。 + +此外, 您也可以根据自身经验和实际需求,对环境进行个性化设置,而非使用预制工具链。此时,请前往 :ref:`工具链的个性化设置` 章节获取更多信息。 + + +.. _get-started-get-esp-idf-legacy: + +第二步:获取 ESP-IDF +===================== + +除了工具链,您还需要供 ESP32 使用的 API(软件库和源代码),具体请见 `ESP-IDF 仓库 `_。 + +获取本地副本:打开终端,切换到你要存放 ESP-IDF 的工作目录,使用 ``git clone`` 命令克隆远程仓库。 + +打开终端,后运行以下命令: + +.. include:: /_build/inc/git-clone-bash.inc + +ESP-IDF 将下载至 ``~/esp/esp-idf``。 + +请前往 :doc:`/versions`,查看 ESP-IDF 不同版本的具体适用场景。 + +.. include:: /_build/inc/git-clone-notes.inc + +.. note:: + + 在克隆远程仓库时,不要忘记加上 ``--recursive`` 选项。否则,请接着运行以下命令,获取所有子模块: :: + + cd esp-idf + git submodule update --init + + +.. _get-started-setup-path-legacy: + +第三步:设置环境变量 +===================== + +工具链通过环境变量 ``IDF_PATH`` 获得 ESP-IDF 的目录。因此,您需要在 PC 中设置该环境变量,否则无法编译工程。 + +您可以在每次重启会话时手动设置,也可以在用户配置中进行永久设置,具体请前往 :doc:`add-idf_path-to-profile` 章节,查看 :ref:`Windows ` 、:ref:`Linux 及 MacOS ` 操作系统的具体设置方式。 + + +.. _get-started-get-packages-legacy: + +第四步:安装 Python 软件包 +========================== + +ESP-IDF 所需 Python 软件包位于 ``IDF_PATH/requirements.txt`` 中。您可以运行以下命令进行安装: :: + + python -m pip install --user -r $IDF_PATH/requirements.txt + +.. note:: + + 请注意查询您所使用的 Python 解释器的版本(运行命令 ``python --version``),并根据查询结果将上方命令中的 ``python`` 替换为 ``python2``, ``python2.7``,例如: :: + + python2.7 -m pip install --user -r $IDF_PATH/requirements.txt + + +.. _get-started-start-project-legacy: + +第五步:开始创建工程 +===================== + +现在,您可以开始准备开发 ESP32 应用程序了。您可以从 ESP-IDF 中 :idf:`examples` 目录下的 :example:`get-started/hello_world` 工程开始。 + +将 :example:`get-started/hello_world` 复制至您本地的 ``~/esp`` 目录下: + +Linux 和 MacOS 操作系统 +~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. code-block:: bash + + cd ~/esp + cp -r $IDF_PATH/examples/get-started/hello_world . + +Windows 操作系统 +~~~~~~~~~~~~~~~~~~ + +.. code-block:: batch + + cd %userprofile%\esp + xcopy /e /i %IDF_PATH%\examples\get-started\hello_world hello_world + +ESP-IDF 的 :idf:`examples` 目录下有一系列示例工程,都可以按照上面的方法进行创建。您可以按照上述方法复制并运行其中的任何示例,也可以直接编译示例,无需进行复制。 + +.. important:: + + ESP-IDF 编译系统不支持带有空格的路径。 + +.. _get-started-connect-legacy: + +第六步:连接设备 +================== + +现在,请将您的 ESP32 开发板连接到 PC,并查看开发板使用的串口。 + +通常,串口在不同操作系统下显示的名称有所不同: + +- **Windows 操作系统:** ``COM1`` 等 +- **Linux 操作系统:** 以 ``/dev/tty`` 开始 +- **MacOS 操作系统:** 以 ``/dev/cu.`` 开始 + +有关如何查看串口名称的详细信息,请见 :doc:`establish-serial-connection`。 + +.. note:: + + 请记住串口名,您会在下面的步骤中用到。 + + +.. _get-started-configure-legacy: + +第七步:配置 +============= + +请进入 :ref:`get-started-start-project-legacy` 中提到的 ``hello_world`` 目录,并运行工程配置工具 ``menuconfig``。 + +Linux 和 MacOS 操作系统 +~~~~~~~~~~~~~~~~~~~~~~~~ + +.. code-block:: bash + + cd ~/esp/hello_world + make menuconfig + +Windows 操作系统 +~~~~~~~~~~~~~~~~~~~ + +.. code-block:: batch + + cd %userprofile%\esp\hello_world + make menuconfig + +如果之前的步骤都正确,则会显示下面的菜单: + +.. figure:: ../../_static/project-configuration.png + :align: center + :alt: 工程配置 — 主窗口 + :figclass: align-center + + 工程配置 — 主窗口 + +进入菜单后,选择 ``Serial flasher config`` > ``Default serial port`` 配置串口(设备将通过该串口加载工程)。按回车键确认选择,点击 ``< Save >`` 保存配置,然后点击 ``< Exit >`` 退出 ``menuconfig``。 + +``menuconfig`` 工具的常见操作见下。 + +* ``上下箭头``:移动 +* ``回车``:进入子菜单 +* ``ESC 键``:返回上级菜单或退出 +* ``英文问号``:调出帮助菜单(退出帮助菜单,请按回车键)。 +* ``空格``、``Y 键``或``N 键``:使能/禁用 ``[*]`` 配置选项 +* ``英文问号`` :调出有关高亮选项的帮助菜单 +* ``/ 键``:寻找配置项目 + +.. note:: + + 如果您是 **Arch Linux** 用户,请前往 ``SDK tool configuration``,并将 ``Python 2 interpreter`` 的名称从 ``python`` 替换为 ``python2``。 + +.. attention:: + + 如果您使用的是 ESP32-DevKitC(板载 ESP32-SOLO-1 模组),请在烧写示例程序前,前往 ``menuconfig`` 中使能单核模式(:ref:`CONFIG_FREERTOS_UNICORE`)。 + +.. _get-started-build-and-flash-legacy: + +第八步:编译和烧录 +==================== + +请使用以下命令,编译烧录工程: :: + + make flash + +运行以上命令可以编译应用程序和所有 ESP-IDF 组件,接着生成 bootloader、分区表和应用程序二进制文件。接着,这些二进制文件将被烧录至 ESP32 开发板。 + +如果一切顺利,您可在烧录完成后看到类似下方的打印信息(代表加载进程)。接着,开发板将会复位,应用程序 "hello_world" 开始启动。 + +.. highlight:: none + +:: + + esptool.py v2.0-beta2 + Flashing binaries to serial port /dev/ttyUSB0 (app at offset 0x10000)... + esptool.py v2.0-beta2 + Connecting........___ + Uploading stub... + Running stub... + Stub running... + Changing baud rate to 921600 + Changed. + Attaching SPI flash... + Configuring flash size... + Auto-detected Flash size:4MB + Flash params set to 0x0220 + Compressed 11616 bytes to 6695... + Wrote 11616 bytes (6695 compressed) at 0x00001000 in 0.1 seconds (effective 920.5 kbit/s)... + Hash of data verified. + Compressed 408096 bytes to 171625... + Wrote 408096 bytes (171625 compressed) at 0x00010000 in 3.9 seconds (effective 847.3 kbit/s)... + Hash of data verified. + Compressed 3072 bytes to 82... + Wrote 3072 bytes (82 compressed) at 0x00008000 in 0.0 seconds (effective 8297.4 kbit/s)... + Hash of data verified. + + Leaving... + Hard resetting... + + +如果您希望使用 Eclipse IDE,而非 ``make`` 编译系统,请参考 :doc:`Eclipse 指南 `。 + + +.. _get-started-monitor-legacy: + +第九步:监视器 +=============== + +您可以使用 ``make monitor`` 命令,监视 “hello_world” 的运行情况。 + +运行该命令后,:doc:`IDF 监视器 <../api-guides/tools/idf-monitor>` 应用程序将启动: :: + + $ make monitor + MONITOR + --- idf_monitor on /dev/ttyUSB0 115200 --- + --- Quit:Ctrl+] | Menu:Ctrl+T | Help:Ctrl+T followed by Ctrl+H --- + ets Jun 8 2016 00:22:57 + + rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) + ets Jun 8 2016 00:22:57 + ... + +此时,您就可以在启动日志和诊断日志之后,看到打印的 “Hello world!” 了。 + +.. code-block:: none + + ... + Hello world! + Restarting in 10 seconds... + I (211) cpu_start:Starting scheduler on APP CPU. + Restarting in 9 seconds... + Restarting in 8 seconds... + Restarting in 7 seconds... + +您可使用快捷键 ``Ctrl+]``,退出 IDF 监视器。 + +如果 IDF 监视器在烧录后很快发生错误,或打印信息全是乱码(见下),很有可能是因为您的开发板选用了 26 MHz 晶振,而 ESP-IDF 默认支持大多数开发板使用的 40 MHz 晶振。 + +.. figure:: ../../_static/get-started-garbled-output.png + :align: center + :alt: 乱码输出 + :figclass: align-center + +此时,请您: + +1. 退出监视器。 +2. 打开 :ref:`menuconfig `, +3. 进入 ``Component config`` --> ``ESP32-specific`` --> ``Main XTAL frequency`` 进行配置,将 :ref:`CONFIG_ESP32_XTAL_FREQ_SEL` 设置为 26 MHz。 +4. 然后,请重新 :ref:`编译和烧录 ` 应用程序。 + +.. note:: + + 您也可以运行以下命令,一次性执行构建、烧录和监视过程: :: + + make flash monitor + +此外,请前往 :doc:`IDF 监视器 <../api-guides/tools/idf-monitor>`,了解更多使用 IDF 监视器的快捷键和其他详情。 + +**恭喜,您已完成 ESP32 的入门学习!** + +现在,您可以尝试一些其他 :idf:`examples`,或者直接开发自己的应用程序。 + + +环境变量 +========= + +用户可以在使用 ``make`` 命令时 **直接设置** 部分环境变量,而无需进入 ``make menuconfig`` 进行重新配置。这些变量包括: + ++-----------------+-----------------------------------------------------------------------+ +| 变量 | 描述与使用方式 | ++-----------------+-----------------------------------------------------------------------+ +| ``ESPPORT`` | 覆盖 ``flash`` 和 ``monitor`` 命令使用的串口。 | ++ +-----------------------------------------------------------------------+ +| | 例:``make flash ESPPORT=/dev/ttyUSB1``, ``make monitor ESPPORT=COM1``| ++-----------------+-----------------------------------------------------------------------+ +| ``ESPBAUD`` | 覆盖烧录 ESP32 时使用的串口速率。 | ++ +-----------------------------------------------------------------------+ +| | 例:``make flash ESPBAUD=9600`` | ++-----------------+-----------------------------------------------------------------------+ +| ``MONITORBAUD`` | 覆盖监控时使用的串口速率。 | ++ +-----------------------------------------------------------------------+ +| | 例:``make monitor MONITORBAUD=9600`` | ++-----------------+-----------------------------------------------------------------------+ + +.. note:: + + 您可导出环境变量(例:``export ESPPORT=/dev/ttyUSB1``)。 + 在同一会话窗口中,如果未被同步覆盖,所有 ``make`` 命令均会使用导出的环境变量值。 + + +更新 ESP-IDF +============= + +乐鑫会不时推出更新版本的 ESP-IDF,修复 bug 或提出新的特性。因此,在使用时,您也应注意更新您本地的版本。最简单的方法是:直接删除您本地的 ``esp-idf`` 文件夹,然后按照 :ref:`get-started-get-esp-idf-legacy` 中的指示,重新完成克隆。 + +如果您希望将 ESP-IDF 克隆到新的路径下,请务必 :doc:`重新设置 IDF_PATH `。否则,工具链将无法找到 ESP-IDF。 + +此外,您可以仅更新变更部分。具体方式,请前往 :ref:`更新 ` 章节查看。 + +相关文档 +========= + +.. toctree:: + :maxdepth: 1 + + add-idf_path-to-profile + establish-serial-connection + make-project + eclipse-setup + ../api-guides/tools/idf-monitor + toolchain-setup-scratch + +.. _Stable version: https://docs.espressif.com/projects/esp-idf/zh_CN/stable/ +.. _Releases page: https://github.com/espressif/esp-idf/releases diff --git a/docs/zh_CN/get-started/index.rst b/docs/zh_CN/get-started/index.rst index 1baf28fcbb..9f0a9ee900 100644 --- a/docs/zh_CN/get-started/index.rst +++ b/docs/zh_CN/get-started/index.rst @@ -1,493 +1,493 @@ -******************* -快速入门(CMake) -******************* - -:link_to_translation:`en:[English]` - -本文档旨在指导用户搭建 ESP32 硬件开发的软件环境, - -通过一个简单的示例展示如何使用 ESP-IDF (Espressif IoT Development Framework) 配置菜单,并编译、下载固件至 ESP32 开发板等步骤。 - -.. include:: /_build/inc/version-note.inc - -概述 -==== - -ESP32 SoC 芯片支持以下功能: - -* 2.4 GHz Wi-Fi -* 蓝牙 4.2 标准 -* 高性能双核 -* 超低功耗协处理器 -* 多种外设 - -ESP32 采用 40 nm 工艺制成,具有最佳的功耗性能、射频性能、稳定性、通用性和可靠性,适用于各种应用场景和不同功耗需求。 - -乐鑫为用户提供完整的软、硬件资源,进行 ESP32 硬件设备的开发。其中,乐鑫的软件开发环境 ESP-IDF 旨在协助用户快速开发物联网 (IoT) 应用,可满足用户对 Wi-Fi、蓝牙、低功耗等方面的要求。 - -准备工作 -======== - -硬件: - -* 一款 **ESP32** 开发板 -* **USB 数据线** (USB A/Micro USB B) -* PC(Windows、Linux 或 Mac OS) - -软件: - -* 设置 **工具链**,用于编译 ESP32 代码; -* **编译工具** —— CMake 和 Ninja 编译工具,用于编译 ESP32 **应用程序**; -* 获取 **ESP-IDF** 软件开发框架。该框架已经基本包含 ESP32 使用的 API(软件库和源代码)和运行 **工具链** 的脚本; -* 安装 C 语言编程(**工程**)的 **文本编辑器**,例如 `Eclipse `_。 - - -.. figure:: ../../_static/what-you-need.png - :align: center - :alt: ESP32 应用程序开发 - :figclass: align-center - - ESP32 应用程序开发 - - -开发板简介 -========== - -请点击下方连接,了解有关具体开发板的详细信息。 - -.. toctree:: - :maxdepth: 1 - - ESP32-DevKitC <../hw-reference/get-started-devkitc> - ESP-WROVER-KIT <../hw-reference/get-started-wrover-kit> - ESP32-PICO-KIT <../hw-reference/get-started-pico-kit> - ESP32-Ethernet-Kit <../hw-reference/get-started-ethernet-kit> - - -.. _get-started-step-by-step: - -详细安装步骤 -============== - -请根据下方详细步骤,完成安装过程。 - -设置开发环境 -~~~~~~~~~~~~~~~~ - -* :ref:`get-started-setup-toolchain` -* :ref:`get-started-get-esp-idf` -* :ref:`get-started-setup-path` -* :ref:`get-started-get-packages` - -创建您的第一个工程 -~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -* :ref:`get-started-start-project` -* :ref:`get-started-connect` -* :ref:`get-started-configure` -* :ref:`get-started-build` -* :ref:`get-started-flash` -* :ref:`get-started-build-monitor` - - -.. _get-started-setup-toolchain: - -第一步:设置工具链 -==================== - -工具链指一套用于编译代码和应用程序的程序。 - -为了加快开发进度,您可以直接使用乐鑫提供的预制工具链。请根据您的操作系统,点击下方对应的链接,并按照链接中的指导进行安装。 - -.. toctree:: - :hidden: - - Windows - Linux - MacOS - -+-------------------+-------------------+-------------------+ -| |windows-logo| | |linux-logo| | |macos-logo| | -+-------------------+-------------------+-------------------+ -| `Windows`_ | `Linux`_ | `Mac OS`_ | -+-------------------+-------------------+-------------------+ - -.. |windows-logo| image:: ../../_static/windows-logo.png - :target: ../get-started/windows-setup.html - -.. |linux-logo| image:: ../../_static/linux-logo.png - :target: ../get-started/linux-setup.html - -.. |macos-logo| image:: ../../_static/macos-logo.png - :target: ../get-started/macos-setup.html - -.. _Windows: ../get-started/windows-setup.html -.. _Linux: ../get-started/linux-setup.html -.. _Mac OS: ../get-started/macos-setup.html - -.. note:: - - 在本文档中,Linux 和 MacOS 操作系统中 ESP-IDF 的默认安装路径为 ``~/esp``;Windows 操作系统的默认路径为 ``%userprofile%\esp``。您也可以将 ESP-IDF 安装在任何其他路径下,但请注意在使用命令行时进行相应替换。注意,ESP-IDF 不支持带有空格的路径。 - -此外, 您也可以根据自身经验和实际需求,对环境进行个性化设置,而非使用预制工具链。此时,请前往 :ref:`工具链的个性化设置` 章节获取更多信息。 - - -.. _get-started-get-esp-idf: - -第二步:获取 ESP-IDF -=========================== - -除了工具链,您还需要供 ESP32 使用的 API(软件库和源代码),具体请见 `ESP-IDF 仓库 `_。 - -请将 ESP-IDF 下载到您的本地。 - -获取本地副本:打开终端,切换到你要存放 ESP-IDF 的工作目录,使用 ``git clone`` 命令克隆远程仓库。 - -Linux 和 MacOS 操作系统 -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -打开终端,后运行以下命令: - -.. include:: /_build/inc/git-clone-bash.inc - -ESP-IDF 将下载至 ``~/esp/esp-idf``。 - -请前往 :doc:`/versions`,查看 ESP-IDF 不同版本的具体适用场景。 - -Windows 操作系统 -~~~~~~~~~~~~~~~~~~ - -.. note:: - - 较早版本 ESP-IDF 使用了 **MSYS2 bash 终端** 命令行。目前,基于 CMake 的编译系统可使用常见的 **Windows 命令窗口**,即本指南中使用的终端。 - -请注意,如果您使用基于 bash 的终端或 PowerShell 终端,一些命令语法将与下面描述有所不同。 - -打开命令提示符,后运行以下命令: - -.. include:: /_build/inc/git-clone-windows.inc - -ESP-IDF 将下载至 ``%userprofile%\esp\esp-idf``。 - -请前往 :doc:`/versions`,查看 ESP-IDF 不同版本的具体适用场景。 - -.. include:: /_build/inc/git-clone-notes.inc - -.. note:: - - 在克隆远程仓库时,不要忘记加上 ``--recursive`` 选项。否则,请接着运行以下命令,获取所有子模块: :: - - cd esp-idf - git submodule update --init - -.. _get-started-setup-path: - -第三步:设置环境变量 -=========================== - -请在您的 PC 上设置以下环境变量,否则无法编译工程。 - -- ``IDF_PATH`` 应设置为 ESP-IDF 根目录的路径。 -- ``PATH`` 应包括同一 ``IDF_PATH`` 目录下的 ``tools`` 目录路径。 - -您可以在每次重启会话时手动设置,也可以在用户配置中进行永久设置,具体请前往 :doc:`add-idf_path-to-profile` 章节,查看 :ref:`Windows ` 、:ref:`Linux 及 MacOS ` 操作系统的具体设置方式。 - - -.. _get-started-get-packages: - -第四步:安装 Python 软件包 -================================= - -ESP-IDF 所需的 Python 软件包位于 ``IDF_PATH/requirements.txt`` 中。您可以运行以下命令进行安装: :: - - python -m pip install --user -r $IDF_PATH/requirements.txt - -.. note:: - - 请注意查询您所使用的 Python 解释器的版本(运行命令 ``python --version``),并根据查询结果将上方命令中的 ``python`` 替换为 ``python2``, ``python2.7``,例如: - - ``python2.7 -m pip install --user -r $IDF_PATH/requirements.txt`` - -.. _get-started-start-project: - -第五步:开始创建工程 -======================= - -现在,您可以开始准备开发 ESP32 应用程序了。您可以从 ESP-IDF 中 :idf:`examples` 目录下的 :example:`get-started/hello_world` 工程开始。 - -将 :example:`get-started/hello_world` 复制至您本地的 ``~/esp`` 目录下: - -Linux 和 MacOS 操作系统 -~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. code-block:: bash - - cd ~/esp - cp -r $IDF_PATH/examples/get-started/hello_world . - -Windows 操作系统 -~~~~~~~~~~~~~~~~~~~~~~ - -.. code-block:: batch - - cd %userprofile%\esp - xcopy /e /i %IDF_PATH%\examples\get-started\hello_world hello_world - -ESP-IDF 的 :idf:`examples` 目录下有一系列示例工程,都可以按照上面的方法进行创建。您可以按照上述方法复制并运行其中的任何示例,也可以直接编译示例,无需进行复制。 - -.. important:: - - ESP-IDF 编译系统不支持带有空格的路径。 - -.. _get-started-connect: - -第六步:连接设备 -====================== - -现在,请将您的 ESP32 开发板连接到 PC,并查看开发板使用的串口。 - -通常,串口在不同操作系统下显示的名称有所不同: - -- **Windows 操作系统:** ``COM1`` 等 -- **Linux 操作系统:** 以 ``/dev/tty`` 开始 -- **MacOS 操作系统:** 以 ``/dev/cu.`` 开始 - -有关如何查看串口名称的详细信息,请见 :doc:`establish-serial-connection`。 - -.. note:: - - 请记住串口名,您会在下面的步骤中用到。 - - -.. _get-started-configure: - -第七步:配置 -================= - -请进入 :ref:`get-started-start-project` 中提到的 ``hello_world`` 目录,并运行工程配置工具 ``menuconfig``。 - -Linux 和 MacOS 操作系统 -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. code-block:: bash - - cd ~/esp/hello_world - idf.py menuconfig - -如果您的默认 Python 版本为 3.0 以上,可能需要运行 ``python2 idf.py`` 。 - -Windows 操作系统 -~~~~~~~~~~~~~~~~~~~~~ - -.. code-block:: batch - - cd %userprofile%\esp\hello_world - idf.py menuconfig - -Python 2.7 安装程序将尝试配置 Windows,将 ``.py`` 文件与 Python 2 关联起来。如果其他程序(比如 Visual Studio Python 工具)曾关联了其他版本 Python,则 ``idf.py`` 可能无法正常运行(文件将在 Visual Studio 中打开)。这种情况下,您可以选择每次都运行一遍 ``C:\Python27\python idf.py``,或更改 Windows 的 ``.py`` 关联文件设置。 - -.. note:: - - 如果出现 ``idf.py not found(无法找到 idf.py)`` 错误,请确保 ``PATH`` 环境变量设置无误,具体请参考 :ref:`get-started-setup-path`。如果 ``tools`` 目录下没有 ``idf.py`` 文件,请确保 CMake 预览的分支正确无误,具体请参考 :ref:`get-started-get-esp-idf`。 - -如果之前的步骤都正确,则会显示下面的菜单: - -.. figure:: ../../_static/project-configuration.png - :align: center - :alt: 工程配置 — 主窗口 - :figclass: align-center - - 工程配置 — 主窗口 - -``menuconfig`` 工具的常见操作见下。 - -* ``上下箭头``:移动 -* ``回车``:进入子菜单 -* ``ESC 键``:返回上级菜单或退出 -* ``英文问号``:调出帮助菜单(退出帮助菜单,请按回车键)。 -* ``空格``、``Y 键``或``N 键``:使能/禁用 ``[*]`` 配置选项 -* ``英文问号``:调出有关高亮选项的帮助菜单 -* ``/ 键``:寻找配置项目 - -.. attention:: - - 如果您使用的是 ESP32-DevKitC(板载 ESP32-SOLO-1 模组),请在烧写示例程序前,前往 ``menuconfig`` 中使能单核模式(:ref:`CONFIG_FREERTOS_UNICORE`)。 - -.. _get-started-build: - -第八步:编译工程 -================== - -请使用以下命令,编译烧录工程::: - - idf.py build - -运行以上命令可以编译应用程序和所有 ESP-IDF 组件,接着生成 bootloader、分区表和应用程序二进制文件。 - -.. code-block:: none - - $ idf.py build - Running cmake in directory /path/to/hello_world/build - Executing "cmake -G Ninja --warn-uninitialized /path/to/hello_world"... - Warn about uninitialized values. - -- Found Git: /usr/bin/git (found version "2.17.0") - -- Building empty aws_iot component due to configuration - -- Component names: ... - -- Component paths: ... - - ... (more lines of build system output) - - [527/527] Generating hello-world.bin - esptool.py v2.3.1 - - Project build complete. To flash, run this command: - ../../../components/esptool_py/esptool/esptool.py -p (PORT) -b 921600 write_flash --flash_mode dio --flash_size detect --flash_freq 40m 0x10000 build/hello-world.bin build 0x1000 build/bootloader/bootloader.bin 0x8000 build/partition_table/partition-table.bin - or run 'idf.py -p PORT flash' - -如果一切正常,编译完成后将生成 .bin 文件。 - - -.. _get-started-flash: - -第九步:烧录到设备 -==================== - -请使用以下命令,将刚刚生成的二进制文件烧录至您的 ESP32 开发板: :: - - idf.py -p PORT [-b BAUD] flash - -请将 PORT 替换为 ESP32 开发板的串口名称,具体可见 :ref:`get-started-connect`。 - -您还可以将 BAUD 替换为您希望的烧录波特率。默认波特率为 ``460800``。 - -更多有关 idf.py 参数的详情,请见 :ref:`idf.py`。 - -.. note:: - - 勾选 ``flash`` 选项将自动编译并烧录工程,因此无需再运行 ``idf.py build``。 - -.. code-block:: none - - Running esptool.py in directory [...]/esp/hello_world - Executing "python [...]/esp-idf/components/esptool_py/esptool/esptool.py -b 460800 write_flash @flash_project_args"... - esptool.py -b 460800 write_flash --flash_mode dio --flash_size detect --flash_freq 40m 0x1000 bootloader/bootloader.bin 0x8000 partition_table/partition-table.bin 0x10000 hello-world.bin - esptool.py v2.3.1 - Connecting.... - Detecting chip type... ESP32 - Chip is ESP32D0WDQ6 (revision 1) - Features: WiFi, BT, Dual Core - Uploading stub... - Running stub... - Stub running... - Changing baud rate to 460800 - Changed. - Configuring flash size... - Auto-detected Flash size: 4MB - Flash params set to 0x0220 - Compressed 22992 bytes to 13019... - Wrote 22992 bytes (13019 compressed) at 0x00001000 in 0.3 seconds (effective 558.9 kbit/s)... - Hash of data verified. - Compressed 3072 bytes to 82... - Wrote 3072 bytes (82 compressed) at 0x00008000 in 0.0 seconds (effective 5789.3 kbit/s)... - Hash of data verified. - Compressed 136672 bytes to 67544... - Wrote 136672 bytes (67544 compressed) at 0x00010000 in 1.9 seconds (effective 567.5 kbit/s)... - Hash of data verified. - - Leaving... - Hard resetting via RTS pin... - -如果一切顺利,烧录完成后,开发板将会复位,应用程序 "hello_world" 开始运行。 - -.. note:: - - (目前不支持)如果您希望使用 Eclipse IDE,而非 ``idf.py``,请参考 :doc:`Eclipse 指南 `。 - - -.. _get-started-build-monitor: - -第十步:监视器 -================== - -您可以使用 ``make monitor`` 命令,监视 “hello_world” 的运行情况。注意,不要忘记将 PORT 替换为您的串口名称。 - -运行该命令后,:doc:`IDF 监视器 <../api-guides/tools/idf-monitor>` 应用程序将启动: :: - - $ idf.py -p /dev/ttyUSB0 monitor - Running idf_monitor in directory [...]/esp/hello_world/build - Executing "python [...]/esp-idf/tools/idf_monitor.py -b 115200 [...]/esp/hello_world/build/hello-world.elf"... - --- idf_monitor on /dev/ttyUSB0 115200 --- - --- Quit: Ctrl+] | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H --- - ets Jun 8 2016 00:22:57 - - rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) - ets Jun 8 2016 00:22:57 - ... - -此时,您就可以在启动日志和诊断日志之后,看到打印的 “Hello world!” 了。 - -.. code-block:: none - - ... - Hello world! - Restarting in 10 seconds... - I (211) cpu_start: Starting scheduler on APP CPU. - Restarting in 9 seconds... - Restarting in 8 seconds... - Restarting in 7 seconds... - -您可使用快捷键 ``Ctrl+]``,退出 IDF 监视器。 - -如果 IDF 监视器在烧录后很快发生错误,或打印信息全是乱码(见下),很有可能是因为您的开发板选用了 26 MHz 晶振,而 ESP-IDF 默认支持大多数开发板使用的 40 MHz 晶振。 - -.. code-block:: none - - e���)(Xn@�y.!��(�PW+)��Hn9a؅/9�!�t5��P�~�k��e�ea�5�jA - ~zY��Y(1�,1�� e���)(Xn@�y.!Dr�zY(�jpi�|�+z5Ymvp - -此时,请您: - -1. 退出监视器。 -2. 打开 :ref:`menuconfig `, -3. 进入 ``Component config`` --> ``ESP32-specific`` --> ``Main XTAL frequency`` 进行配置,将 :ref:`CONFIG_ESP32_XTAL_FREQ_SEL` 设置为 26 MHz。 -4. 然后,请重新 :ref:`编译和烧录 ` 应用程序。 - -.. note:: - - 您也可以运行以下命令,一次性执行构建、烧录和监视过程: - - ``idf.py -p PORT flash monitor`` - -此外, - -- 请前往 :doc:`IDF 监视器 <../api-guides/tools/idf-monitor>`,了解更多使用 IDF 监视器的快捷键和其他详情。 -- 请前往 :ref:`idf.py`,查看更多 ``idf.py`` 命令和选项。 - -**恭喜,您已完成 ESP32 的入门学习!** - -现在,您可以尝试一些其他 :idf:`examples`,或者直接开发自己的应用程序。 - -更新 ESP-IDF -================= - -乐鑫会不时推出更新版本的 ESP-IDF,修复 bug 或提出新的特性。因此,您在使用时,也应注意更新您本地的版本。最简单的方法是:直接删除您本地的 ``esp-idf`` 文件夹,然后按照 :ref:`get-started-get-esp-idf` 中的指示,重新完成克隆。 - -如果您希望将 ESP-IDF 克隆到新的路径下,请务必 :doc:`重新设置 IDF_PATH `。否则,工具链将无法找到 ESP-IDF。 - -此外,您可以仅更新变更部分。具体方式,请前往 :ref:`更新 ` 章节查看。 - -相关文档 -=========== - -.. toctree:: - :maxdepth: 1 - - add-idf_path-to-profile - establish-serial-connection - eclipse-setup - ../api-guides/tools/idf-monitor - toolchain-setup-scratch - ../get-started-legacy/index - -.. _Stable version: https://docs.espressif.com/projects/esp-idf/zh_CN/stable/ -.. _Releases page: https://github.com/espressif/esp-idf/releases +******************* +快速入门(CMake) +******************* + +:link_to_translation:`en:[English]` + +本文档旨在指导用户搭建 ESP32 硬件开发的软件环境, + +通过一个简单的示例展示如何使用 ESP-IDF (Espressif IoT Development Framework) 配置菜单,并编译、下载固件至 ESP32 开发板等步骤。 + +.. include:: /_build/inc/version-note.inc + +概述 +==== + +ESP32 SoC 芯片支持以下功能: + +* 2.4 GHz Wi-Fi +* 蓝牙 4.2 标准 +* 高性能双核 +* 超低功耗协处理器 +* 多种外设 + +ESP32 采用 40 nm 工艺制成,具有最佳的功耗性能、射频性能、稳定性、通用性和可靠性,适用于各种应用场景和不同功耗需求。 + +乐鑫为用户提供完整的软、硬件资源,进行 ESP32 硬件设备的开发。其中,乐鑫的软件开发环境 ESP-IDF 旨在协助用户快速开发物联网 (IoT) 应用,可满足用户对 Wi-Fi、蓝牙、低功耗等方面的要求。 + +准备工作 +======== + +硬件: + +* 一款 **ESP32** 开发板 +* **USB 数据线** (USB A/Micro USB B) +* PC(Windows、Linux 或 Mac OS) + +软件: + +* 设置 **工具链**,用于编译 ESP32 代码; +* **编译工具** —— CMake 和 Ninja 编译工具,用于编译 ESP32 **应用程序**; +* 获取 **ESP-IDF** 软件开发框架。该框架已经基本包含 ESP32 使用的 API(软件库和源代码)和运行 **工具链** 的脚本; +* 安装 C 语言编程(**工程**)的 **文本编辑器**,例如 `Eclipse `_。 + + +.. figure:: ../../_static/what-you-need.png + :align: center + :alt: ESP32 应用程序开发 + :figclass: align-center + + ESP32 应用程序开发 + + +开发板简介 +========== + +请点击下方连接,了解有关具体开发板的详细信息。 + +.. toctree:: + :maxdepth: 1 + + ESP32-DevKitC <../hw-reference/get-started-devkitc> + ESP-WROVER-KIT <../hw-reference/get-started-wrover-kit> + ESP32-PICO-KIT <../hw-reference/get-started-pico-kit> + ESP32-Ethernet-Kit <../hw-reference/get-started-ethernet-kit> + + +.. _get-started-step-by-step: + +详细安装步骤 +============== + +请根据下方详细步骤,完成安装过程。 + +设置开发环境 +~~~~~~~~~~~~~~~~ + +* :ref:`get-started-setup-toolchain` +* :ref:`get-started-get-esp-idf` +* :ref:`get-started-setup-path` +* :ref:`get-started-get-packages` + +创建您的第一个工程 +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +* :ref:`get-started-start-project` +* :ref:`get-started-connect` +* :ref:`get-started-configure` +* :ref:`get-started-build` +* :ref:`get-started-flash` +* :ref:`get-started-build-monitor` + + +.. _get-started-setup-toolchain: + +第一步:设置工具链 +==================== + +工具链指一套用于编译代码和应用程序的程序。 + +为了加快开发进度,您可以直接使用乐鑫提供的预制工具链。请根据您的操作系统,点击下方对应的链接,并按照链接中的指导进行安装。 + +.. toctree:: + :hidden: + + Windows + Linux + MacOS + ++-------------------+-------------------+-------------------+ +| |windows-logo| | |linux-logo| | |macos-logo| | ++-------------------+-------------------+-------------------+ +| `Windows`_ | `Linux`_ | `Mac OS`_ | ++-------------------+-------------------+-------------------+ + +.. |windows-logo| image:: ../../_static/windows-logo.png + :target: ../get-started/windows-setup.html + +.. |linux-logo| image:: ../../_static/linux-logo.png + :target: ../get-started/linux-setup.html + +.. |macos-logo| image:: ../../_static/macos-logo.png + :target: ../get-started/macos-setup.html + +.. _Windows: ../get-started/windows-setup.html +.. _Linux: ../get-started/linux-setup.html +.. _Mac OS: ../get-started/macos-setup.html + +.. note:: + + 在本文档中,Linux 和 MacOS 操作系统中 ESP-IDF 的默认安装路径为 ``~/esp``;Windows 操作系统的默认路径为 ``%userprofile%\esp``。您也可以将 ESP-IDF 安装在任何其他路径下,但请注意在使用命令行时进行相应替换。注意,ESP-IDF 不支持带有空格的路径。 + +此外, 您也可以根据自身经验和实际需求,对环境进行个性化设置,而非使用预制工具链。此时,请前往 :ref:`工具链的个性化设置` 章节获取更多信息。 + + +.. _get-started-get-esp-idf: + +第二步:获取 ESP-IDF +=========================== + +除了工具链,您还需要供 ESP32 使用的 API(软件库和源代码),具体请见 `ESP-IDF 仓库 `_。 + +请将 ESP-IDF 下载到您的本地。 + +获取本地副本:打开终端,切换到你要存放 ESP-IDF 的工作目录,使用 ``git clone`` 命令克隆远程仓库。 + +Linux 和 MacOS 操作系统 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +打开终端,后运行以下命令: + +.. include:: /_build/inc/git-clone-bash.inc + +ESP-IDF 将下载至 ``~/esp/esp-idf``。 + +请前往 :doc:`/versions`,查看 ESP-IDF 不同版本的具体适用场景。 + +Windows 操作系统 +~~~~~~~~~~~~~~~~~~ + +.. note:: + + 较早版本 ESP-IDF 使用了 **MSYS2 bash 终端** 命令行。目前,基于 CMake 的编译系统可使用常见的 **Windows 命令窗口**,即本指南中使用的终端。 + +请注意,如果您使用基于 bash 的终端或 PowerShell 终端,一些命令语法将与下面描述有所不同。 + +打开命令提示符,后运行以下命令: + +.. include:: /_build/inc/git-clone-windows.inc + +ESP-IDF 将下载至 ``%userprofile%\esp\esp-idf``。 + +请前往 :doc:`/versions`,查看 ESP-IDF 不同版本的具体适用场景。 + +.. include:: /_build/inc/git-clone-notes.inc + +.. note:: + + 在克隆远程仓库时,不要忘记加上 ``--recursive`` 选项。否则,请接着运行以下命令,获取所有子模块: :: + + cd esp-idf + git submodule update --init + +.. _get-started-setup-path: + +第三步:设置环境变量 +=========================== + +请在您的 PC 上设置以下环境变量,否则无法编译工程。 + +- ``IDF_PATH`` 应设置为 ESP-IDF 根目录的路径。 +- ``PATH`` 应包括同一 ``IDF_PATH`` 目录下的 ``tools`` 目录路径。 + +您可以在每次重启会话时手动设置,也可以在用户配置中进行永久设置,具体请前往 :doc:`add-idf_path-to-profile` 章节,查看 :ref:`Windows ` 、:ref:`Linux 及 MacOS ` 操作系统的具体设置方式。 + + +.. _get-started-get-packages: + +第四步:安装 Python 软件包 +================================= + +ESP-IDF 所需的 Python 软件包位于 ``IDF_PATH/requirements.txt`` 中。您可以运行以下命令进行安装: :: + + python -m pip install --user -r $IDF_PATH/requirements.txt + +.. note:: + + 请注意查询您所使用的 Python 解释器的版本(运行命令 ``python --version``),并根据查询结果将上方命令中的 ``python`` 替换为 ``python2``, ``python2.7``,例如: + + ``python2.7 -m pip install --user -r $IDF_PATH/requirements.txt`` + +.. _get-started-start-project: + +第五步:开始创建工程 +======================= + +现在,您可以开始准备开发 ESP32 应用程序了。您可以从 ESP-IDF 中 :idf:`examples` 目录下的 :example:`get-started/hello_world` 工程开始。 + +将 :example:`get-started/hello_world` 复制至您本地的 ``~/esp`` 目录下: + +Linux 和 MacOS 操作系统 +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. code-block:: bash + + cd ~/esp + cp -r $IDF_PATH/examples/get-started/hello_world . + +Windows 操作系统 +~~~~~~~~~~~~~~~~~~~~~~ + +.. code-block:: batch + + cd %userprofile%\esp + xcopy /e /i %IDF_PATH%\examples\get-started\hello_world hello_world + +ESP-IDF 的 :idf:`examples` 目录下有一系列示例工程,都可以按照上面的方法进行创建。您可以按照上述方法复制并运行其中的任何示例,也可以直接编译示例,无需进行复制。 + +.. important:: + + ESP-IDF 编译系统不支持带有空格的路径。 + +.. _get-started-connect: + +第六步:连接设备 +====================== + +现在,请将您的 ESP32 开发板连接到 PC,并查看开发板使用的串口。 + +通常,串口在不同操作系统下显示的名称有所不同: + +- **Windows 操作系统:** ``COM1`` 等 +- **Linux 操作系统:** 以 ``/dev/tty`` 开始 +- **MacOS 操作系统:** 以 ``/dev/cu.`` 开始 + +有关如何查看串口名称的详细信息,请见 :doc:`establish-serial-connection`。 + +.. note:: + + 请记住串口名,您会在下面的步骤中用到。 + + +.. _get-started-configure: + +第七步:配置 +================= + +请进入 :ref:`get-started-start-project` 中提到的 ``hello_world`` 目录,并运行工程配置工具 ``menuconfig``。 + +Linux 和 MacOS 操作系统 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. code-block:: bash + + cd ~/esp/hello_world + idf.py menuconfig + +如果您的默认 Python 版本为 3.0 以上,可能需要运行 ``python2 idf.py`` 。 + +Windows 操作系统 +~~~~~~~~~~~~~~~~~~~~~ + +.. code-block:: batch + + cd %userprofile%\esp\hello_world + idf.py menuconfig + +Python 2.7 安装程序将尝试配置 Windows,将 ``.py`` 文件与 Python 2 关联起来。如果其他程序(比如 Visual Studio Python 工具)曾关联了其他版本 Python,则 ``idf.py`` 可能无法正常运行(文件将在 Visual Studio 中打开)。这种情况下,您可以选择每次都运行一遍 ``C:\Python27\python idf.py``,或更改 Windows 的 ``.py`` 关联文件设置。 + +.. note:: + + 如果出现 ``idf.py not found(无法找到 idf.py)`` 错误,请确保 ``PATH`` 环境变量设置无误,具体请参考 :ref:`get-started-setup-path`。如果 ``tools`` 目录下没有 ``idf.py`` 文件,请确保 CMake 预览的分支正确无误,具体请参考 :ref:`get-started-get-esp-idf`。 + +如果之前的步骤都正确,则会显示下面的菜单: + +.. figure:: ../../_static/project-configuration.png + :align: center + :alt: 工程配置 — 主窗口 + :figclass: align-center + + 工程配置 — 主窗口 + +``menuconfig`` 工具的常见操作见下。 + +* ``上下箭头``:移动 +* ``回车``:进入子菜单 +* ``ESC 键``:返回上级菜单或退出 +* ``英文问号``:调出帮助菜单(退出帮助菜单,请按回车键)。 +* ``空格``、``Y 键``或``N 键``:使能/禁用 ``[*]`` 配置选项 +* ``英文问号``:调出有关高亮选项的帮助菜单 +* ``/ 键``:寻找配置项目 + +.. attention:: + + 如果您使用的是 ESP32-DevKitC(板载 ESP32-SOLO-1 模组),请在烧写示例程序前,前往 ``menuconfig`` 中使能单核模式(:ref:`CONFIG_FREERTOS_UNICORE`)。 + +.. _get-started-build: + +第八步:编译工程 +================== + +请使用以下命令,编译烧录工程::: + + idf.py build + +运行以上命令可以编译应用程序和所有 ESP-IDF 组件,接着生成 bootloader、分区表和应用程序二进制文件。 + +.. code-block:: none + + $ idf.py build + Running cmake in directory /path/to/hello_world/build + Executing "cmake -G Ninja --warn-uninitialized /path/to/hello_world"... + Warn about uninitialized values. + -- Found Git: /usr/bin/git (found version "2.17.0") + -- Building empty aws_iot component due to configuration + -- Component names: ... + -- Component paths: ... + + ... (more lines of build system output) + + [527/527] Generating hello-world.bin + esptool.py v2.3.1 + + Project build complete. To flash, run this command: + ../../../components/esptool_py/esptool/esptool.py -p (PORT) -b 921600 write_flash --flash_mode dio --flash_size detect --flash_freq 40m 0x10000 build/hello-world.bin build 0x1000 build/bootloader/bootloader.bin 0x8000 build/partition_table/partition-table.bin + or run 'idf.py -p PORT flash' + +如果一切正常,编译完成后将生成 .bin 文件。 + + +.. _get-started-flash: + +第九步:烧录到设备 +==================== + +请使用以下命令,将刚刚生成的二进制文件烧录至您的 ESP32 开发板: :: + + idf.py -p PORT [-b BAUD] flash + +请将 PORT 替换为 ESP32 开发板的串口名称,具体可见 :ref:`get-started-connect`。 + +您还可以将 BAUD 替换为您希望的烧录波特率。默认波特率为 ``460800``。 + +更多有关 idf.py 参数的详情,请见 :ref:`idf.py`。 + +.. note:: + + 勾选 ``flash`` 选项将自动编译并烧录工程,因此无需再运行 ``idf.py build``。 + +.. code-block:: none + + Running esptool.py in directory [...]/esp/hello_world + Executing "python [...]/esp-idf/components/esptool_py/esptool/esptool.py -b 460800 write_flash @flash_project_args"... + esptool.py -b 460800 write_flash --flash_mode dio --flash_size detect --flash_freq 40m 0x1000 bootloader/bootloader.bin 0x8000 partition_table/partition-table.bin 0x10000 hello-world.bin + esptool.py v2.3.1 + Connecting.... + Detecting chip type... ESP32 + Chip is ESP32D0WDQ6 (revision 1) + Features: WiFi, BT, Dual Core + Uploading stub... + Running stub... + Stub running... + Changing baud rate to 460800 + Changed. + Configuring flash size... + Auto-detected Flash size: 4MB + Flash params set to 0x0220 + Compressed 22992 bytes to 13019... + Wrote 22992 bytes (13019 compressed) at 0x00001000 in 0.3 seconds (effective 558.9 kbit/s)... + Hash of data verified. + Compressed 3072 bytes to 82... + Wrote 3072 bytes (82 compressed) at 0x00008000 in 0.0 seconds (effective 5789.3 kbit/s)... + Hash of data verified. + Compressed 136672 bytes to 67544... + Wrote 136672 bytes (67544 compressed) at 0x00010000 in 1.9 seconds (effective 567.5 kbit/s)... + Hash of data verified. + + Leaving... + Hard resetting via RTS pin... + +如果一切顺利,烧录完成后,开发板将会复位,应用程序 "hello_world" 开始运行。 + +.. note:: + + (目前不支持)如果您希望使用 Eclipse IDE,而非 ``idf.py``,请参考 :doc:`Eclipse 指南 `。 + + +.. _get-started-build-monitor: + +第十步:监视器 +================== + +您可以使用 ``make monitor`` 命令,监视 “hello_world” 的运行情况。注意,不要忘记将 PORT 替换为您的串口名称。 + +运行该命令后,:doc:`IDF 监视器 <../api-guides/tools/idf-monitor>` 应用程序将启动: :: + + $ idf.py -p /dev/ttyUSB0 monitor + Running idf_monitor in directory [...]/esp/hello_world/build + Executing "python [...]/esp-idf/tools/idf_monitor.py -b 115200 [...]/esp/hello_world/build/hello-world.elf"... + --- idf_monitor on /dev/ttyUSB0 115200 --- + --- Quit: Ctrl+] | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H --- + ets Jun 8 2016 00:22:57 + + rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) + ets Jun 8 2016 00:22:57 + ... + +此时,您就可以在启动日志和诊断日志之后,看到打印的 “Hello world!” 了。 + +.. code-block:: none + + ... + Hello world! + Restarting in 10 seconds... + I (211) cpu_start: Starting scheduler on APP CPU. + Restarting in 9 seconds... + Restarting in 8 seconds... + Restarting in 7 seconds... + +您可使用快捷键 ``Ctrl+]``,退出 IDF 监视器。 + +如果 IDF 监视器在烧录后很快发生错误,或打印信息全是乱码(见下),很有可能是因为您的开发板选用了 26 MHz 晶振,而 ESP-IDF 默认支持大多数开发板使用的 40 MHz 晶振。 + +.. figure:: ../../_static/get-started-garbled-output.png + :align: center + :alt: 乱码输出 + :figclass: align-center + +此时,请您: + +1. 退出监视器。 +2. 打开 :ref:`menuconfig `, +3. 进入 ``Component config`` --> ``ESP32-specific`` --> ``Main XTAL frequency`` 进行配置,将 :ref:`CONFIG_ESP32_XTAL_FREQ_SEL` 设置为 26 MHz。 +4. 然后,请重新 :ref:`编译和烧录 ` 应用程序。 + +.. note:: + + 您也可以运行以下命令,一次性执行构建、烧录和监视过程: + + ``idf.py -p PORT flash monitor`` + +此外, + +- 请前往 :doc:`IDF 监视器 <../api-guides/tools/idf-monitor>`,了解更多使用 IDF 监视器的快捷键和其他详情。 +- 请前往 :ref:`idf.py`,查看更多 ``idf.py`` 命令和选项。 + +**恭喜,您已完成 ESP32 的入门学习!** + +现在,您可以尝试一些其他 :idf:`examples`,或者直接开发自己的应用程序。 + +更新 ESP-IDF +================= + +乐鑫会不时推出更新版本的 ESP-IDF,修复 bug 或提出新的特性。因此,您在使用时,也应注意更新您本地的版本。最简单的方法是:直接删除您本地的 ``esp-idf`` 文件夹,然后按照 :ref:`get-started-get-esp-idf` 中的指示,重新完成克隆。 + +如果您希望将 ESP-IDF 克隆到新的路径下,请务必 :doc:`重新设置 IDF_PATH `。否则,工具链将无法找到 ESP-IDF。 + +此外,您可以仅更新变更部分。具体方式,请前往 :ref:`更新 ` 章节查看。 + +相关文档 +=========== + +.. toctree:: + :maxdepth: 1 + + add-idf_path-to-profile + establish-serial-connection + eclipse-setup + ../api-guides/tools/idf-monitor + toolchain-setup-scratch + ../get-started-legacy/index + +.. _Stable version: https://docs.espressif.com/projects/esp-idf/zh_CN/stable/ +.. _Releases page: https://github.com/espressif/esp-idf/releases diff --git a/docs/zh_CN/index.rst b/docs/zh_CN/index.rst index dfdd2da239..5cd11e5f06 100644 --- a/docs/zh_CN/index.rst +++ b/docs/zh_CN/index.rst @@ -15,24 +15,24 @@ ESP-IDF 编程指南 ================== ================== ================== -.. |快速入门| image:: ../_static/get-started.gif +.. |快速入门| image:: ../_static/get-started.png .. _快速入门: get-started/index.html -.. |API 参考| image:: ../_static/api-reference.gif +.. |API 参考| image:: ../_static/api-reference.png .. _API 参考: api-reference/index.html -.. |H/W 参考| image:: ../_static/hw-reference.gif +.. |H/W 参考| image:: ../_static/hw-reference.png .. _H/W 参考: hw-reference/index.html -.. |API 指南| image:: ../_static/api-guides.gif +.. |API 指南| image:: ../_static/api-guides.png .. _API 指南: api-guides/index.html .. _Libraries and Frameworks: libraries-and-frameworks/index.html -.. |贡献代码| image:: ../_static/contribute.gif +.. |贡献代码| image:: ../_static/contribute.png .. _贡献代码: contribute/index.html -.. |相关资源| image:: ../_static/resources.gif +.. |相关资源| image:: ../_static/resources.png .. _相关资源: resources.html