Merge branch 'docs/Update_CN_Getting_Started_Legacy_With_Changes_in_EN' into 'master'

Sync CN translation with EN updates regarding GNU make to cmake

See merge request espressif/esp-idf!6309
This commit is contained in:
Krzysztof Budzynski 2019-10-22 17:57:38 +08:00
commit 93223ae3f0
13 changed files with 537 additions and 357 deletions

View file

@ -1,66 +1,65 @@
在用户配置文件中添加 IDF_PATH (传统 GNU Make) 在用户配置文件中添加 IDF_PATH(传统 GNU Make
============================================= ==============================================
:link_to_translation:`en:[English]` :link_to_translation:`en:[English]`
.. include:: ../gnu-make-legacy.rst .. include:: ../gnu-make-legacy.rst
为了在系统多次重新启动时保留 “IDF_PATH” 环境变量的设置,请按照以下说明将其添加到用户配置文件中 为了在系统多次启动时,保留 ``IDF_PATH`` 环境变量的设置,请按照以下说明将该变量的设置增加至用户配置文件
.. _add-idf_path-to-profile-windows-legacy: .. _add-idf_path-to-profile-windows-legacy:
Windows 操作系统
-----------------
Windows 用户配置文件脚本保存在 ``C:/msys32/etc/profile.d/`` 路径下,每次打开 MSYS2 窗口时均会执行。
-------
用户配置文件脚本存放在 ``C:/msys32/etc/profile.d/`` 目录中。每次打开 MSYS2 窗口时,系统都执行这些脚本。 #. 在 ``C:/msys32/etc/profile.d/`` 目录下创建一个新的脚本文件,并将其命名为 ``export_idf_path.sh``
#. 指定您的 ESP-IDF 保存路径,这通常与您的系统配置有关,比如 ``C:\msys32\home\user-name\esp\esp-idf``
#. 在 ``C:/msys32/etc/profile.d/`` 目录下创建一个新的脚本文件。将其命名为 ``export_idf_path.sh`` #. 在脚本文件中加入下方 ``export`` 命令行,例::
#. 确定 ESP-IDF 目录的路径。路径与系统配置有关,例如 ``C:\msys32\home\user-name\esp\esp-idf``
#. 在脚本中加入 ``export`` 命令e.g.::
export IDF_PATH="C:/msys32/home/user-name/esp/esp-idf" export IDF_PATH="C:/msys32/home/user-name/esp/esp-idf"
请将原始 Windows 路径中将反斜杠替换为正斜杠。 注意请将反斜杠替换为 Windows 操作系统路径要求的正斜杠。
#. 保存脚本。 #. 保存脚本文件
#. 关闭 MSYS2 窗口并再次打开。输入以下命令检查是否设置了 ``IDF_PATH``:: #. 关闭 MSYS2 窗口,并重新打开。运行以下命令,检查 ``IDF_PATH`` 是否成功设置::
printenv IDF_PATH printenv IDF_PATH
将此前在脚本文件中输入的路径打印出来 如果设置成功,则此时将打印之前在脚本中输入的路径
如果您不想在用户配置文件中永久设置 ``IDF_PATH``,则应在打开 MSYS2 窗口时手动输入:: 如果您不希望永久设置 ``IDF_PATH`` 变量,也可以在每次打开 MSYS2 窗口时进行手动设置::
export IDF_PATH="C:/msys32/home/user-name/esp/esp-idf" export IDF_PATH="C:/msys32/home/user-name/esp/esp-idf"
您在安装用于 ESP32 开发的软件时,从 :ref:`get-started-setup-path-legacy` 小节跳转到了这里,请返回到 :ref:`get-started-start-project-legacy`节。 果您是在安装 ESP32 软件的过程中从 :ref:`get-started-setup-path-legacy` 章节跳转至此,请返回 :ref:`get-started-start-project-legacy`节。
.. _add-idf_path-to-profile-linux-macos-legacy: .. _add-idf_path-to-profile-linux-macos-legacy:
Linux and MacOS Linux 和 MacOS 操作系统
--------------- -------------------------
``~/.profile`` 文件中加入以下指令,创建 ``IDF_PATH`` ``~/.profile`` 文件中增加以下命令,设置 ``IDF_PATH`` 变量::
export IDF_PATH=~/esp/esp-idf export IDF_PATH=~/esp/esp-idf
注销并重新登录以使此更改生效。 退出并重新登陆,检查设置是否生效。
.. note:: .. note::
如果将 ``/bin/bash`` 设为登录 shell``.bash_profile````.profile`` 同时存在,则更新 ``.bash_profile`` 如果您已``/bin/bash``为登录 shell同时存在 ``.bash_profile````.profile``,则请更新 ``.bash_profile``
运行以下命令以确保 ``IDF_PATH`` 已经设置好:: 运行以下命令,检查 ``IDF_PATH`` 是否成功设置::
printenv IDF_PATH printenv IDF_PATH
此前在 ``~/.profile`` 文件中输入(或手动设置)的路径应该被打印出来 如果设置成功,则时将打印之前在 ``~/.profile`` 文件中输入(或手动设置)的路径。
如果不想永久设置 ``IDF_PATH``,每次重启或者注销时在终端窗口中手动输入:: 如果您不希望永久设置 ``IDF_PATH`` 变量,也可以在每次重新打开终端窗口时进行手动设置::
export IDF_PATH=~/esp/esp-idf export IDF_PATH=~/esp/esp-idf
如果您从 :ref:`get-started-setup-path-legacy` 小节跳转到了这里,在安装用于 ESP32 开发的软件时,返回到 :ref:`get-started-start-project-legacy`节。 如果您是在安装 ESP32 软件的过程中:ref:`get-started-setup-path-legacy` 章节跳转至此,请返回 :ref:`get-started-start-project-legacy`节。

View file

@ -1,6 +1,6 @@
******************************************** **********************************************
Eclipse IDE 的创建和烧录指南 (传统 GNU Make) Eclipse IDE 的创建和烧录指南(传统 GNU Make
******************************************** **********************************************
:link_to_translation:`en:[English]` :link_to_translation:`en:[English]`
.. include:: ../gnu-make-legacy.rst .. include:: ../gnu-make-legacy.rst
@ -12,104 +12,99 @@ Eclipse IDE 的创建和烧录指南 (传统 GNU Make)
Eclipse IDE 是一个可视化的集成开发环境,可用于编写、编译和调试 ESP-IDF 项目。 Eclipse IDE 是一个可视化的集成开发环境,可用于编写、编译和调试 ESP-IDF 项目。
* 首先,请在您的平台上安装相应的 ESP-IDF具体步骤请参考适用于 Windows、OS X 和 Linux 的相应安装步骤 * 首先,请在您的平台上安装相应的 ESP-IDF具体步骤请按照您的操作系统Windows、OS X 和 Linux对应的指示进行安装
* 我们建议,您首先使用命令行创建一个项目,大致熟悉项目的创建流程。此外,您还需要使用命令行 (``make menuconfig``) 对您的 ESP-IDF 项目进行配置。目前Eclipse 尚不支持对 ESP-IDF 项目进行配置 * 我们建议,您可以首先使用命令行创建一个项目,大致熟悉项目的创建流程。此外,您还需要使用命令行 (``make menuconfig``) 对您的 ESP-IDF 项目进行配置。目前Eclipse 还无法配置 ESP-IDF 项目
* 下载相应版本的 Eclipse Installer 至您的平台,点击 eclipse.org_ * 从 eclipse.org_ 下载对应操作系统的 Eclipse 安装器
* 运行 Eclipse Installer选择 “Eclipse for C/C++ Development”(有的版本也可能显示为 CDT * 运行 Eclipse Installer选择 **"Eclipse for C/C++ Development"** (有的版本也可能显示为 CDT
配置 Eclipse
==============
配置 Eclipse IDE 打开安装好的 Eclipse IDE并按照以下步骤进行操作
=================
请打开安装好的 Eclipse IDE并按照以下步骤进行操作
导入新项目 导入新项目
---------- ----------
* Eclipse IDE 需使用 ESP-IDF 的 Makefile 功能。因此,在使用 Eclipse 前,您需要先创建一个 ESP-IDF 项目。在创建 ESP-IDF 项目时,您可以使用 GitHub 中的 idf-template 项目模版,或从 esp-idf 子目录中选择一个 example。 * Eclipse 需使用 ESP-IDF 的 Makefile 功能。因此,在使用 Eclipse 前,您需要先创建一个 ESP-IDF 项目。在创建 ESP-IDF 项目时,您可以使用 GitHub 中的 idf-template 项目模版,或从 ESP-IDF 子目录中复制一个 example。
* 运行 Eclipse选择 “File” -> “Import...” * 运行 Eclipse选择 **"File"** -> **"Import..."**
* 在弹出的对话框中选择 “C/C++” -> “Existing Code as Makefile Project”然后点击 “Next” * 在弹出的对话框中选择 **"C/C++"** -> **"Existing Code as Makefile Project"**,点击 **"Next"**
* 在下个界面中 “Existing Code Location” 位置输入您的 IDF 项目的路径。注意,这里应输入 ESP-IDF 项目的路径,而非 ESP-IDF 本身的路径(这个稍后再填)。此外,您指定的目标路径中应包含名为 ``Makefile`` (项目 Makefile的文件。 * 进入下一界面,在 **"Existing Code Location"** 处输入您的 IDF 项目路径。注意,这里应输入 ESP-IDF 项目的路径,而非 ESP-IDF 本身的路径(这个稍后再填)。此外,您指定的目标路径中应包含名为 ``Makefile`` (项目 Makefile的文件。
* 在本界面,找到 “Toolchain for Indexer Settings”选择 “Cross GCC”最后点击 “Finish” * 本界面中,找到 **"Toolchain for Indexer Settings"**,选择 **"Cross GCC"**,最后点击 **"Finish"**
项目属性 项目属性
-------- --------
* 新项目将出现在 “Project Explorer” 下。请右键选择该项目,并在菜单中选择 “Properties” * 新项目将出现在 **"Project Explorer"** 下。右键选择该项目,并在菜单中选择 **"Properties"**
* 点击 “C/C++ Build” 下的 “Environment” 属性页,选择 “Add...”,并在对应位置输入 ``BATCH_BUILD````1`` * 点击 **"C/C++ Build"** 下的 **"Environment"** 属性页,选择 **"Add..."**,并在对应位置输入 ``BATCH_BUILD````1``
* 再次点击 “Add...”,并在 “IDF_PATH” 中输入 ESP-IDF 所在的完整安装路径。 * 再次点击 **"Add..."**,并在 ``IDF_PATH`` 处输入 ESP-IDF 所在的完整安装路径。Windows 用户可以从 Windows 浏览器复制 ``IDF_PATH``
* 选择 “PATH” 环境变量,不要改变默认值。如果 Xtensa 工具链的路径尚不在 “PATH” 列表中,则应将该路径 (``something/xtensa-esp32-elf/bin``) 增加至列表,工具链的典型路径类似于 ``/home/user-name/esp/xtensa-esp32-elf/bin``。请注意您需要在附加路径前添加冒号 ``:``。Windows 用户需要将 ``C:\msys32\mingw32\bin;C:\msys32\opt\xtensa-esp32-elf\bin;C:\msys32\usr\bin`` 添加到 ``PATH`` 环境变量的靠前位置(如果您将 msys32 安装到了其它目录,则需要更改对应的路径以匹配您的本地环境) * 编辑 ``PATH`` 环境变量。保留当前值,并将该路径增加至 Xtensa 工具链安装路径后,作为 IDF 设置的一部分(如已增加至 PATH则可忽略。工具链的常见路径为 ``/home/user-name/esp/xtensa-esp32-elf/bin`` (例)。注意,您需要在补充的路径前增加一个冒号(`:`。Windows 用户需要将 ``PATH`` 环境变量前增加 ``C:\msys32\mingw32\bin;C:\msys32\opt\xtensa-esp32-elf\bin;C:\msys32\usr\bin``。注意,请根据 msys32 的具体安装路径,修改 ``PATH`` 环境变量
* 在 macOS 平台上,增加一个 “PYTHONPATH” 环境变量,并将其设置为 ``/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages`` 保证系统中预先安装的 Python (需安装 pyserial 模块)可以覆盖 Eclipse 内置的任何 Python。 * MacOS 用户需要增加一个 ``PYTHONPATH`` 环境变量,并将其设置为 ``/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages``保证系统中预先安装的 Python (需安装 pyserial 模块)可以覆盖 Eclipse 内置的任何 Python。
* 前往 “C/C++ General” -> “Preprocessor Include Paths” 属性页面。 **特别说明**:如果您的 IDF_PATH 或项目不在 ``C:\msys32\home`` 之下,则应使用自定义编译命令:``python ${IDF_PATH}/tools/windows/eclipse_make.py`` (请注意,这种方法可能导致编译时间显著增加。)
* 点击 “Providers” 选项卡。 * 前往 **"C/C++ General"** -> **"Preprocessor Include Paths"** 属性页面。点击 **"Providers"** 选项卡。
* 从 “Providers” 列表中选择 “CDT Cross GCC Built-in Compiler Settings”将 “Command to get compiler specs” 修改为 ``xtensa-esp32-elf-gcc ${FLAGS} -std=c++11 -E -P -v -dD "${INPUTS}"`` * 从 **"Providers"** 列表中选择 **"CDT Cross GCC Built-in Compiler Settings"**,将 **"Command to get compiler specs"** 修改为 ``xtensa-esp32-elf-gcc ${FLAGS} -std=c++11 -E -P -v -dD "${INPUTS}"``
* 从 “Providers” 列表中选择 “CDT GCC Build Output Parser”将 “Compiler command pattern” 修改为 ``xtensa-esp32-elf-(gcc|g\+\+|c\+\+|cc|cpp|clang)`` * 从 **"Providers"** 列表中选择 **"CDT GCC Build Output Parser"**,将 **"Compiler command pattern"** 修改为 ``xtensa-esp32-elf-(gcc|g\+\+|c\+\+|cc|cpp|clang)``
* 前往 “C/C++ General” -> “Indexer” 属性页面。 * 前往 **“C/C++ General”** -> **“Indexer”** 属性页面。
* 去除 "Allow heuristic resolution of includes" 勾选。启用此选项时Eclipse 有时无法找到正确的头文件目录 * 勾选 **“Enable project specific settings”**,启用本页面上的其他设置
点击 “C/C++ General" -> "Indexer” 属性页 * 取消勾选 **“Allow heuristic resolution of includes”**。勾选该选项有时会导致 Eclipse 无法找到正确的头文件目录
* 选择 “Enable project specific settings” 以启用本页上的其他设置 * 前往 **“C/C++ Build”** -> **“Behavior”** 属性页面
.. note:: * 勾选 **“Enable parallel build”**,启用“并行编译”配置。
取消选中 “Allow heuristic resolution of includes”。因为启用此选项时有时会导致 Eclipse 无法找到正确的头文件目录。
点击 “C/C++ Build” -> “Behavior” 属性页。
* 选中 “Enable parallel build” 以启用多任务并行构建。
.. _eclipse-build-project-legacy: .. _eclipse-build-project-legacy:
在 Eclipse IDE 中创建项目 在 Eclipse 中构建项目
-------------------------- -----------------------
在首次创建项目前Eclipse IDE 可能会显示大量有关未定义值的错误和警告,主要原因在于项目编译过程中所需的一些源文件是在 ESP-IDF 项目创建过程中自动生成的。因此,这些错误和警告将在 ESP-IDF 项目生成完成后消失。 在首次创建项目前Eclipse IDE 可能会显示大量有关未定义值的错误和警告,这是因为 ESP-IDF 在编译过程中会自动生成一些源文件。因此,这些错误和警告均会在项目编译完成后消失。
* 点击 “OK”关闭 Eclipse IDE 中的 “Properties” 对话框。 * 点击 **“OK”**,关闭 Eclipse IDE 中的 **“Properties”** 对话框。
* 在 Eclipse IDE 界面外,打开命令管理器。进入项目目录,并通过 ``make menuconfig`` 命令对您的 ESP-IDF 项目进行配置。现阶段,您还无法在 Eclipse 中完成本操作。 * 在 Eclipse IDE 界面外,打开命令提示符窗口。进入项目目录,运行 ``make menuconfig`` 设置项目的 ESP-IDF 配置。现阶段,您还无法在 Eclipse 中完成本操作。
*如果您未进行最开始的配置步骤ESP-IDF 将提示在命令行中进行配置 - 但由于 Eclipse 暂时不支持相关功能,因此该项目将挂起或创建失败。* .. note:
* 返回 Eclipse IDE 界面中,选择 “Project” -> “Build” 创建您的项目 如果您尝试跳过配置步骤直接开始编译ESP-IDF 将在命令行提示需完成配置,但 Eclipse 暂时无法处理这种情况,因此编译将挂起或失败
**提示**:如果您已经在 Eclipse IDE 环境外创建了项目,则可能需要选择 “Project” -> “Clean before choosing Project” -> “Build”允许 Eclipse 查看所有源文件的编译器参数,并借此确定头文件包含路径 * 回到 Eclipse IDE 界面,选择 **“Project”** -> **“Build”** 开始编译项目
在 Eclipse IDE 中烧录项目 **小提示**:如果您的项目不是通过 Eclipse 创建的,则在选择 **“Project”** -> **“Build”** 前还需进行 **“Project”** -> **“Clean”** 操作。如此操作后Eclipse 才能查看所有源文件的编译器参数,并借此确定头文件包含路径。
--------------------------
您可以将 ``make flash`` 目标放在 Eclipse 项目中,通过 Eclipse UI 调用 ``esptool.py`` 进行烧录: 在 Eclipse 中烧录项目
------------------------------------
* 打开 “Project Explorer”并右击您的项目请注意右击项目本身而非项目下的子文件否则 Eclipse 可能会找到错误的 ``Makefile``)。 您可以将 ``make flash`` 目标集成在 Eclipse 项目中,这样就可以通过 Eclipse UI 调用 ``esptool.py`` 进行烧录:
* 从菜单中选择 “Build Targets” -> “Create”。 * 打开 **“Project Explorer”**,并右击您的项目(请注意右击项目本身,而非项目下的子文件,否则 Eclipse 可能会找到错误的 ``Makefile``)。
* 输入 “flash” 为目标名称,其他选项使用默认值 * 从菜单中选择 **“Build Targets”** -> **“Create...”**
* 选择 “Project” -> “Build Target” -> “Build (快捷键Shift + F9创建自定义烧录目标用于编译、烧录项目 * 目标名称输入 “flash”其他选项使用默认值
注意,您将需要通过 ``make menuconfig``,设置串行端口和其他烧录选项。``make menuconfig`` 仍需通过命令行操作(请见平台的对应指南) * 这时,您可以选择 **“Project”** -> **“Build Target”** -> **“Build”** (快捷键Shift + F9创建自定义烧录目标用于编译、烧录项目
如有需要,请按照相同步骤添加 ``bootloader````partition_table`` 注意,您仍需要通过 ``make menuconfig`` 设置串行端口和其他烧录选项。``make menuconfig`` 仍需通过命令行操作(具体请见对应操作系统的指南)。
如有需要,请按照相同步骤添加 ``bootloader````partition_table`` 目标。
.. _eclipse.org: https://www.eclipse.org/ .. _eclipse.org: https://www.eclipse.org/

View file

@ -1,49 +1,70 @@
与 ESP32 创建串口连接 (传统 GNU Make) 与 ESP32 创建串口连接(传统 GNU Make 系统)
======================================= ================================================
:link_to_translation:`en:[English]` :link_to_translation:`en:[English]`
.. include:: ../gnu-make-legacy.rst .. include:: ../gnu-make-legacy.rst
本章节介绍如何在 ESP32 和 PC 之间建立串口连接。 本章节主要介绍如何创建 ESP32 和 PC 之间的串口连接。
连接 ESP32 和 PC 连接 ESP32 和 PC
-------------------- --------------------
用 USB 线将 ESP32 开发板连接到 PC。如果设备驱动程序没有自动安装确认 ESP32 开发板上的 USB 转串口芯片(或外部串口适配器)型号,在网上搜索驱动程序并进行安装。 用 USB 线将 ESP32 开发板连接到 PC。如果设备驱动程序没有自动安装请先确认 ESP32 开发板上的 USB 转串口芯片(或外部串口适配器)型号,然后在网上搜索驱动程序并进行手动安装。
以下是乐鑫 ESP32 开发板驱动程序的链接: 以下是乐鑫 ESP32 开发板驱动程序的链接:
* ESP32-PICO-KIT 和 ESP32-DevKitC - `CP210x USB to UART Bridge VCP Drivers <https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers>`_
* ESP32-WROVER-KIT 和 ESP32 Demo Board - `FTDI Virtual COM Port Drivers <http://www.ftdichip.com/Drivers/VCP.htm>`_ .. csv-table::
:header: 开发板, USB 驱动, 备注
:widths: 40, 20, 40
以上驱动仅用于参考。当您将上述 ESP32 开发板与 PC 连接时,对应驱动程序应该已经被打包在操作系统中并自动安装。 :ref:`ESP32-DevKitC <esp-modules-and-boards-esp32-devkitc>`, `CP210x`_
`ESP32-LyraT <https://www.espressif.com/en/products/hardware/esp32-lyrat>`_, `CP210x`_
`ESP32-LyraTD-MSC <https://www.espressif.com/en/products/hardware/esp32-lyratd-msc>`_, `CP210x`_
:ref:`ESP32-PICO-KIT <esp-modules-and-boards-esp32-pico-kit>`, `CP210x`_
:ref:`ESP-WROVER-KIT <esp-modules-and-boards-esp-wrover-kit>`, `FTDI`_
:ref:`ESP32 Demo 板 <esp-modules-and-boards-esp32-demo-board>`, `FTDI`_
`ESP-Prog`_, `FTDI`_, 编程板 (w/o ESP32)
`ESP32-MeshKit-Sense <https://github.com/espressif/esp-iot-solution/blob/master/documents/evaluation_boards/ESP32-MeshKit-Sense_guide_en.md#esp32-meshkit-sense-hardware-design-guidelines>`_, n/a, 搭配 `ESP-Prog`_ 使用
`ESP32-Sense Kit <https://github.com/espressif/esp-iot-solution/blob/master/documents/evaluation_boards/esp32_sense_kit_guide_en.md#guide-for-esp32-sense-development-kit>`_, n/a, 搭配 `ESP-Prog`_ 使用
在 Windows 上查看端口 .. _CP210x: https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers
--------------------- .. _FTDI: http://www.ftdichip.com/Drivers/VCP.htm
.. _ESP-Prog: https://github.com/espressif/esp-iot-solution/blob/master/documents/evaluation_boards/ESP-Prog_guide_en.md#introduction-to-the-esp-prog-board
检查 Windows 设备管理器中的 COM 端口列表。断开 ESP32 与 PC 的连接,然后重新连接,查看哪个端口从列表中消失,然后再次显示。 * CP210x: `CP210x USB to UART Bridge VCP Drivers <https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers>`_
* FTDI: `FTDI Virtual COM Port Drivers <http://www.ftdichip.com/Drivers/VCP.htm>`_
以上驱动仅用作参考。正常情况下,当上述任一 ESP32 开发板与 PC 连接时,打包在操作系统中的驱动程序将会开始自动安装。
查看端口Windows 用户)
---------------------------
检查 Windows 设备管理器中的 COM 端口列表。断开 ESP32 与 PC 的连接,然后重连。查看从列表中消失后再次出现的是哪个端口。
以下为 ESP32 DevKitC 和 ESP32 WROVER KIT 串口: 以下为 ESP32 DevKitC 和 ESP32 WROVER KIT 串口:
.. figure:: ../../_static/esp32-devkitc-in-device-manager.png .. figure:: ../../_static/esp32-devkitc-in-device-manager.png
:align: center :align: center
:alt: USB to UART bridge of ESP32-DevKitC in Windows Device Manager :alt: Windows 设备管理器中 ESP32-DevKitC 的 USB 至 UART 桥
:figclass: align-center :figclass: align-center
设备管理器中 ESP32-DevKitC 的 USB 串口转换器 Windows 设备管理器中 ESP32-DevKitC 的 USB 至 UART 桥
.. figure:: ../../_static/esp32-wrover-kit-in-device-manager.png .. figure:: ../../_static/esp32-wrover-kit-in-device-manager.png
:align: center :align: center
:alt: Two USB Serial Ports of ESP-WROVER-KIT in Windows Device Manager :alt: Windows 设备管理器中 ESP-WROVER-KIT 的两个 USB 串行端口
:figclass: align-center :figclass: align-center
Windows 设备管理器中的两个 USB-WROVER-KIT 串行端口 Windows 设备管理器中 ESP-WROVER-KIT 的两个 USB 串行端口
在 Linux 和 MacOS 上检查串口
-----------------------------
要查看 ESP32 开发板(或外部串口适配器)的串口设备名称,运行以下命令两次,第一次先拔下开发板或适配器,第二次插入开发板或适配器之后再运行命令,第二次运行指令后出现的端口即是 ESP32 对应的串口: 查看端口Linux 和 MacOS 用户)
----------------------------------
查看 ESP32 开发板(或外部转串口适配器)的串口设备名称,请运行两次下述命令。首先,断开开发板或适配器,第一次运行命令;然后,连接开发板或适配器,第二次运行命令。其中,第二次运行命令后出现的端口即是 ESP32 对应的串口:
Linux :: Linux ::
@ -53,13 +74,12 @@ MacOS ::
ls /dev/cu.* ls /dev/cu.*
.. _linux-dialout-group-legacy: .. _linux-dialout-group-legacy:
在 Linux 添加用户到 ``dialout`` 将用户增加至 Linux 的 ``dialout``
----------------------------------- -------------------------------------
当前登录用户可以通过 USB 读写串口。在大多数 Linux 发行版中,这是通过以下命令将用户添加到 ``dialout`` 组来完成的:: 当前登录用户应当拥有通过 USB 对串口进行读写的权限。在多数 Linux 版本中,您都可以通过以下命令,将用户添加到 ``dialout`` 组,来获取读写权限::
sudo usermod -a -G dialout $USER sudo usermod -a -G dialout $USER
@ -67,31 +87,32 @@ MacOS ::
sudo usermod -a -G uucp $USER sudo usermod -a -G uucp $USER
重新登录以确保串行端口的读写权限被启用 请重新登录,确保串口读写权限可以生效
确认串口连接 确认串口连接
------------------------ -------------
现在验证串口连接是可用的。您可以使用串口终端程序来执行此操作。在这个例子中,我们将使用 `PuTTY SSH Client <http://www.putty.org/>`_ ,它有 Windows 和 Linux 等平台的版本。您也可以使用其他串口程序并设置如下的通信参数 现在,请使用串口终端程序,验证串口连接是否可用。在本示例中,我们将使用 `PuTTY SSH Client <http://www.putty.org/>`_ 进行验证。该工具同时适用于 Windows 和 Linux 操作系统。您也可以使用其他串口程序,设置通信参数如下
运行终端,设置串口:波特率 = 115200数据位 = 8停止位 = 1奇偶校验 = N。以下是设置串口和在 Windows 和 Linux 上传输参数(如 115200-8-1-N的一些截屏示例。注意选择上述步骤中确认的串口进行设置。 运行终端,配置串口:波特率 = 115200数据位 = 8停止位 = 1奇偶校验 = N。在 Windows 和 Linux 中配置串口和通信参数(如 115200-8-1-N的截图如下。注意这里一定要选择在上述步骤中确认的串口进行配置。
.. figure:: ../../_static/putty-settings-windows.png .. figure:: ../../_static/putty-settings-windows.png
:align: center :align: center
:alt: Setting Serial Communication in PuTTY on Windows :alt: 在 Windows 操作系统中使用 PuTTY 设置串口通信参数
:figclass: align-center :figclass: align-center
在 Windows 上的 PuTTY 设置串口传输。 在 Windows 操作系统中使用 PuTTY 设置串口通信参数
.. figure:: ../../_static/putty-settings-linux.png .. figure:: ../../_static/putty-settings-linux.png
:align: center :align: center
:alt: Setting Serial Communication in PuTTY on Linux :alt: 在 Linux 操作系统中使用 PuTTY 设置串口通信参数
:figclass: align-center :figclass: align-center
在 Linux 上的 PuTTY 设置串口传输。 在 Linux 操作系统中使用 PuTTY 设置串口通信参数
在终端打开串口,检查是否有任何打印出来的日志。日志内容取决于加载到 ESP32 的应用程序。下图为 ESP32 的一个示例日志。
然后,请在终端打开串口,查看 ESP32 是否有任何打印,具体打印内容取决于加载至 ESP32 的程序。ESP32 打印示例
.. highlight:: none .. highlight:: none
@ -116,17 +137,18 @@ MacOS ::
... ...
如果您看到一些清晰的日志,则表示串行连接正常,您可以继续安装,最后将应用程序上载到 ESP32。 如果打印出的日志是可读的(而不是乱码),则表示串口连接正常。此时,您可以继续进行安装,并最终将应用程序下载到 ESP32。
.. note:: .. note::
对于某些串口接线配置,在 ESP32 启动并产生串行输出之前,需要在终端程序中禁用串行 RTS DTR 引脚。这取决于串口适配器硬件本身,大多数开发板(包括所有乐鑫开发板)没有这个问题。此问题仅存在于将 RTS DTR 引脚直接连接到 EN GPIO0 引脚上的情况。更多详细信息,参见 `esptool documentation`_。 在某些串口接线方式下,在 ESP32 启动并开始打印串口日志前,需要在终端程序中禁用串口 RTS DTR 引脚。该问题仅存在于将 RTS DTR 引脚直接连接到 EN GPIO0 引脚上的情况,绝大多数开发板(包括乐鑫所有的开发板)都没有这个问题。更多详细信息,参见 `esptool 文档`_。
.. note:: .. note::
验证通讯正常后关闭串口终端。下一步,我们将使用另一个应用程序来上传 ESP32。此应用程序在终端打开时将无法访问串口。 验证完成后,请关闭串口终端。我们将在后续步骤中向 ESP32 下载新的应用程序,如果未关闭终端,则该应用程序将无法访问串口。
您在安装用于 ESP32 开发的软件时,从 :ref:`get-started-connect-legacy` 小节跳转到了这里,请返回到 :ref:`get-started-configure-legacy` 小节继续阅读 果您是在安装 ESP32 软件的过程中从 :ref:`get-started-connect-legacy` 章节跳转至此,请返回 :ref:`get-started-configure-legacy` 章节
.. _esptool documentation: https://github.com/espressif/esptool/wiki/ESP32-Boot-Mode-Selection#automatic-bootloader
.. _esptool 文档: https://github.com/espressif/esptool/wiki/ESP32-Boot-Mode-Selection#automatic-bootloader

View file

@ -1,13 +1,12 @@
*************************** ***************************
快速入门 (传统 GNU Make) 快速入门(传统 GNU Make
*************************** ***************************
:link_to_translation:`en:[English]` :link_to_translation:`en:[English]`
.. include:: ../gnu-make-legacy.rst .. include:: ../gnu-make-legacy.rst
本文档旨在指导用户搭建 ESP32 硬件开发的软件环境, 本文档旨在指导用户搭建 ESP32 硬件开发的软件环境,通过一个简单的示例展示如何使用 ESP-IDF (Espressif IoT Development Framework) 配置菜单,并编译、下载固件至 ESP32 开发板等步骤。
通过一个简单的示例展示如何使用 ESP-IDF (Espressif IoT Development Framework) 配置菜单,并编译、下载固件至 ESP32 开发板等步骤。
.. include:: /_build/inc/version-note.inc .. include:: /_build/inc/version-note.inc
@ -17,7 +16,7 @@
ESP32 SoC 芯片支持以下功能: ESP32 SoC 芯片支持以下功能:
* 2.4 GHz Wi-Fi * 2.4 GHz Wi-Fi
* 蓝牙 4.2 标准 * 蓝牙 4.2
* 高性能双核 * 高性能双核
* 超低功耗协处理器 * 超低功耗协处理器
* 多种外设 * 多种外设
@ -32,13 +31,13 @@ ESP32 采用 40 nm 工艺制成,具有最佳的功耗性能、射频性能、
硬件: 硬件:
* 一款 **ESP32** 开发板 * 一款 **ESP32** 开发板
* **USB 数据线** USB A/Micro USB B * **USB 数据线** (A 转 Micro-B)
* PCWindows、Linux 或 Mac OS * PCWindows、Linux 或 Mac OS
软件: 软件:
* 设置 **工具链**,用于编译 ESP32 **应用程序** * 设置 **工具链**,用于编译 ESP32 **应用程序**;
* 获取 **ESP-IDF** 软件开发框架。该框架已经基本包含 ESP32 使用的 API软件库和源代码和运行 **工具链** 的脚本 * 获取 **ESP-IDF** 软件开发框架。该框架已经基本包含 ESP32 使用的 API软件库和源代码和运行 **工具链** 的脚本;
* 安装 C 语言编程(**工程**)的 **文本编辑器**,例如 `Eclipse <https://www.eclipse.org/>`_ * 安装 C 语言编程(**工程**)的 **文本编辑器**,例如 `Eclipse <https://www.eclipse.org/>`_
@ -74,7 +73,7 @@ ESP32 采用 40 nm 工艺制成,具有最佳的功耗性能、射频性能、
设置开发环境 设置开发环境
~~~~~~~~~~~~ ~~~~~~~~~~~~
* :ref:`get-started-setup-toolchain-legacy` * :doc:`Windows <windows-setup>`:doc:`Linux <linux-setup>`:doc:`macOS <macos-setup>`:ref:`get-started-setup-toolchain-legacy`
* :ref:`get-started-get-esp-idf-legacy` * :ref:`get-started-get-esp-idf-legacy`
* :ref:`get-started-setup-path-legacy` * :ref:`get-started-setup-path-legacy`
* :ref:`get-started-get-packages-legacy` * :ref:`get-started-get-packages-legacy`
@ -96,20 +95,20 @@ ESP32 采用 40 nm 工艺制成,具有最佳的功耗性能、射频性能、
工具链指一套用于编译代码和应用程序的程序。 工具链指一套用于编译代码和应用程序的程序。
为了加快开发进度,您可以直接使用乐鑫提供的预制工具链。请根据您的操作系统,点击下方对应的链接,并按照链接中的指导进行安装。 为了加快开发进度,您可以直接使用乐鑫提供的预制工具链。请根据您的操作系点击对应的链接,并按照链接中的指导进行安装。
.. toctree:: .. toctree::
:hidden: :hidden:
Windows <windows-setup> Windows <windows-setup>
Linux <linux-setup> Linux <linux-setup>
MacOS <macos-setup> macOS <macos-setup>
+-----------------------------+-------------------------+----------------------------------+ +-----------------+---------------+---------------+
| |windows-logo| | |linux-logo| | |macos-logo| | | |windows-logo| | |linux-logo| | |macos-logo| |
+-----------------------------+-------------------------+----------------------------------+ +-----------------+---------------+---------------+
| `Windows <windows-legacy>`_ | `Linux <linux-legacy>`_ | `Mac OS <macos-legacy>`_ | | Windows_ | Linux_ | `macOS`_ |
+-----------------------------+-------------------------+----------------------------------+ +-----------------+---------------+---------------+
.. |windows-logo| image:: ../../_static/windows-logo.png .. |windows-logo| image:: ../../_static/windows-logo.png
:target: ../get-started-legacy/windows-setup.html :target: ../get-started-legacy/windows-setup.html
@ -120,15 +119,15 @@ ESP32 采用 40 nm 工艺制成,具有最佳的功耗性能、射频性能、
.. |macos-logo| image:: ../../_static/macos-logo.png .. |macos-logo| image:: ../../_static/macos-logo.png
:target: ../get-started-legacy/macos-setup.html :target: ../get-started-legacy/macos-setup.html
.. _Windows-legacy: ../get-started-legacy/windows-setup.html .. _Windows: ../get-started-legacy/windows-setup.html
.. _Linux-legacy: ../get-started-legacy/linux-setup.html .. _Linux: ../get-started-legacy/linux-setup.html
.. _Mac OS-legacy: ../get-started-legacy/macos-setup.html .. _macOS: ../get-started-legacy/macos-setup.html
.. note:: .. note::
在本文档中Linux 和 MacOS 操作系统中 ESP-IDF 的默认安装路径为 ``~/esp``Windows 操作系统的默认路径为 ``%userprofile%\esp``。您也可以将 ESP-IDF 安装在任何其他路径下但请注意在使用命令行时进行相应替换。注意ESP-IDF 不支持带有空格的路径。 在本文档中Linux 和 MacOS 操作系统中 ESP-IDF 的默认安装路径为 ``~/esp``Windows 操作系统的默认路径为 ``%userprofile%\esp``。您也可以将 ESP-IDF 安装在任何其他路径下但请注意在使用命令行时进行相应替换。注意ESP-IDF 不支持带有空格的路径。
此外, 您也可以根据自身经验和实际需求,对环境进行个性化设置,而非使用预制工具链。此时,请前往 :ref:`工具链的个性化设置<get-started-customized-setup-legacy>` 章节获取更多信息。 此外, 您也可以根据自身经验和实际需求,对环境进行个性化设置,而非使用预制工具链。此时,请前往 :ref:`get-started-customized-setup-legacy` 章节获取更多信息。
.. _get-started-get-esp-idf-legacy: .. _get-started-get-esp-idf-legacy:
@ -152,7 +151,7 @@ ESP-IDF 将下载至 ``~/esp/esp-idf``。
.. note:: .. note::
在克隆远程仓库时,不要忘记加上 ``--recursive`` 选项。否则,请接着运行以下命令,获取所有子模块 :: 在克隆远程仓库时,不要忘记加上 ``--recursive`` 选项。否则,请接着运行以下命令,获取所有子模块::
cd esp-idf cd esp-idf
git submodule update --init git submodule update --init
@ -161,7 +160,7 @@ ESP-IDF 将下载至 ``~/esp/esp-idf``。
.. _get-started-setup-path-legacy: .. _get-started-setup-path-legacy:
第三步:设置环境变量 第三步:设置环境变量
===================== =======================
工具链通过环境变量 ``IDF_PATH`` 获得 ESP-IDF 的目录。因此,您需要在 PC 中设置该环境变量,否则无法编译工程。 工具链通过环境变量 ``IDF_PATH`` 获得 ESP-IDF 的目录。因此,您需要在 PC 中设置该环境变量,否则无法编译工程。
@ -173,13 +172,13 @@ ESP-IDF 将下载至 ``~/esp/esp-idf``。
第四步:安装 Python 软件包 第四步:安装 Python 软件包
========================== ==========================
ESP-IDF 所需 Python 软件包位于 ``IDF_PATH/requirements.txt`` 中。您可以运行以下命令进行安装: :: ESP-IDF 所需 Python 软件包位于 ``IDF_PATH/requirements.txt`` 中。您可以运行以下命令进行安装:您可以运行以下命令进行安装::
python -m pip install --user -r $IDF_PATH/requirements.txt python -m pip install --user -r $IDF_PATH/requirements.txt
.. note:: .. note::
请注意查询您所使用的 Python 解释器的版本(运行命令 ``python --version``),并根据查询结果将上方命令中的 ``python`` 替换为 ``python2``, ``python2.7``,例如 :: 请注意查询您所使用的 Python 解释器的版本(运行命令 ``python --version``),并根据查询结果将上方命令中的 ``python`` 替换为 ``python2``, ``python2.7``,例如::
python2.7 -m pip install --user -r $IDF_PATH/requirements.txt python2.7 -m pip install --user -r $IDF_PATH/requirements.txt
@ -194,7 +193,7 @@ ESP-IDF 所需 Python 软件包位于 ``IDF_PATH/requirements.txt`` 中。您可
:example:`get-started/hello_world` 复制至您本地的 ``~/esp`` 目录下: :example:`get-started/hello_world` 复制至您本地的 ``~/esp`` 目录下:
Linux 和 MacOS 操作系统 Linux 和 MacOS 操作系统
~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~
.. code-block:: bash .. code-block:: bash
@ -218,7 +217,7 @@ ESP-IDF 的 :idf:`examples` 目录下有一系列示例工程,都可以按照
.. _get-started-connect-legacy: .. _get-started-connect-legacy:
第六步:连接设备 第六步:连接设备
================== ===================
现在,请将您的 ESP32 开发板连接到 PC并查看开发板使用的串口。 现在,请将您的 ESP32 开发板连接到 PC并查看开发板使用的串口。
@ -243,7 +242,7 @@ ESP-IDF 的 :idf:`examples` 目录下有一系列示例工程,都可以按照
请进入 :ref:`get-started-start-project-legacy` 中提到的 ``hello_world`` 目录,并运行工程配置工具 ``menuconfig`` 请进入 :ref:`get-started-start-project-legacy` 中提到的 ``hello_world`` 目录,并运行工程配置工具 ``menuconfig``
Linux 和 MacOS 操作系统 Linux 和 MacOS 操作系统
~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~
.. code-block:: bash .. code-block:: bash
@ -271,13 +270,13 @@ Windows 操作系统
``menuconfig`` 工具的常见操作见下。 ``menuconfig`` 工具的常见操作见下。
* ``上下箭头``:移动 * 上下箭头:移动
* ``回车``:进入子菜单 * ``回车``:进入子菜单
* ``ESC 键``:返回上级菜单或退出 * ``ESC 键``:返回上级菜单或退出
* ``英文问号``:调出帮助菜单(退出帮助菜单,请按回车键)。 * ``英文问号``:调出帮助菜单(退出帮助菜单,请按回车键)。
* ``空格``、``Y 键``或``N 键``:使能/禁用 ``[*]`` 配置选项 * ``空格``或 ``Y 键``:选择 ``[*]`` 配置选项;``N 键``:禁用 ``[*]`` 配置选项
* ``英文问号`` :调出有关高亮选项的帮助菜单 * ``英文问号`` (查询配置选项):调出有关该选项的帮助菜单
* ``/ 键``:寻找配置项目 * ``/ 键``:寻找配置工程
.. note:: .. note::
@ -292,7 +291,7 @@ Windows 操作系统
第八步:编译和烧录 第八步:编译和烧录
==================== ====================
请使用以下命令,编译烧录工程 :: 请使用以下命令,编译烧录工程::
make flash make flash
@ -315,7 +314,7 @@ Windows 操作系统
Changed. Changed.
Attaching SPI flash... Attaching SPI flash...
Configuring flash size... Configuring flash size...
Auto-detected Flash size:4MB Auto-detected Flash size: 4MB
Flash params set to 0x0220 Flash params set to 0x0220
Compressed 11616 bytes to 6695... Compressed 11616 bytes to 6695...
Wrote 11616 bytes (6695 compressed) at 0x00001000 in 0.1 seconds (effective 920.5 kbit/s)... Wrote 11616 bytes (6695 compressed) at 0x00001000 in 0.1 seconds (effective 920.5 kbit/s)...
@ -331,7 +330,7 @@ Windows 操作系统
Hard resetting... Hard resetting...
如果您希望使用 Eclipse IDE而非 ``make`` 编译系统,请参考 :doc:`Eclipse 指南 <eclipse-setup>`。 如果您希望使用 Eclipse IDE而非 ``make`` 编译系统,请参考 :doc:`Eclipse guide <eclipse-setup>`。
.. _get-started-monitor-legacy: .. _get-started-monitor-legacy:
@ -341,12 +340,12 @@ Windows 操作系统
您可以使用 ``make monitor`` 命令,监视 “hello_world” 的运行情况。 您可以使用 ``make monitor`` 命令,监视 “hello_world” 的运行情况。
运行该命令后,:doc:`IDF 监视器 <../api-guides/tools/idf-monitor>` 应用程序将启动 :: 运行该命令后,:doc:`IDF 监视器 <../api-guides/tools/idf-monitor>` 应用程序将启动::
$ make monitor $ make monitor
MONITOR MONITOR
--- idf_monitor on /dev/ttyUSB0 115200 --- --- idf_monitor on /dev/ttyUSB0 115200 ---
--- Quit:Ctrl+] | Menu:Ctrl+T | Help:Ctrl+T followed by Ctrl+H --- --- Quit: Ctrl+] | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
ets Jun 8 2016 00:22:57 ets Jun 8 2016 00:22:57
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
@ -360,14 +359,14 @@ Windows 操作系统
... ...
Hello world! Hello world!
Restarting in 10 seconds... Restarting in 10 seconds...
I (211) cpu_start:Starting scheduler on APP CPU. I (211) cpu_start: Starting scheduler on APP CPU.
Restarting in 9 seconds... Restarting in 9 seconds...
Restarting in 8 seconds... Restarting in 8 seconds...
Restarting in 7 seconds... Restarting in 7 seconds...
您可使用快捷键 ``Ctrl+]``,退出 IDF 监视器。 您可使用快捷键 ``Ctrl+]``,退出 IDF 监视器。
如果 IDF 监视器在烧录后很快发生错误,或打印信息全是乱码(见下),很有可能是因为您的开发板用了 26 MHz 晶振,而 ESP-IDF 默认支持大多数开发板使用的 40 MHz 晶振。 如果 IDF 监视器在烧录后很快发生错误,或打印信息全是乱码(见下),很有可能是因为您的开发板用了 26 MHz 晶振,而 ESP-IDF 默认支持大多数开发板使用的 40 MHz 晶振。
.. figure:: ../../_static/get-started-garbled-output.png .. figure:: ../../_static/get-started-garbled-output.png
:align: center :align: center
@ -377,13 +376,13 @@ Windows 操作系统
此时,请您: 此时,请您:
1. 退出监视器。 1. 退出监视器。
2. 打开 :ref:`menuconfig <get-started-configure>` 2. 打开 :ref:`menuconfig <get-started-configure-legacy>`
3. 进入 ``Component config`` --> ``ESP32-specific`` --> ``Main XTAL frequency`` 进行配置,将 :ref:`CONFIG_ESP32_XTAL_FREQ_SEL` 设置为 26 MHz。 3. 进入 ``Component config`` --> ``ESP32-specific`` --> ``Main XTAL frequency`` 进行配置,将 :ref:`CONFIG_ESP32_XTAL_FREQ_SEL` 设置为 26 MHz。
4. 然后,请重新 :ref:`编译和烧录 <get-started-build-and-flash-legacy>` 应用程序。 4. 然后,请重新 :ref:`编译和烧录 <get-started-build-and-flash-legacy>` 应用程序。
.. note:: .. note::
您也可以运行以下命令,一次性执行构建、烧录和监视过程 :: 您也可以运行以下命令,一次性执行构建、烧录和监视过程::
make flash monitor make flash monitor
@ -395,43 +394,40 @@ Windows 操作系统
环境变量 环境变量
========= ========
用户可以在使用 ``make`` 命令时 **直接设置** 部分环境变量,而无需进入 ``make menuconfig`` 进行重新配置。这些变量包括: 用户可以在使用 ``make`` 命令时 **直接设置** 部分环境变量,而无需进入 ``make menuconfig`` 进行重新配置。这些变量包括:
+-----------------+-----------------------------------------------------------------------+
| 变量 | 描述与使用方式 | .. list-table::
+-----------------+-----------------------------------------------------------------------+ :widths: 25 75
| ``ESPPORT`` | 覆盖 ``flash````monitor`` 命令使用的串口。 | :header-rows: 1
+ +-----------------------------------------------------------------------+
| | 例:``make flash ESPPORT=/dev/ttyUSB1``, ``make monitor ESPPORT=COM1``| * - 变量
+-----------------+-----------------------------------------------------------------------+ - 描述与使用方式
| ``ESPBAUD`` | 覆盖烧录 ESP32 时使用的串口速率。 | * - ``ESPPORT``
+ +-----------------------------------------------------------------------+ - 覆盖 ``flash````monitor`` 命令使用的串口。例:``make flash ESPPORT=/dev/ttyUSB1``, ``make monitor ESPPORT=COM1``
| | 例:``make flash ESPBAUD=9600`` | * - ``ESPBAUD``
+-----------------+-----------------------------------------------------------------------+ - 覆盖烧录 ESP32 时使用的串口速率。例:``make flash ESPBAUD=9600``
| ``MONITORBAUD`` | 覆盖监控时使用的串口速率。 | * - ``MONITORBAUD``
+ +-----------------------------------------------------------------------+ - 覆盖监控时使用的串口速率。例:``make monitor MONITORBAUD=9600``
| | 例:``make monitor MONITORBAUD=9600`` |
+-----------------+-----------------------------------------------------------------------+
.. note:: .. note::
您可导出环境变量(例:``export ESPPORT=/dev/ttyUSB1``)。 您可导出环境变量(例:``export ESPPORT=/dev/ttyUSB1``)。在同一会话窗口中,如果未被同步覆盖,所有 ``make`` 命令均会使用导出的环境变量值。
在同一会话窗口中,如果未被同步覆盖,所有 ``make`` 命令均会使用导出的环境变量值。
更新 ESP-IDF 更新 ESP-IDF
============= =============
乐鑫会不时推出更新版本的 ESP-IDF修复 bug 或提出新的特性。因此,在使用时,您也应注意更新您本地的版本。最简单的方法是:直接删除您本地的 ``esp-idf`` 文件夹,然后按照 :ref:`get-started-get-esp-idf-legacy` 中的指示,重新完成克隆。 乐鑫会不时推出更新版本的 ESP-IDF修复 bug 或推出新的特性。因此,您在使用时,也应注意更新您本地的版本。最简单的方法是:直接删除您本地的 ``esp-idf`` 文件夹,然后按照 :ref:`get-started-get-esp-idf-legacy` 中的指示,重新完成克隆。
如果您希望将 ESP-IDF 克隆到新的路径下,请务必 :doc:`重新设置 IDF_PATH <add-idf_path-to-profile>`。否则,工具链将无法找到 ESP-IDF。 如果您希望将 ESP-IDF 克隆到新的路径下,请务必 :doc:`重新设置 IDF_PATH <add-idf_path-to-profile>`。否则,工具链将无法找到 ESP-IDF。
此外,您可以仅更新变更部分。具体方式,请前往 :ref:`更新 <updating>` 章节查看。 此外,您可以仅更新变更部分。具体方式,请前往 :ref:`更新 <updating>` 章节查看。
相关文档 相关文档
========= ========
.. toctree:: .. toctree::
:maxdepth: 1 :maxdepth: 1

View file

@ -1,21 +1,20 @@
***************************************************** ****************************************************
从零开始设置 Linux 环境下的工具链 (传统 GNU Make) 从零开始设置 Linux 环境下的工具链(传统 GNU Make
***************************************************** ****************************************************
:link_to_translation:`en:[English]` :link_to_translation:`en:[English]`
.. include:: ../gnu-make-legacy.rst .. include:: ../gnu-make-legacy.rst
.. note:: .. note::
安装工具链的标准流程可以通过阅读文档 :doc:`Linux 平台工具链的标准设置 <linux-setup>` 来获得,:ref:`工具链的自定义设置 <get-started-customized-setup-legacy>` 章节会介绍哪些情况下我们必须要重新定义工具链 安装工具链的标准方法请见 :doc:`这里 <linux-setup>`。请参考 :ref:`工具链自定义设置 <get-started-customized-setup-legacy>` 章节,查看可能需要从头开始设置工具链的情况
安装准备
========
安装必要的工具 编译 ESP-IDF 需要以下软件包:
==============
要想使用 ESP-IDF 进行编译,您需要获取以下软件包: - Ubuntu and Debian::
- Ubuntu 和 Debian::
sudo apt-get install gcc git wget make libncurses-dev flex bison gperf python python-pip python-setuptools python-serial python-cryptography python-future python-pyparsing python-pyelftools sudo apt-get install gcc git wget make libncurses-dev flex bison gperf python python-pip python-setuptools python-serial python-cryptography python-future python-pyparsing python-pyelftools
@ -25,13 +24,12 @@
.. note:: .. note::
一些旧的2014年之前Linux 发行版中使用的 ``pyserial`` 版本可能是 2.x ESP-IDF并不支持。 一些旧的2014年之前Linux 发行版中使用的 ``pyserial`` 版本可能是 2.x ESP-IDF 并不支持。这种情况下,请按照 :ref:`get-started-get-packages-legacy` 章节的介绍,使用 ``pip`` 安装软件包。
在这种情况下,请参考 :ref:`安装依赖的 Python 软件包 <get-started-get-packages-legacy>` 章节,通过 ``pip`` 工具来安装支持的版本。
从源代码编译工具链 从源代码编译工具链
================== ==================
- 安装依赖: - 安装依赖项:
- CentOS 7:: - CentOS 7::
@ -41,7 +39,7 @@
sudo apt-get install gawk gperf grep gettext libncurses-dev python python-dev automake bison flex texinfo help2man libtool sudo apt-get install gawk gperf grep gettext libncurses-dev python python-dev automake bison flex texinfo help2man libtool
- Ubuntu 16.04:: - Ubuntu 16.04 或以上 ::
sudo apt-get install gawk gperf grep gettext python python-dev automake bison flex texinfo help2man libtool libtool-bin sudo apt-get install gawk gperf grep gettext python python-dev automake bison flex texinfo help2man libtool libtool-bin
@ -53,26 +51,26 @@
TODO TODO
新建工作目录,然后进入:: - 创建工作目录,并进入该目录::
mkdir -p ~/esp mkdir -p ~/esp
cd ~/esp cd ~/esp
- 下载并编译 ``crosstool-NG``
下载 ``crosstool-NG`` 然后编译: .. include:: /_build/inc/scratch-build-code.inc
.. include:: /_build/inc/scratch-build-code.inc - 编译工具链::
编译工具链::
./ct-ng xtensa-esp32-elf ./ct-ng xtensa-esp32-elf
./ct-ng build ./ct-ng build
chmod -R u+w builds/xtensa-esp32-elf chmod -R u+w builds/xtensa-esp32-elf
编译得到的工具链会被保存到 ``~/esp/crosstool-NG/builds/xtensa-esp32-elf``根据 :ref:`Linux 下设置环境变量的标准方法 <setup-linux-toolchain-add-it-to-path-legacy>` 的介绍,将工具链添加到 ``PATH`` 中。 编译得到的工具链会被保存到 ``~/esp/crosstool-NG/builds/xtensa-esp32-elf``请按照 :ref:`标准设置指南 <setup-linux-toolchain-add-it-to-path-legacy>` 的介绍,将工具链添加到 ``PATH``
下一步 后续步骤
====== ========
继续设置开发环境,请前往 :ref:`get-started-get-esp-idf-legacy` 章节。
继续设置开发环境,请前往 :ref:`获取 ESP-IDF <get-started-get-esp-idf-legacy>` 章节。

View file

@ -1,18 +1,18 @@
******************************************* ********************************************
Linux 平台工具链的标准设置 (传统 GNU Make) Linux 平台工具链的标准设置(传统 GNU Make
******************************************* ********************************************
:link_to_translation:`en:[English]` :link_to_translation:`en:[English]`
.. include:: ../gnu-make-legacy.rst .. include:: ../gnu-make-legacy.rst
安装前提 安装准备
===================== ========
编译 ESP-IDF 需要以下软件包: 编译 ESP-IDF 需要以下软件包:
- CentOS 7:: - CentOS 7::
sudo yum install gcc git wget make ncurses-devel flex bison gperf python pyserial python-pyelftools sudo yum install gcc git wget make ncurses-devel flex bison gperf python python2-cryptography
- Ubuntu and Debian:: - Ubuntu and Debian::
@ -24,53 +24,52 @@ Linux 平台工具链的标准设置 (传统 GNU Make)
.. note:: .. note::
一些旧的2014年之前Linux 发行版中使用的 ``pyserial`` 版本可能是 2.x ESP-IDF并不支持。 一些旧的2014年之前Linux 发行版中使用的 ``pyserial`` 版本可能是 2.x ESP-IDF 并不支持。这种情况下,请按照 :ref:`get-started-get-packages-legacy` 章节的介绍,使用 ``pip`` 安装软件包。
在这种情况下,请参考 :ref:`安装依赖的 Python 软件包 <get-started-get-packages-legacy>` 章节,通过 ``pip`` 工具来安装支持的版本。
工具链设置 工具链设置
=============== ==========
.. include:: /_build/inc/download-links.inc .. include:: /_build/inc/download-links.inc
Linux 版的 ESP32 工具链可以从 Espressif 的网站下载: Linux 版的 ESP32 工具链可以从 Espressif 的网站下载:
- 64-bit Linux - 64 Linux
|download_link_linux64| |download_link_linux64|
- 32-bit Linux - 32 Linux
|download_link_linux32| |download_link_linux32|
1. 下载完成后,将它解压到 ``~/esp`` 目录: : 1. 下载压缩文件之后,解压到 ``~/esp`` 目录中:
- 64-bit Linux: - 64 位 Linux
.. include:: /_build/inc/unpack-code-linux64.inc .. include:: /_build/inc/unpack-code-linux64.inc
- 32-bit Linux: - 32 位 Linux
.. include:: /_build/inc/unpack-code-linux32.inc .. include:: /_build/inc/unpack-code-linux32.inc
.. _setup-linux-toolchain-add-it-to-path-legacy: .. _setup-linux-toolchain-add-it-to-path-legacy:
2. 工具链将被解压到 ``~/esp/xtensa-esp32-elf/`` 目录 2. 工具链将被解压到 ``~/esp/xtensa-esp32-elf/`` 路径下
要使用工具链,你还需要在 ``~/.profile`` 文件中更新环境变量 ``PATH``。要使 ``xtensa-esp32-elf`` 在所有的终端会话中都有效,需要将下面这一行代码添加到你的 ``~/.profile`` 文件中: :: 为了正常使用工具链,您必须更新 ``~/.profile`` 文件中的 ``PATH`` 环境变量。此外,您还可以在 ``~/.profile`` 文件中增加以下代码,这样一来,所有终端窗口均可以使用 ``xtensa-esp32-elf``::
export PATH="$HOME/esp/xtensa-esp32-elf/bin:$PATH" export PATH="$HOME/esp/xtensa-esp32-elf/bin:$PATH"
或者你也可以给上面的命令创建一个别名。这样做的好处是,你只在需要使用它的时候才获取工具链。将下面这行代码添加到 ``~/.profile`` 文件中即可: :: 或者,您可以为上述命令创建一个别名。这样,您只有在需要时才可以使用工具链。如需设置别名,请将以下代码增加至您的 ``〜/ .profile`` 文件中::
alias get_esp32='export PATH="$HOME/esp/xtensa-esp32-elf/bin:$PATH"' alias get_esp32='export PATH="$HOME/esp/xtensa-esp32-elf/bin:$PATH"'
然后,当你需要使用工具链时,在命令行输入 ``get_esp32``,然后工具链会自动添加到你的 ``PATH`` 中。 这样,您可以在终端输入 ``get_esp32`` 命令将工具链添加至您的 ``PATH``,从而使用工具链。
.. note:: .. note::
如果将 ``/bin/bash`` 设置为登录 shell且同时存在 ``.bash_profile````.profile``,则更新 ``.bash_profile`` 。在 CentOS 环境下, ``alias`` 需要添加到 ``.bashrc`` 文件中。 如果您已``/bin/bash`` 设置为登录 shell且同时存在 ``.bash_profile````.profile``,则更新 ``.bash_profile`` 。在 CentOS 环境下, ``alias`` 需要添加到 ``.bashrc`` 文件中。
3. 退出并重新登录以使 ``.profile`` 更改生效。 运行以下命令来检查 ``PATH`` 设置是否正确 :: 3. 退出并重新登录以使 ``.profile`` 更改生效。运行以下命令来检查 ``PATH`` 设置是否正确 ::
printenv PATH printenv PATH
@ -79,29 +78,43 @@ Linux 版的 ESP32 工具链可以从 Espressif 的网站下载:
$ printenv PATH $ printenv PATH
/home/user-name/esp/xtensa-esp32-elf/bin:/home/user-name/bin:/home/user-name/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin /home/user-name/esp/xtensa-esp32-elf/bin:/home/user-name/bin:/home/user-name/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
除了 ``/home/user-name``,应该有具体的安装的主路径。 这里,您需要将 ``/home/user-name`` 替换为您的安装主目录。
权限问题 /dev/ttyUSB0 权限问题 /dev/ttyUSB0
------------------------------ ------------------------------
某些 Linux 版本可能在烧写 ESP32 时会出现 ``Failed to open port /dev/ttyUSB0`` 错误消息。 :ref:`可以通过将当前用户添加到拨出组来解决<linux-dialout-group-legacy>` 某些 Linux 版本可能在烧写 ESP32 时会出现 ``Failed to open port /dev/ttyUSB0`` 错误消息,这可以通过 :ref:`将当前用户添加到 dialout 组 <linux-dialout-group-legacy>` 来解决。
Arch Linux 用户 Arch Linux 用户
---------------- ----------------
在 Arch 中运行预编译的 gdb (xtensa-esp32-elf-gdb) 需要 ncurses 5但是 Arch 使用的是 ncurses 6。在 AUR_ 中向下兼容的库文件,可用于本地和 lib32 的配置: 在 Arch Linux 中运行预编译 gdb (xtensa-esp32-elf-gdb) 需要 ncurses 5但 Arch 会使用 ncurses 6。
不过AUR_ 中有针对原生和 lib32 配置的向下兼容库:
- https://aur.archlinux.org/packages/ncurses5-compat-libs/ - https://aur.archlinux.org/packages/ncurses5-compat-libs/
- https://aur.archlinux.org/packages/lib32-ncurses5-compat-libs/ - https://aur.archlinux.org/packages/lib32-ncurses5-compat-libs/
在安装这些软件包之前你可能需要将作者的公钥添加到你的钥匙圈中上面链接中的“Comments”部分有所叙述。 在安装这些软件包之前,您可能需要将作者的公钥添加到您的密钥环中,具体参考上方的 “注释” 部分。
此外,您也可以使用 crosstool-NG 编译一个链接到 ncurses 6 的 gdb。
或者,你也可以使用 crosstool-NG 编译一个链接 ncurses 6 的 gdb。
后续步骤 后续步骤
========== ==========
要继续设置开发环境,请参考 :ref:`get-started-get-esp-idf-legacy` 一节。 继续设置开发环境,请前往 :ref:`get-started-get-esp-idf-legacy` 章节。
相关文档
=================
.. toctree::
:maxdepth: 1
linux-setup-scratch
.. _AUR: https://wiki.archlinux.org/index.php/Arch_User_Repository .. _AUR: https://wiki.archlinux.org/index.php/Arch_User_Repository

View file

@ -1,16 +1,16 @@
************************************************** ********************************************************
从零开始设置 Mac OS 环境下的工具链 (传统 GNU Make) 从零开始设置 Mac OS 环境下的工具链(传统 GNU Make
************************************************** ********************************************************
:link_to_translation:`en:[English]` :link_to_translation:`en:[English]`
.. include:: ../gnu-make-legacy.rst .. include:: ../gnu-make-legacy.rst
.. note:: .. note::
安装工具链的标准流程可以通过阅读文档 :doc:`在 MacOS 上安装 ESP32 工具链 <macos-setup>` 来获得, :ref:`工具链的自定义设置 <get-started-customized-setup-legacy>` 章节会介绍哪些情况下我们必须要重新定义工具链 安装工具链的标准方法请见 :doc:`这里 <macos-setup>`。请参考 :ref:`工具链自定义设置 <get-started-customized-setup-legacy>` 章节,查看可能需要从头开始设置工具链的情况
安装必要的工具 安装准备
===================== ========
- 安装 pip:: - 安装 pip::
@ -21,11 +21,11 @@
``pip`` 稍后将用于安装 :ref:`必要的 Python 软件包 <get-started-get-packages-legacy>` ``pip`` 稍后将用于安装 :ref:`必要的 Python 软件包 <get-started-get-packages-legacy>`
从源代码编译工具链 从源代码编译工具链
================== ===================
- 安装依赖: - 安装依赖项:
- 安装 MacPorts_ 或者 homebrew_ 包管理器。MacPorts 需要安装完整的 XCode 软件,但是 homebrew 只需要安装 XCode 命令行工具即可。 - 安装 MacPorts_ 或 homebrew_ 安装包管理器。MacPorts 需要完整的 XCode 软件,而 homebrew 只需要安装 XCode 命令行工具即可。
.. _homebrew: https://brew.sh/ .. _homebrew: https://brew.sh/
.. _MacPorts: https://www.macports.org/install.php .. _MacPorts: https://www.macports.org/install.php
@ -38,37 +38,37 @@
brew install gnu-sed gawk binutils gperftools gettext wget help2man libtool autoconf automake brew install gnu-sed gawk binutils gperftools gettext wget help2man libtool autoconf automake
创建大小写敏感的文件系统镜像:: - 创建一个文件系统镜像(区分大小写)::
hdiutil create ~/esp/crosstool.dmg -volname "ctng" -size 10g -fs "Case-sensitive HFS+" hdiutil create ~/esp/crosstool.dmg -volname "ctng" -size 10g -fs "Case-sensitive HFS+"
挂载:: - 挂载::
hdiutil mount ~/esp/crosstool.dmg hdiutil mount ~/esp/crosstool.dmg
创建指向你工作目录的符号链接:: - 创建指向您工作目录的符号链接::
mkdir -p ~/esp mkdir -p ~/esp
ln -s /Volumes/ctng ~/esp/ctng-volume ln -s /Volumes/ctng ~/esp/ctng-volume
进入新创建的工作目录:: - 前往新创建的目录 ::
cd ~/esp/ctng-volume cd ~/esp/ctng-volume
下载 ``crosstool-NG`` 然后编译: - 下载并编译 ``crosstool-NG``
.. include:: /_build/inc/scratch-build-code.inc .. include:: /_build/inc/scratch-build-code.inc
编译工具链:: - 编译工具链::
./ct-ng xtensa-esp32-elf ./ct-ng xtensa-esp32-elf
./ct-ng build ./ct-ng build
chmod -R u+w builds/xtensa-esp32-elf chmod -R u+w builds/xtensa-esp32-elf
编译得到的工具链会被保存到 ``~/esp/ctng-volume/crosstool-NG/builds/xtensa-esp32-elf``根据 :ref:`Mac OS 下设置环境变量的标准方法 <setup-macos-toolchain-add-it-to-path-legacy>` 的介绍,将工具链添加到 ``PATH`` 中。 编译得到的工具链会被保存到 ``~/esp/ctng-volume/crosstool-NG/builds/xtensa-esp32-elf``请按照 :ref:`标准设置指南 <setup-macos-toolchain-add-it-to-path-legacy>` 的介绍,将工具链添加到 ``PATH``
下一步 后续步骤
====== ========
继续设置开发环境,请前往 :ref:`获取 ESP-IDF <get-started-get-esp-idf-legacy>` 章节。 继续设置开发环境,请前往 :ref:`get-started-get-esp-idf-legacy` 章节。

View file

@ -1,12 +1,12 @@
************************************************ ************************************************
在 Mac OS 上安装 ESP32 工具链 (传统 GNU Make) Mac OS 平台工具链的标准设置(传统 GNU Make
************************************************ ************************************************
:link_to_translation:`en:[English]` :link_to_translation:`en:[English]`
.. include:: ../gnu-make-legacy.rst .. include:: ../gnu-make-legacy.rst
安装准备 安装准备
================ ========
- 安装 pip:: - 安装 pip::
@ -14,10 +14,10 @@
.. note:: .. note::
``pip`` 稍后将用于安装 :ref:`必要的 Python 软件包 <get-started-get-packages-legacy>`。 ``pip`` 稍后将用于安装 :ref:`所需 Python 包 <get-started-get-packages-legacy>`。
安装工具链 工具链设置
=============== ==========
.. include:: /_build/inc/download-links.inc .. include:: /_build/inc/download-links.inc
@ -33,25 +33,25 @@ Mac OS 版本的 ESP32 工具链可以从以下地址下载:
工具链将被解压到 ``~/esp/xtensa-esp32-elf/`` 路径下。 工具链将被解压到 ``~/esp/xtensa-esp32-elf/`` 路径下。
``~/.profile`` 文件中更新 ``PATH`` 环境变量以使用工具链。为了使 ``xtensa-esp32-elf`` 在各种终端会话中都可用,在 ``~/.profile`` 文件中加上以下指令:: 为了正常使用工具链,您必须更新 ``~/.profile`` 文件中的 ``PATH`` 环境变量。此外,您还可以在 ``~/.profile`` 文件中增加以下代码,这样一来,所有终端窗口均可以使用 ``xtensa-esp32-elf``::
export PATH=$HOME/esp/xtensa-esp32-elf/bin:$PATH export PATH=$HOME/esp/xtensa-esp32-elf/bin:$PATH
或者,您可以为上述命令创建一个别名。这样只有执行以下指令时工具链才能被使用。将下面的指令添加到您的 ``〜/ .profile`` 文件中:: 或者,您可以为上述命令创建一个别名。这样,您只有在需要时才可以使用工具链。如需设置别名,请将以下代码增加至您的 ``〜/ .profile`` 文件中::
alias get_esp32="export PATH=$HOME/esp/xtensa-esp32-elf/bin:$PATH" alias get_esp32="export PATH=$HOME/esp/xtensa-esp32-elf/bin:$PATH"
当需要使用工具链时,在命令行里输入 ``get_esp32``,就可以将工具链添加到 ``PATH`` 中。 这样,您可以在终端输入 ``get_esp32`` 命令将工具链添加至您的 ``PATH``,从而使用工具链。
下一步 后续步骤
========== ========
前往 :ref:`get-started-get-esp-idf-legacy` 继续配置开发环境 继续设置开发环境,请前往 :ref:`get-started-get-esp-idf-legacy` 章节
相关文档 相关文档
================= ========
.. toctree:: .. toctree::
:maxdepth: 1 :maxdepth: 1

View file

@ -1,20 +1,20 @@
通过 make 指令创建和烧录项目 (传统 GNU Make) 通过 make 指令创建和烧录项目(传统 GNU Make
============================================ =================================================
:link_to_translation:`en:[English]` :link_to_translation:`en:[English]`
.. include:: ../gnu-make-legacy.rst .. include:: ../gnu-make-legacy.rst
寻找项目 寻找项目
----------------- --------
`esp-idf-template <https://github.com/espressif/esp-idf-template>`_ 项目一样ESP-IDF 在 Github 上的 :idf:`examples` 目录下也有示例项目。 除了 `esp-idf-template <https://github.com/espressif/esp-idf-template>`_ 项目模版外ESP-IDF 还在 GitHub 仓库中的 :idf:`examples` 目录下提供多个示例项目。
找到需要的项目后,切换到其目录,然后可以对其进行配置和构建 请找到并进入您想要的项目,开始配置、构建该项目
配置项目 配置项目
------------------------ --------
:: ::
@ -22,53 +22,58 @@
编译项目 编译项目
---------------------- --------
:: ::
make all make all
... 该命令将配置 app 和 bootloader 并根据配置生成分区表。 该命令将配置 app 和 bootloader并根据配置生成分区表。
烧录项目 烧录项目
--------------------- --------
``make all`` 结束后,系统将打印一命令行提示您如何使用 esptool.py 烧录芯片。用户也可以通过以下指令进行烧录:: ``make all`` 完成后将打印一行命令,提示您如何使用 esptool.py 烧录芯片。不过,您可以使用以下命令进行烧录::
make flash make flash
这种方法将烧录整个项目(包括 app, bootloader 和分割表)到芯片中。通过命令 `make menuconfig` 可以配置串口。 该命令可以将整个项目(包括 app、bootloader 和分区表)烧录至新芯片。此外,如果分区表中存在 ota_data则该命令还会同时将初始 ota_data 烧录至芯片。
该命令允许您直接从 factory 分区中运行新加载的 app如果 factory 分区不存在,则从第一个 OTA 分区开始运行)。
您可以使用 ``make menuconfig`` 配置串口的烧录。
运行 ``make flash`` 之前无需运行 ``make all``。运行 ``make flash`` 将自动重建烧录所需的一切。 运行 ``make flash`` 之前无需单独运行 ``make all````make flash`` 命令本身就可以自动构建所需的文件
仅编译和烧录应用程序 仅编译和烧录应用程序
--------------------------------- --------------------
最初的烧录之后,用户可以仅创建烧录 app不烧录 bootloader 和分区表: 首次烧录完成后,您可以只希望烧录并编译应用程序,而不再包括 bootloader 和分区表。这种情况可以使用以下命令:
* ``make app`` - 仅创建应用程序。 * ``make app`` -- 仅编译应用程序
* ``make app-flash`` - 仅烧录应用程序 * ``make app-flash`` -- 仅烧录应用程序
需要时 ``make app-flash`` 指令将自动重建 app。 ``make app-flash`` -- 在有需要时自动重新编译应用程序
如果没有变化,每次都重新烧录、编译 bootloader 和分区表也没有坏处。
如果 bootloader 和分区表不变的话,对他们进行重新烧录并不会有负面影响。
分区表 分区表
------------------- ------
编译完项目后,"build" 目录将包含一个名为 "my_app.bin" 的二进制文件。这是一个可由 bootloader 加载的 ESP32 映像二进制文件。 项目编译完成后,"build" 目录下将出现一个名为 "my_app.bin" (例)的二进制文件。这是一个可由 bootloader 加载的 ESP32 映像文件。
一个 ESP32 flash 可以包含多个应用程序,以及多种数据(校准数据,文件系统,参数存储等)。因此,分区表烧录在 flash 偏移地址 0x8000 的地方 ESP32 的一块 flash 可以包含多个应用程序,以及多种数据(校准数据、文件系统、参数存储等)。因此,在向 flash 烧录分区表时,通常保留 0x8000 的偏移量
分区表中的每个条目都有一个名称标签类型app数据或其他子类型和闪存中分区表被存放的偏移量。 分区表中的每个条目都有名称标签、类型app、数据或其他、子类型及在 flash 中的偏移量。
使用分区表最简单的方法是 `make menuconfig` 并选择一个简单的预定义分区表: 使用分区表最简便的方法是:运行 ``make menuconfig``,选择一个预定义分区表:
* "Single factory app, no OTA" * "Single factory app, no OTA"
* "Factory app, two OTA definitions" * "Factory app, two OTA definitions"
在这两种情况下,出厂应用程序的烧录偏移为 0x10000。运行 `make partition_table`,可以打印分区表摘要。 上述两种情况中factory app 在 flash 中的烧录偏移地址均为 0x10000。运行 ``make partition_table`` 命令可以打印分区表摘要。
更多有关 :doc:`分区表 <../api-guides/partition-tables>` 及自定义分区表的内容,请见 :doc:`相关文档 <../api-guides/partition-tables>`
更多关于 :doc:`分区表 <../api-guides/partition-tables>` 的信息,以及如何创建自定义分区表,可以查看 :doc:`文档 <../api-guides/partition-tables>`

View file

@ -1 +1,28 @@
.. include:: ../../en/get-started-legacy/toolchain-setup-scratch.rst .. _get-started-customized-setup-legacy:
***********************************************
工具链自定义设置(传统 GNU Make 系统)
***********************************************
除了从乐鑫官网(请见 :ref:`get-started-setup-toolchain-legacy`)下载二进制工具链外,您还可以自行编译工具链。
.. include:: ../gnu-make-legacy.rst
如无特殊需求,建议直接使用我们提供的预编译二进制工具链。不过,您可以在以下情况考虑自行编译工具链:
- 需要定制工具链编译配置
- 需要使用其他 GCC 版本(如 4.8.5
- 需要破解 gcc、newlib 或 libstdc++
- 有相关兴趣或时间充裕
- 不信任从网站下载的 bin 文件
如需自行编译工具链,请查看以下文档:
.. toctree::
:maxdepth: 1
windows-setup-scratch
linux-setup-scratch
macos-setup-scratch

View file

@ -1 +1,122 @@
.. include:: ../../en/get-started-legacy/windows-setup-scratch.rst ******************************************************
从零开始设置 Windows 环境下的工具链(传统 GNU Make
******************************************************
.. include:: ../gnu-make-legacy.rst
手动安装所有工具能更好地控制整个安装流程,同时也方便高阶用户进行自定义安装。此外,经验不足的用户还可以参考 :doc:`预编译环境 <windows-setup>` 中的步骤进行准备。
使用预编译环境对工具链进行快速标准设置,请参照 :doc:`windows-setup`
.. _configure-windows-toolchain-from-scratch-legacy:
从零开始配置工具链和环境
==============================================
本流程包括:首先,安装 MSYS2_其次安装 ESP-IDF 所需的 Python 工具包;最后,下载并安装 Xtensa 工具链。
* 请前往 MSYS2_ 安装器页面,并下载 ``msys2-i686-xxxxxxx.exe`` 安装器(我们仅支持 32-bit MSYS 环境32 位和 64 位 Window 均可使用)。截止至本文最新更新之时,最新版安装器为 ``msys2-i686-20161025.exe``
* 完成所有安装步骤。**最后一步时,请不要勾选 "Run MSYS2 32-bit now"。**
* 安装完成后,请从“开始”菜单中找到 "MSYS2 MinGW 32-bit",运行“命令提示符”窗口。
* 为什么要特别打开这个终端窗口MSYS2 会对不同环境进行区分。默认的 "MSYS" 环境与 Cygwin 相仿,会为 Windows 系统的 API 调用增加一个转换层。但为了使用支持 COM 端口的原生 Python我们需要准备好 "MinGW" 环境。
* GitHub 上的 ESP-IDF 仓库的 `tools` 目录下可以找到名为 ``windows_install_prerequisites.sh`` 的脚本。如果您还没有本地 ESP-IDF 副本,也可以从以下地址进行下载(请下载 raw 格式)::idf_raw:`tools/windows/windows_install_prerequisites.sh`,并将其保存至您的电脑。
* 请在 MSYS2 终端窗口中指定该脚本的保存路径。注意,路径格式与 Window 路径相同,但需使用正斜杠 (``/``) 而不是反斜杠 (``\``)。例 ``C:/Users/myuser/Downloads/windows_install_prerequisites.sh``。当然,您也可以直接打开查看该脚本的内容。
* ``windows_install_prerequisites.sh`` 脚本将帮您下载并安装支持 ESP-IDF 的软件包和 ESP32 工具链。
疑难解答
~~~~~~~~~~~~~~~
* MSYS 可能在脚本运行过程中进行自动升级,导致无法使用。此时,您会看到以下错误信息::
*** fatal error - cygheap base mismatch detected - 0x612E5408/0x612E4408
这个问题很大可能是由于 cygwin DLL 版本不兼容。
这种情况下,请完全关闭终端窗口(相当于终止所有进程),并重新打开一个窗口。然后,请在新窗口中重新运行 ``windows_install_prerequisites.sh`` (小技巧:您可以使用“向上箭头”找到之前运行的命令)。此时,更新流程将重启。
* 注意MSYS2 是一个“滚动”发行版,因此安装脚本可能会为您安装比“预编译环境”中更新的软件包。因此,如果遇到与 MSYS2 安装包有关的错误,请前往 `MSYS2-packages 问题列表`_ 页面寻找答案。如果未找到所需答案,请 `提交一个 IDF Issue`_
中国地区的 MSYS2 镜像
~~~~~~~~~~~~~~~~~~~~~~
中国地区有一些(非官方)的 MSYS2 镜像,这可以大幅提高中国地区的下载速度。
如需添加这些镜像,请在运行安装脚本前修改以下两个 MSYS2 镜像列表文件。镜像文件的保存路径为 ``/etc/pacman.d``,比如 ``c:\msys2\etc\pacman.d``
请在 ``mirrorlist.mingw32`` 最上方增加如下语句::
Server = https://mirrors.ustc.edu.cn/msys2/mingw/i686/
Server = http://mirror.bit.edu.cn/msys2/REPOS/MINGW/i686
请在 ``mirrorlist.msys`` 最上方增加如下语句::
Server = http://mirrors.ustc.edu.cn/msys2/msys/$arch
Server = http://mirror.bit.edu.cn/msys2/REPOS/MSYS2/$arch
HTTP 代理
~~~~~~~~~~
您可以在运行“设置脚本”之前,在终端中设置 ``http_proxy`` 变量,从而允许使用 HTTP 代理下载 MSYS 和 PIP::
export http_proxy='http://http.proxy.server:PORT'
或者修改证书::
export http_proxy='http://user:password@http.proxy.server:PORT'
如需始终用代理使用 MSYS请在 MSYS 目录中增加 ``/etc/profile``
其他设置:下载工具链
============================================
.. include:: /_build/inc/download-links.inc
如果您已经安装了 MSYS2或者想要以不同的方式执行操作您可以在此处下载工具链
|download_link_win32|
.. note::
如果您已完成了 :ref:`configure-windows-toolchain-from-scratch-legacy` 中介绍的所有步骤,则已经拥有了工具链,这里无需重复下载。
.. important::
仅拥有工具链 *尚无法* 让您在 Windows 中使用 ESP-IDF。除此之外您还至少需要安装 GNU make、bash 和 sed。上述环境已经包括这些配置此外还有一个主机编译器这样才能使用 menuconfig
后续步骤
==========
继续设置开发环境,请前往 :ref:`get-started-get-esp-idf-legacy` 章节。
.. _updating-existing-windows-environment-legacy:
更新环境
========================
当 IDF 有更新时,有时需要安装新的工具链或为 Windows MSYS2 环境添加新的系统要求。
此时,您无需重新配置环境,仅需更新现有 Windows 环境和工具链即可。
- 将 IDF 更新至您希望的版本。
- 请运行 IDF 仓库中的 ``tools/windows/windows_install_prerequisites.sh`` 脚本。该脚本将帮您安装所有新的软件包,并下载更新工具链至最新版本。
注意,该脚本在更新 MSYS2 时也会遇到 疑难解答_ 中介绍的问题。
如需要同时支持多个 IDF 版本,您可以在不同的目录下配置独立的 MSYS2 环境。或者,您还可以下载多个工具链,并将其解压缩到不同的目录下,然后使用 PATH 环境变量指定默认工具链。
.. _MSYS2: https://msys2.github.io/
.. _MSYS2-packages 问题列表: https://github.com/Alexpux/MSYS2-packages/issues/
.. _提交一个 IDF Issue: https://github.com/espressif/esp-idf/issues/new

View file

@ -1,63 +1,67 @@
********************************************** **********************************************
Windows 平台工具链的标准设置 (传统 GNU Make) Windows 平台工具链的标准设置(传统 GNU Make
********************************************** **********************************************
:link_to_translation:`en:[English]` :link_to_translation:`en:[English]`
.. include:: ../gnu-make-legacy.rst .. include:: ../gnu-make-legacy.rst
引言 概述
============ ====
Windows 没有内置的 "make" 环境,因此如果要安装工具链,你需要一个 GNU 兼容环境。我们这里使用 MSYS2_ 来提供该环境。你不需要一直使用这个环境(你可以使用 :doc:`Eclipse <eclipse-setup>` 或其它前端工具),但是它是在后台运行的 Windows 系统没有内置的 "make" 环境,所以除了安装工具链之外,您还需要一个兼容 GNU 的环境。这里,我们使用 MSYS2_ 环境兼容 GNU。您无需一直使用这个环境比如您可以使用 :doc:`Eclipse <eclipse-setup>` 或其他前端,仅需在后台运行 MSYS2_ 即可
工具链的设置
===============
快速设置的方法是从 dl.espressif.com 下载集成在一起的工具链和 MSYS2 压缩文件: 工具链设置
==========
https://dl.espressif.com/dl/esp32_win32_msys2_environment_and_toolchain-20181001.zip 最简便的工具链设置方法是从下方地址下载 Windows 多合一工具链和 MSYS2 压缩包文件:
将 zip 压缩文件解压到 ``C:\`` (或其它路径,这里假设是 ``C:\``),它会使用预先准备的环境创建一个 ``msys32`` 目录。 https://dl.espressif.com/dl/esp32_win32_msys2_environment_and_toolchain-20190611.zip
检出 请将压缩包文件解压至 ``C:\``(或其他目录,但本文档中以 ``C:\`` 为例),该文件将为您创建一个带有预配置环境的 ``msys32`` 目录。
============
运行 ``C:\msys32\mingw32.exe`` 打开一个 MSYS2 的终端窗口。该窗口的环境是一个 bash shell。创建一个 ``esp`` 目录作为开发 ESP32 应用的默认地址。运行指令 ::
开始尝试
========
请运行 ``C:\msys32\mingw32.exe`` 文件,打开一个 MSYS2 MINGW32 终端窗口。该窗口的环境为 bash shell。请创建一个名为 ``esp`` 的文件夹,作为 ESP32 应用程序开发的默认目录。您可以使用以下命令创建文件夹::
mkdir -p ~/esp mkdir -p ~/esp
输入 ``cd ~/esp`` 就进入到新创建的目录。如果没有错误信息出现则表明此步骤已完成。 您还可以通过 ``cd ~/esp`` 命令,进入刚刚创建的文件夹。如无其他问题,本步骤到此结束。
.. figure:: ../../_static/msys2-terminal-window.png .. figure:: ../../_static/msys2-terminal-window.png
:align: center :align: center
:alt: MSYS2 MINGW32 shell window :alt: MSYS2 MINGW32 shell 窗口
:figclass: align-center :figclass: align-center
MSYS2 终端窗口 MSYS2 MINGW32 shell 窗口
请在后续步骤中,使用本窗口配置 ESP32 的开发环境。
后续步骤将会使用这个窗口来为 ESP32 设置开发环境。
后续步骤 后续步骤
========== ==========
要继续设置开发环境,请参考 :ref:`get-started-get-esp-idf-legacy`节。 继续设置开发环境,请前往 :ref:`get-started-get-esp-idf-legacy`节。
更新环境 更新环境
======================== ========
当 IDF 更新时,有时需要新的工具链,或者将新的需求添加到 Windows MSYS2 环境中。要将旧版本的预编译环境中的数据移动到新版本 当 IDF 有更新时,有时需要安装新的工具链或为 Windows MSYS2 环境添加新的要求。如需将旧版本预编译环境中的数据迁移至新版本,您可以
- 把旧的 MSYS2 环境(即 ``C:\msys32``)移动/重命名为不同的目录(即 ``C:\msys32_old``)。 1. 复制旧的 MSYS2 环境(即 ``C:\msys32``),并将其移动/重命名到不同目录下(即 ``C:\msys32_old``)。
- 按照前文所述步骤下载新的预编译环境。 2. 使用上述步骤,下载新的预编译环境。
- 将新的 MSYS2 环境解压缩到 ``C:\msys32`` (或其他位置)。 3. 将新的 MSYS2 环境解压缩至 ``C:\msys32`` (或您指定的其他位置)。
- 找到旧的 ``C:\msys32_old\home`` 目录并把它移到 ``C:\msys32`` 4. 找到旧的 ``C:\msys32_old\home`` 文件夹,并将其移动至 ``C:\msys32``
- 如果你不再需要 ``C:\msys32_old`` 可以将它删除 5. 此时,如无其他需要,您可以删除旧的 ``C:\msys32_old\home`` 文件夹
你可以在系统上拥有独立的不同的 MSYS2 环境,前提是在不同的目录中。 注意,您可以在电脑中安装多个不同的 MSYS2 环境,仅需将它们保存在不同的路径下即可。
此外,您还可以 :ref:`直接更新现有环境(无需下载新的版本)<updating-existing-windows-environment-legacy>`,但步骤更加复杂。
相关文档 相关文档
================= ========
.. toctree:: .. toctree::
:maxdepth: 1 :maxdepth: 1

View file

@ -1,3 +1,3 @@
.. note:: Since ESP-IDF V4.0, the default build system is based on CMake. This documentation is for the legacy build system based on GNU Make. Support for this build system may be removed in future major releases. .. note:: ESP-IDF V4.0 及之后版本的默认构建系统为 CMake。本文档主要针对之前基于 GNU Make 的传统构建系统。请注意,未来,我们可能不会继续支持基于 GNU Make 的构建系统。