Merge branch 'docs/sync_cn_and_en_docs' into 'master'

docs: Sync CN and EN docs missing the translation label

Closes DOC-14472

See merge request espressif/esp-idf!48241
This commit is contained in:
Shen Meng Jing
2026-05-11 15:43:32 +08:00
18 changed files with 70 additions and 19 deletions

View File

@@ -90,12 +90,13 @@ ESP-IDF 默认的主机协议栈,支持经典蓝牙和低功耗蓝牙。
----
示例与教程
------------
----------
ESP-IDF 提供了丰富的示例代码和实践教程,路径见 examples 目录:
- **Bluedroid**: :example:`bluetooth/bluedroid`
- **NimBLE**: :example:`bluetooth/nimble`
- **BLE UART 服务** (基于 NimBLE 或 Bluedroid 的即用型蓝牙串口透传外设,提供 BLE UART Service GATT 布局)::example:`bluetooth/ble_uart_service`
使用 Bluedroid 协议栈进行开发的分步示例教程:

View File

@@ -189,9 +189,6 @@ Linenoise 库不需要显式地初始化,但是在调用行编辑函数之前
之后你可以使用 :cpp:func:`esp_console_cmd_register` 来注册其它命令。REPL 环境在初始化后需要再调用 :cpp:func:`esp_console_start_repl` 函数才能开始运行。
.. only:: SOC_USB_SERIAL_JTAG_SUPPORTED
同样,如果 REPL 环境是构建在 USB_SERIAL_JTAG 设备基础上,你只需要先调用 :cpp:func:`esp_console_new_repl_usb_serial_jtag` 函数进行初始化,然后再照常调用其它函数。
应用示例
------------

View File

@@ -570,6 +570,13 @@ esptool 中包含一个用于读取/写入 {IDF_TARGET_NAME} eFuse 位的有用
.. include:: inc/espefuse_summary_{IDF_TARGET_NAME}_dump.rst
延迟烧写 WR_DIS
---------------
``WR_DIS`` (写禁用)是一个特殊的 eFuse 字段,用于实现永久写保护。``WR_DIS`` 中的每个位用于禁止进一步烧写一个(或多个)关联的 eFuse 字段。一旦完成烧写,将无法再修改受影响的 eFuse 字段。
烧写 BLOCK0 中的暂存数据时,``WR_DIS`` 的各个位会在所有其他 BLOCK0 数据烧写完成后单独烧写,以确保在出现编码错误时,烧写函数能够通过重试机制进行恢复。这种方式保证了仅在其他 BLOCK0 数据成功烧写后,才对其施加写保护。
应用示例
-----------------

View File

@@ -412,7 +412,7 @@ IDF FreeRTOS 中,特定核进入和退出临界区的过程如下:
- 核寄存器的当前状态保存到要切出的任务栈中
- 核寄存器的先前保存状态从要切入的任务栈中加载
然而IDF FreeRTOS 为核的浮点运算单元 (FPU) 寄存器实现了延迟上下文切换。换句话说,当在特定核上(如核 0发生上下文切换时核的 FPU 寄存器状态不会立即保存到要被切出的任务的堆栈中(如任务 A。FPU 的寄存器在发生以下情况前将保持不变:
然而IDF FreeRTOS 为核的浮点运算单元 (FPU) 寄存器实现了惰性上下文切换。换句话说,当在特定核上(如核 0发生上下文切换时核的 FPU 寄存器状态不会立即保存到要被切出的任务的堆栈中(如任务 A。FPU 的寄存器在发生以下情况前将保持不变:
- 另一个任务(如任务 B在同一核上运行并使用 FPU这将触发异常将 FPU 寄存器保存到任务 A 的堆栈中。
- 任务 A 重新调度到同一核并继续执行。在这种情况下,不需要保存和恢复 FPU 的寄存器。
@@ -429,7 +429,42 @@ IDF FreeRTOS 中,特定核进入和退出临界区的过程如下:
.. note::
具有 FPU 的 ESP 芯片不支持双精度浮点运算 ``double`` 的硬件加速。``double`` 通过软件实现,因此比起 ``float`` 类型``double`` 操作可能消耗更多 CPU 时间。
包含 FPU 的乐鑫芯片不支持双精度浮点运算 ``double`` 的硬件加速。``double`` 通过软件实现,因此针对 ``float`` 类型的行为限制不适用于 ``double``。请注意,由于缺少硬件加速,``double`` 运算与 ``float`` 相比可能消耗更多 CPU 时间。
.. only:: SOC_CPU_HAS_PIE
使用 PIE/AI 协处理器
^^^^^^^^^^^^^^^^^^^^
与浮点运算单元 (FPU) 类似IDF FreeRTOS 在 PIE 协处理器上也采用了 **惰性上下文切换** 策略。在上下文切换时PIE 寄存器保持不变,直到某个任务执行 PIE 指令时才进行处理。一旦有任务使用了 PIE 协处理器,该任务将被 **固定到当前核心**
.. only:: esp32s31
.. note::
在 ESP32-S31 上PIE 协处理器 **仅在核心 1 上可用**。如果任务在核心 0 上运行时执行了 PIE 指令IDF FreeRTOS 会将该任务迁移至核心 1 并将其固定。此迁移会 **覆盖** 任何现有的核心亲和性设置。
由于存在这种迁移机制,任务 **不得** 在临界区或 ISR 例程中使用 PIE 协处理器,否则将导致运行时中止。
.. only:: SOC_CPU_HAS_HWLOOP
使用硬件循环 (HWLP)
^^^^^^^^^^^^^^^^^^^
在 IDF FreeRTOS 中,硬件循环 (HWLP) 单元的处理方式与其他协处理器不同:它 **不** 使用惰性上下文切换。
当使用 HWLP 的任务发生上下文切换时HWLP 寄存器会在中断入口路径中立即保存。之后,如果同一任务被切换回来,所有 HWLP 寄存器会立即恢复。
在实践中,这意味着任何曾经使用过 HWLP 的任务,在每次上下文切出和切入时都会产生额外的开销。
.. only:: SOC_CPU_HAS_DSP
使用 DSP 协处理器
^^^^^^^^^^^^^^^^^
在包含 DSP 协处理器的目标芯片上,上下文切换遵循与 FPU 相同的延迟方案:只有在同一核心上的另一个任务使用了该协处理器,或者该任务被切换到另一个核心时,协处理器的状态才会被保存。当任务使用 DSP 协处理器时IDF FreeRTOS 会自动 **将该任务固定至其当前运行的核心**。DSP 协处理器不得在中断上下文中使用。
.. -------------------------------------------------- Single Core -----------------------------------------------------

View File

@@ -39,6 +39,9 @@ ESP-IDF 应用程序使用常见的计算机架构模式:由程序控制流动
如果占用了所有的 ``MALLOC_CAP_8BIT`` 堆空间,则可以用 ``MALLOC_CAP_IRAM_8BIT`` 代替。此时,若只以 32 位对齐的方式访问 IRAM 内存,或者启用了 ``CONFIG_ESP32_IRAM_AS_8BIT_ACCESSIBLE_MEMORY``,则仍然可以将 IRAM 用作内部内存的“储备池”。
.. note::
此选项仅在单核 ESP32 配置(``CONFIG_FREERTOS_UNICORE=y``)下可用。与普通内存相比,``CONFIG_ESP32_IRAM_AS_8BIT_ACCESSIBLE_MEMORY`` 选项有一个显著的缺点:对 ``MALLOC_CAP_IRAM_8BIT`` 内存的每次字节、半字或任意非对齐访问都会触发 ``LoadStore````Alignment`` 异常。虽然这些异常会通过软件处理以确保读写值的正确性,但每次访问都会产生约 167 个 CPU 周期的开销,如果频繁访问,可能导致严重的性能下降。因此,应避免在注重性能的代码段(如 ISR 例程或紧凑循环)中使用此类内存。建议重构代码,改用 32 位对齐(``uint32_t``)的访问方式。
调用 ``malloc()``ESP-IDF ``malloc()`` 内部调用 ``heap_caps_malloc_default(size)``,使用属性 ``MALLOC_CAP_DEFAULT`` 分配内存。该属性可实现字节寻址功能,即存储空间的最小编址单位为字节。