速度优化 | 您所在的位置:网站首页 › esp32速率 › 速度优化 |
设定应用程序任务优先级
默认配置下,除了个别例外,尤其是 lwIP TCP/IP 任务,大多数内置任务都固定在核心 0 上执行。因此,应用程序可以方便地将高优先级任务放置在核心 1 上执行。优先级大于等于 19 的应用程序任务在核心 1 上运行时可以确保不会被任何内置任务抢占。为了进一步隔离各个 CPU 上运行的任务,配置 lwIP 任务 ,可以使 lwIP 任务仅在核心 0 上运行,而非上述任一核心,这可能会根据其他任务的运行情况减少总 TCP/IP 吞吐量。 由于 Wi-Fi/蓝牙 操作饥饿可能导致系统不稳定,通常不建议让核心 0 上特定任务的优先级高于 Wi-Fi/蓝牙 操作的内置优先级。将特定任务优先级设置为 19 并在核心 0 上运行,不会妨碍较低层级的 Wi-Fi/蓝牙 功能无延迟运行,但仍然会抢占 lwIP TCP/IP 堆栈以及其他非实时内部功能,该选项适用于不执行网络操作的实时任务。lwIP TCP/IP 任务优先级 (18) 应高于所有执行 TCP/IP 网络操作的任务,以保证任务正常执行。 备注 如果要让特定任务始终先于 ESP-IDF 内置任务运行,并不需要将其固定在核心 1 上。将该任务优先级设置为小于等于 17,则无需与核心绑定,那么核心 0 上没有执行较高优先级的内置任务时,该任务也可以选择在核心 0 上执行。使用未固定的任务可以提高整体 CPU 利用率,但这会增加任务调度的复杂性。 备注 对内置 SPI flash 芯片进行写入操作时,任务会完全暂停执行。只有 IRAM 安全中断处理程序 会继续执行。 |
CopyRight 2018-2019 实验室设备网 版权所有 |