mirror of
https://github.com/espressif/esp-idf.git
synced 2025-12-15 19:34:03 +00:00
Merge branch 'feature/improve_doc_link_check' into 'master'
docs: fix broken links and re-enable linkchecker Closes IDF-2640 See merge request espressif/esp-idf!17919
This commit is contained in:
@@ -444,7 +444,7 @@ Start 子命令语法:
|
||||
6. 双击创建的端口,会打开此端口的视图。
|
||||
7. 单击 ``Start/Stop Streaming`` 按钮,数据将会被加载。
|
||||
8. 使用 ``Zoom Out``,``Zoom In`` 和 ``Zoom Fit`` 按钮来查看数据。
|
||||
9. 有关设置测量光标和其他的功能,请参阅 `Impulse 官方文档 <http://toem.de/index.php/projects/impulse>`_ 。
|
||||
9. 有关设置测量光标和其他的功能,请参阅 `Impulse 官方文档 <https://toem.de/index.php/projects/impulse>`_ 。
|
||||
|
||||
.. note::
|
||||
|
||||
@@ -459,7 +459,7 @@ Gcov(源代码覆盖)
|
||||
Gcov 和 Gcovr 简介
|
||||
""""""""""""""""""""""""
|
||||
|
||||
源代码覆盖率显示程序运行时间内执行的每一条程序执行路径的数量和频率。`Gcov <https://en.wikipedia.org/wiki/Gcov>`_ 是一款 GCC 工具,与编译器协同使用时,可生成日志文件,显示源文件每行的执行次数。`Gcovr <https://gcovr.com>`_ 是管理 Gcov 和生成代码覆盖率总结的工具。
|
||||
源代码覆盖率显示程序运行时间内执行的每一条程序执行路径的数量和频率。`Gcov <https://en.wikipedia.org/wiki/Gcov>`_ 是一款 GCC 工具,与编译器协同使用时,可生成日志文件,显示源文件每行的执行次数。`Gcovr <https://gcovr.com/>`_ 是管理 Gcov 和生成代码覆盖率总结的工具。
|
||||
|
||||
一般来说,使用 Gcov 在主机上编译和运行程序会经过以下步骤:
|
||||
|
||||
@@ -553,7 +553,7 @@ GDB 可以用来在 :cpp:func:`esp_gcov_dump` 上设置断点,然后使用 ``g
|
||||
|
||||
一旦代码覆盖数据被转储,``.gcno``、``.gcda`` 和源文件可以用来生成代码覆盖报告。该报告会显示源文件中每行被执行的次数。
|
||||
|
||||
Gcov 和 Gcovr 都可以用来生成代码覆盖报告。安装 Xtensa 工具链时会一起安装 Gcov,但 Gcovr 可能需要单独安装。关于如何使用 Gcov 或 Gcovr,请参考 `Gcov 文档 <https://gcc.gnu.org/onlinedocs/gcc/Gcov.html>`_ 和 `Gcovr 文档 <http://gcovr.com/>`_。
|
||||
Gcov 和 Gcovr 都可以用来生成代码覆盖报告。安装 Xtensa 工具链时会一起安装 Gcov,但 Gcovr 可能需要单独安装。关于如何使用 Gcov 或 Gcovr,请参考 `Gcov 文档 <https://gcc.gnu.org/onlinedocs/gcc/Gcov.html>`_ 和 `Gcovr 文档 <https://gcovr.com/>`_。
|
||||
|
||||
在工程中添加 Gcovr 构建目标
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
@@ -1016,7 +1016,7 @@ CMake 在许多开源的 C/C++ 项目中广泛使用,用户可以在自己的
|
||||
|
||||
实际的案例请参考 :example:`build_system/cmake/import_lib`。请注意,导入第三方库所需要做的工作可能会因库的不同而有所差异。建议仔细阅读第三方库的文档,了解如何将其导入到其它项目中。阅读第三方库的 CMakeLists.txt 文件以及构建结构也会有所帮助。
|
||||
|
||||
用这种方式还可以将第三方库封装成 ESP-IDF 的组件。例如 :component:`mbedtls` 组件就是封装了 `mbedtls 项目 <https://github.com/ARMmbed/mbedtls>`_ 得到的。详情请参考 :component_file:`mbedtls 组件的 CMakeLists.txt 文件 <mbedtls/CMakeLists.txt>`。
|
||||
用这种方式还可以将第三方库封装成 ESP-IDF 的组件。例如 :component:`mbedtls` 组件就是封装了 `mbedtls 项目 <https://github.com/Mbed-TLS/mbedtls>`_ 得到的。详情请参考 :component_file:`mbedtls 组件的 CMakeLists.txt 文件 <mbedtls/CMakeLists.txt>`。
|
||||
|
||||
每当使用 ESP-IDF 构建系统时,CMake 变量 ``ESP_PLATFORM`` 都会被设置为 1。如果要在通用的 CMake 代码加入 IDF 特定的代码时,可以采用 ``if (ESP_PLATFORM)`` 的形式加以分隔。
|
||||
|
||||
@@ -1454,7 +1454,7 @@ CMake 中不可用的功能
|
||||
- ``COMPONENT_OBJS``:以前,可以以目标文件列表的方式指定组件源,现在,可以通过 ``COMPONENT_SRCS`` 以源文件列表的形式指定组件源。
|
||||
- ``COMPONENT_OBJEXCLUDE``:已被 ``COMPONENT_SRCEXCLUDE`` 替换。用于指定源文件(绝对路径或组件目录的相对路径)。
|
||||
- ``COMPONENT_EXTRA_CLEAN``:已被 ``ADDITIONAL_MAKE_CLEAN_FILES`` 属性取代,注意,:ref:`CMake 对此项功能有部分限制 <ADDITIONAL_MAKE_CLEAN_FILES_note>`。
|
||||
- ``COMPONENT_OWNBUILDTARGET`` & ``COMPONENT_OWNCLEANTARGET``:已被 CMake `外部项目 <ExternalProject>`_ 替代,详细内容请参阅 :ref:`component-build-full-override`。
|
||||
- ``COMPONENT_OWNBUILDTARGET`` & ``COMPONENT_OWNCLEANTARGET``:已被 CMake `外部项目 <ExternalProject_>` 替代,详细内容请参阅 :ref:`component-build-full-override`。
|
||||
- ``COMPONENT_CONFIG_ONLY``:已被 ``register_config_only_component()`` 函数替代,请参阅 :ref:`config_only_component`。
|
||||
- ``CFLAGS``、``CPPFLAGS``、``CXXFLAGS``:已被相应的 CMake 命令替代,请参阅 :ref:`component_build_control`。
|
||||
|
||||
|
||||
@@ -530,11 +530,13 @@ ESP-BLE-MESH 常见问题手册
|
||||
3.2 Wi-Fi 和 ESP-BLE-MESH 共存时,为什么 Wi-Fi 吞吐量很低?
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
未搭载 PSRAM 的 `ESP32-DevKitC <../../hw-reference/get-started-devkitc>`_ 开发板,Wi-Fi 和 ESP-BLE-MESH 共存可以正常运行,但是吞吐率较低。当 Wi-Fi 和 ESP-BLE-MESH 共存时,搭载 PSRAM 的 ESP32-DevKitC 速率可以稳定在 1 Mbps 以上。
|
||||
.. only:: esp32
|
||||
|
||||
未搭载 PSRAM 的 :doc:`ESP32-DevKitC <../../hw-reference/esp32/get-started-devkitc>` 开发板,Wi-Fi 和 ESP-BLE-MESH 共存可以正常运行,但是吞吐率较低。当 Wi-Fi 和 ESP-BLE-MESH 共存时,搭载 PSRAM 的 ESP32-DevKitC 速率可以稳定在 1 Mbps 以上。
|
||||
|
||||
应使能 menuconfig 中的一些配置来支持 PSRAM。
|
||||
|
||||
- :code:`ESP32-specific --> Support for external,SPI-connected RAM --> Try to allocate memories of Wi-Fi and LWIP...`
|
||||
- :code:`{IDF_TARGET_NAME}-specific --> Support for external,SPI-connected RAM --> Try to allocate memories of Wi-Fi and LWIP...`
|
||||
- :code:`Bluetooth --> Bluedriod Enable --> BT/BLE will first malloc the memory from the PSRAM`
|
||||
- :code:`Bluetooth --> Bluedriod Enable --> Use dynamic memory allocation in BT/BLE stack.`
|
||||
- :code:`Bluetooth --> Blutooth controller --> BLE full scan feature supported.`
|
||||
|
||||
@@ -229,9 +229,9 @@ ESP-BLE-MESH 示例
|
||||
ESP-BLE-MESH 演示视频
|
||||
======================
|
||||
|
||||
* `Provisioning of ESP-BLE-MESH nodes using Smartphone App <http://download.espressif.com/BLE_MESH/Docs4Customers/esp-ble-mesh-demo.mp4>`_
|
||||
* `Espressif Fast Provisioning using ESP-BLE-MESH App <http://download.espressif.com/BLE_MESH/BLE_Mesh_Demo/V0.4_Demo_Fast_Provision/ESP32_BLE_Mesh_Fast_Provision.mp4>`_
|
||||
* `Espressif ESP-BLE-MESH and Wi-Fi Coexistence <http://download.espressif.com/BLE_MESH/BLE_Mesh_Demo/V0.5_Demo_Coexistence/ESP_BLE_MESH_%26_WIFI_Coexistence.mp4>`_
|
||||
* `Provisioning of ESP-BLE-MESH nodes using Smartphone App <https://download.espressif.com/BLE_MESH/Docs4Customers/esp-ble-mesh-demo.mp4>`_
|
||||
* `Espressif Fast Provisioning using ESP-BLE-MESH App <https://download.espressif.com/BLE_MESH/BLE_Mesh_Demo/V0.4_Demo_Fast_Provision/ESP32_BLE_Mesh_Fast_Provision.mp4>`_
|
||||
* `Espressif ESP-BLE-MESH and Wi-Fi Coexistence <https://download.espressif.com/BLE_MESH/BLE_Mesh_Demo/V0.5_Demo_Coexistence/ESP_BLE_MESH_%26_WIFI_Coexistence.mp4>`_
|
||||
|
||||
|
||||
ESP-BLE-MESH 常见问题手册
|
||||
@@ -262,15 +262,15 @@ ESP-BLE-MESH 常见问题手册
|
||||
蓝牙 SIG 文档
|
||||
-------------
|
||||
|
||||
- `BLE Mesh Profile Specification <https://www.bluetooth.org/docman/handlers/downloaddoc.ashx?doc_id=457092>`_
|
||||
- `BLE Mesh Model Specification <https://www.bluetooth.org/docman/handlers/downloaddoc.ashx?doc_id=457091>`_
|
||||
- `An Intro to Bluetooth Mesh Part 1 <https://blog.bluetooth.com/an-intro-to-bluetooth-mesh-part1>`_ / `Part 2 <https://blog.bluetooth.com/an-intro-to-bluetooth-mesh-part2>`__
|
||||
- `The Fundamental Concepts of Bluetooth Mesh Networking, Part 1 <https://blog.bluetooth.com/the-fundamental-concepts-of-bluetooth-mesh-networking-part-1>`_ / `Part 2 <https://blog.bluetooth.com/the-fundamental-concepts-of-bluetooth-mesh-networking-part-2>`__
|
||||
- `Bluetooth Mesh Networking: Friendship <https://blog.bluetooth.com/bluetooth-mesh-networking-series-friendship>`_
|
||||
- `Management of Devices in a Bluetooth Mesh Network <https://blog.bluetooth.com/management-of-devices-bluetooth-mesh-network>`_
|
||||
- `Bluetooth Mesh Security Overview <https://blog.bluetooth.com/bluetooth-mesh-security-overview>`_
|
||||
- `Provisioning a Bluetooth Mesh Network Part 1 <https://blog.bluetooth.com/provisioning-a-bluetooth-mesh-network-part-1>`_ / `Part 2 <https://blog.bluetooth.com/provisioning-a-bluetooth-mesh-network-part-2>`__
|
||||
- `BLE Mesh Core Specification <https://www.bluetooth.org/docman/handlers/downloaddoc.ashx?doc_id=429633>`_
|
||||
- `BLE Mesh Model Specification <https://www.bluetooth.org/docman/handlers/downloaddoc.ashx?doc_id=429634>`_
|
||||
- `An Intro to Bluetooth Mesh Part 1 <https://www.bluetooth.com/blog/an-intro-to-bluetooth-mesh-part1>`_ / `Part 2 <https://www.bluetooth.com/blog/an-intro-to-bluetooth-mesh-part2>`__
|
||||
- `The Fundamental Concepts of Bluetooth Mesh Networking, Part 1 <https://www.bluetooth.com/blog/the-fundamental-concepts-of-bluetooth-mesh-networking-part-1>`_ / `Part 2 <https://www.bluetooth.com/blog/the-fundamental-concepts-of-bluetooth-mesh-networking-part-2>`__
|
||||
- `Bluetooth Mesh Networking: Friendship <https://www.bluetooth.com/blog/bluetooth-mesh-networking-series-friendship>`_
|
||||
- `Management of Devices in a Bluetooth Mesh Network <https://www.bluetooth.com/blog/management-of-devices-bluetooth-mesh-network>`_
|
||||
- `Bluetooth Mesh Security Overview <https://www.bluetooth.com/blog/bluetooth-mesh-security-overview>`_
|
||||
- `Provisioning a Bluetooth Mesh Network Part 1 <https://www.bluetooth.com/blog/provisioning-a-bluetooth-mesh-network-part-1>`_ / `Part 2 <https://www.bluetooth.com/blog/provisioning-a-bluetooth-mesh-network-part-2>`__
|
||||
|
||||
|
||||
.. _ESP32-DevKitC: https://www.espressif.com/en/products/hardware/esp32-devkitc/overview
|
||||
.. _ESP32-DevKitC: https://www.espressif.com/en/products/devkits/esp32-devkitc/overview
|
||||
.. _ESP-WROVER-KIT: https://www.espressif.com/en/products/hardware/esp-wrover-kit/overview
|
||||
|
||||
@@ -214,7 +214,7 @@ ESP-BLE-MESH Terminology
|
||||
- "A node can also use an IV Update procedure to signal to peer nodes that it is updating the IV Index."
|
||||
- IV 更新程序用于更新 ESP-BLE-MESH 网络的 IV Index 的值,这个值和消息加密时所需的随机数相关。为了保证随机数的值不重复,所以将这个值定期增加。IV Index 是一个 32 位的值,是一种共享网络资源,比如一个 mesh 网中的所有节点共享一个 IV Index 值。IV Index 从 0x00000000 开始,在 IV 更新过程中递增,并由特定的进程维护,以保证整个 Mesh 网内共享一个 IV Index。当节点认为它有耗尽其序列号的风险,或它确定另一个节点即将耗尽其序列号时,可以启动该程序。注意:每次的更新时间不得低于 96 小时。节点接收到 secure network beacon 或者确定自己的序列号大于特定值时,会触发 IV 更新程序。
|
||||
|
||||
官方定义摘自 `ESP-BLE-MESH Glossary of Terms <https://www.bluetooth.com/bluetooth-technology/topology-options/le-mesh/mesh-glossary/>`_.
|
||||
官方定义摘自 `ESP-BLE-MESH Glossary of Terms <https://www.bluetooth.com/learn-about-bluetooth/recent-enhancements/mesh/mesh-glossary/>`_.
|
||||
查看更多术语,也请参照上述网址。
|
||||
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@ Windows
|
||||
|
||||
1. 使用标准 USB A / micro USB B 线将 |devkit-name| 与计算机相连接,并打开板子的电源。
|
||||
|
||||
2. 等待 Windows 识别出 |devkit-name| 并且为其安装驱动。如果驱动没有被自动安装,请前往 `官网 <https://www.ftdichip.com/Drivers/D2XX.htm>`_ 下载并手动安装。
|
||||
2. 等待 Windows 识别出 |devkit-name| 并且为其安装驱动。如果驱动没有被自动安装,请前往 `官网 <https://ftdichip.com/drivers/d2xx-drivers/>`_ 下载并手动安装。
|
||||
|
||||
3. 从 `Zadig 官网 <http://zadig.akeo.ie/>`_ 下载 Zadig 工具(Zadig_X.X.exe)并运行。
|
||||
|
||||
@@ -103,7 +103,7 @@ MacOS
|
||||
手动卸载驱动程序
|
||||
................
|
||||
|
||||
1. 从 `FTDI 官网 <https://www.ftdichip.com/Drivers/VCP.htm>`_ 安装驱动。
|
||||
1. 从 `FTDI 官网 <https://ftdichip.com/drivers/vcp-drivers/>`_ 安装驱动。
|
||||
|
||||
2. 使用 USB 线连接 |devkit-name|。
|
||||
|
||||
|
||||
@@ -95,7 +95,7 @@ JTAG 调试
|
||||
|
||||
如果您想使用单独的 JTAG 适配器,请确保其与 {IDF_TARGET_NAME} 的电平电压和 OpenOCD 软件都兼容。{IDF_TARGET_NAME} 使用的是业界标准的 JTAG 接口,它未使用(实际上也并不需要)TRST 信号脚。JTAG 使用的 IO 管脚由 VDD_3P3_RTC 电源管脚供电(通常连接到外部 3.3 V 的电源轨),因此 JTAG 硬件适配器的管脚需要能够在该电压范围内正常工作。
|
||||
|
||||
在软件方面,OpenOCD 支持相当多数量的 JTAG 适配器,请参阅 `OpenOCD 支持的适配器列表 <http://openocd.org/doc/html/Debug-Adapter-Hardware.html>`_ (请注意这一列表并不完整),其中还列出了兼容 SWD 接口的适配器,但请注意,{IDF_TARGET_NAME} 目前并不支持 SWD。此外,硬编码为只支持特定产品线的 JTAG 适配器也无法在 {IDF_TARGET_NAME} 上工作,例如仅针对 STM32 系列产品的 ST-LINK 适配器。
|
||||
在软件方面,OpenOCD 支持相当多数量的 JTAG 适配器,请参阅 `OpenOCD 支持的适配器列表 <https://openocd.org/doc/html/Debug-Adapter-Hardware.html>`_ (请注意这一列表并不完整),其中还列出了兼容 SWD 接口的适配器,但请注意,{IDF_TARGET_NAME} 目前并不支持 SWD。此外,硬编码为只支持特定产品线的 JTAG 适配器也无法在 {IDF_TARGET_NAME} 上工作,例如仅针对 STM32 系列产品的 ST-LINK 适配器。
|
||||
|
||||
保证 JTAG 正常工作需要连接的信号线包括:TDI、TDO、TCK、TMS 和 GND。一些 JTAG 适配器还需要 {IDF_TARGET_NAME} 提供一路电源到适配器的某个管脚上(比如 Vtar),用于设置适配器的工作电压。您也可以选择将 SRST 信号线连接到 {IDF_TARGET_NAME} 的 CH_PD 管脚上,但请注意,目前 OpenOCD 对该信号线提供的支持相当有限。
|
||||
|
||||
@@ -119,7 +119,7 @@ JTAG 调试
|
||||
Open On-Chip Debugger v0.10.0-esp32-20190708 (2019-07-08-11:04)
|
||||
Licensed under GNU GPL v2
|
||||
For bug reports, read
|
||||
http://openocd.org/doc/doxygen/bugs.html
|
||||
https://openocd.org/doc/doxygen/bugs.html
|
||||
|
||||
您还可以检查 ``OPENOCD_SCRIPTS`` 环境变量的值,以确认 OpenOCD 配置文件的路径,Linux 和 macOS 用户可以在终端输入 ``echo $OPENOCD_SCRIPTS``,Windows 用户需要输入 ``echo %OPENOCD_SCRIPTS%``。如果终端输出了有效路径,则表明您已经正确安装 OpenOCD。
|
||||
|
||||
|
||||
@@ -285,4 +285,4 @@ Kconfig 配置项 :ref:`CONFIG_SECURE_BOOT_ALLOW_JTAG` 可以改变这个默认
|
||||
4. 请将 ``openocd_log.txt`` 和 ``gdb_log.txt`` 文件附在你的问题报告中。
|
||||
|
||||
|
||||
.. _OpenOCD 参考手册: http://openocd.org/doc/html/index.html
|
||||
.. _OpenOCD 参考手册: https://openocd.org/doc/html/index.html
|
||||
|
||||
Reference in New Issue
Block a user