feat: 链路控制、延迟校准与长测工具,补全文档
- 固件:新增 link_control / stream_control,覆盖运行中 Wi-Fi 断线恢复、取帧节拍、 温控与质量/帧率减载;UDP 发送增加有界重试预算与帧期限,PSRAM JPEG 直发减少拷贝。 - 协议:重组器严格校验分片布局,统计未收齐、超时与完全缺失的帧,处理帧号回绕与设备重启。 - 桌面端:视频改 latest-value 通道并前置帧时间标记,拒绝积压和慢解码的过期画面;新增 延迟标记页与 --latency-report 校准,完善录制、服务端与退出流程。 - 文档与脚本:新增硬件、开发、延迟、功耗、实时性、稳定性文档和改动记录,重写根 README; 新增构建、性能、延迟与串口长测脚本,以及长测客户端脚本。 - 构建:固定 esp-1.97.0.0 工具链,分区表随构建复制,更新 sdkconfig 与忽略规则。
This commit is contained in:
+14
-6
@@ -4,6 +4,8 @@ CONFIG_ESP_MAIN_TASK_STACK_SIZE=8192
|
||||
CONFIG_ESP_SYSTEM_EVENT_TASK_STACK_SIZE=4096
|
||||
CONFIG_FREERTOS_IDLE_TASK_STACKSIZE=4096
|
||||
CONFIG_PTHREAD_TASK_STACK_SIZE_DEFAULT=4096
|
||||
# A retry yields one tick; use 1 ms ticks for bounded UDP backpressure waits.
|
||||
CONFIG_FREERTOS_HZ=1000
|
||||
|
||||
# Run the CPU at 240 MHz.
|
||||
#
|
||||
@@ -39,7 +41,8 @@ CONFIG_ESP32S3_INSTRUCTION_CACHE_32KB=y
|
||||
# module's defective flash byte. That offset is written by scripts/flash.sh, not
|
||||
# fixed here; see partitions.csv for why it cannot be a constant.
|
||||
CONFIG_PARTITION_TABLE_CUSTOM=y
|
||||
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="../../../../../../partitions.csv"
|
||||
# The build scripts copy this file into the generated CMake project.
|
||||
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv"
|
||||
CONFIG_PARTITION_TABLE_OFFSET=0x8000
|
||||
|
||||
# Octal PSRAM is mandatory for the N16R8 module (R8 == 8 MB OPI PSRAM). The
|
||||
@@ -63,6 +66,11 @@ CONFIG_SPIRAM_TRY_ALLOCATE_WIFI_LWIP=n
|
||||
|
||||
CONFIG_ESP_WIFI_IRAM_OPT=y
|
||||
CONFIG_ESP_WIFI_RX_IRAM_OPT=y
|
||||
# Enough TX slots for a JPEG burst and multiple subscribers. JPEG data remains
|
||||
# in PSRAM; Wi-Fi DMA buffers stay in internal memory.
|
||||
CONFIG_ESP_WIFI_DYNAMIC_TX_BUFFER_NUM=64
|
||||
CONFIG_ESP_WIFI_TX_BA_WIN=32
|
||||
CONFIG_ESP_WIFI_AMPDU_TX_ENABLED=y
|
||||
|
||||
# Socket buffers sized for a video frame rather than for a text request.
|
||||
#
|
||||
@@ -77,11 +85,11 @@ CONFIG_CAMERA_TASK_STACK_SIZE=4096
|
||||
|
||||
# Run the camera task on CPU1.
|
||||
#
|
||||
# The WiFi task is pinned to CPU0. esp32-camera's capture task spends its time
|
||||
# in short, latency-sensitive bursts (DMA completion, the JPEG marker search,
|
||||
# the copy into the frame buffer) and gets preempted on a shared core, which
|
||||
# lengthens every frame. On a two-core part there is no reason to share.
|
||||
# Explicitly select the choice: disabling CORE0 alone leaves Kconfig free to
|
||||
# select it again. CPU0/CPU1 A/B tests both reach the sensor's ~22 fps ceiling;
|
||||
# the observed transport bottleneck is not resolved by changing this affinity.
|
||||
CONFIG_CAMERA_CORE0=n
|
||||
CONFIG_CAMERA_CORE1=y
|
||||
|
||||
# PSRAM DMA is left off deliberately.
|
||||
#
|
||||
@@ -102,4 +110,4 @@ CONFIG_CAMERA_DMA_BUFFER_SIZE_MAX=32768
|
||||
# driver, and refuses to run both in one image. esp32-camera picks one of them
|
||||
# for the SCCB bus; whichever it picks, the other has to stay out of the image,
|
||||
# so the conflict check is skipped here.
|
||||
CONFIG_I2C_SKIP_LEGACY_CONFLICT_CHECK=y
|
||||
CONFIG_I2C_SKIP_LEGACY_CONFLICT_CHECK=y
|
||||
|
||||
Reference in New Issue
Block a user