From e834928457890b75ef0a31d71cae78ad79e70d06 Mon Sep 17 00:00:00 2001
From: zhoujie <929834232@qq.com>
Date: Sun, 15 Mar 2026 16:22:19 +0800
Subject: [PATCH] 105
---
prj/TCPClient/.cproject => .cproject | 7 +-
.gemini/commands/opsx/apply.toml | 149 -
.gemini/commands/opsx/archive.toml | 154 -
.gemini/commands/opsx/bulk-archive.toml | 239 -
.gemini/commands/opsx/continue.toml | 111 -
.gemini/commands/opsx/explore.toml | 171 -
.gemini/commands/opsx/ff.toml | 91 -
.gemini/commands/opsx/new.toml | 66 -
.gemini/commands/opsx/onboard.toml | 522 --
.gemini/commands/opsx/sync.toml | 131 -
.gemini/commands/opsx/verify.toml | 161 -
.gemini/skills/openspec-apply-change/SKILL.md | 156 -
.../skills/openspec-archive-change/SKILL.md | 114 -
.../openspec-bulk-archive-change/SKILL.md | 246 -
.../skills/openspec-continue-change/SKILL.md | 118 -
.gemini/skills/openspec-explore/SKILL.md | 290 -
.gemini/skills/openspec-ff-change/SKILL.md | 101 -
.gemini/skills/openspec-new-change/SKILL.md | 74 -
.gemini/skills/openspec-onboard/SKILL.md | 529 --
.gemini/skills/openspec-sync-specs/SKILL.md | 138 -
.../skills/openspec-verify-change/SKILL.md | 168 -
prj/TCPClient/.project => .project | 2 +-
.../language.settings.xml | 2 +-
.../org.eclipse.cdt.codan.core.prefs | 0
.../org.eclipse.core.resources.prefs | 0
.../org.eclipse.ltk.core.refactoring.prefs | 0
prj/TCPClient/.template => .template | 2 +-
{prj/TCPClient/Core => Core}/core_riscv.c | 0
{prj/TCPClient/Core => Core}/core_riscv.h | 0
{prj/TCPClient/Debug => Debug}/debug.c | 0
{prj/TCPClient/Debug => Debug}/debug.h | 0
{prj/TCPClient/Debug => Debug}/dvp.c | 40 +-
{prj/TCPClient/Debug => Debug}/dvp.h | 0
{prj/TCPClient/Debug => Debug}/mini212g2.c | 0
{prj/TCPClient/Debug => Debug}/mini212g2.h | 0
.../FreeRTOS => FreeRTOS}/event_groups.c | 0
.../FreeRTOS => FreeRTOS}/include/FreeRTOS.h | 0
.../include/StackMacros.h | 0
.../FreeRTOS => FreeRTOS}/include/atomic.h | 0
.../FreeRTOS => FreeRTOS}/include/croutine.h | 0
.../include/deprecated_definitions.h | 0
.../include/event_groups.h | 0
.../FreeRTOS => FreeRTOS}/include/list.h | 0
.../include/message_buffer.h | 0
.../include/mpu_prototypes.h | 0
.../include/mpu_wrappers.h | 0
.../FreeRTOS => FreeRTOS}/include/portable.h | 0
.../FreeRTOS => FreeRTOS}/include/projdefs.h | 0
.../FreeRTOS => FreeRTOS}/include/queue.h | 0
.../FreeRTOS => FreeRTOS}/include/semphr.h | 0
.../include/stack_macros.h | 0
.../include/stdint.readme | 0
.../include/stream_buffer.h | 0
.../FreeRTOS => FreeRTOS}/include/task.h | 0
.../FreeRTOS => FreeRTOS}/include/timers.h | 0
.../FreeRTOS => FreeRTOS}/list.c | 0
.../portable/GCC/RISC-V/Documentation.url | 0
...freertos_risc_v_chip_specific_extensions.h | 0
.../chip_specific_extensions/readme.txt | 0
...freertos_risc_v_chip_specific_extensions.h | 0
.../portable/GCC/RISC-V/port.c | 0
.../portable/GCC/RISC-V/portASM.S | 0
.../portable/GCC/RISC-V/portmacro.h | 0
.../portable/GCC/RISC-V/readme.txt | 0
.../portable/MemMang/heap_4.c | 0
.../FreeRTOS => FreeRTOS}/queue.c | 0
.../FreeRTOS => FreeRTOS}/tasks.c | 0
.../FreeRTOS => FreeRTOS}/timers.c | 0
{prj/TCPClient/Ld => Ld}/Link.ld | 0
.../QDXnetworkStack/LICENSE.txt | 0
.../QDXnetworkStack/qdx_port.c | 0
.../QDXnetworkStack/qdx_port.h | 0
.../QDXnetworkStack/qdx_port_template.c | 0
.../QDXnetworkStack/qdx_preprocess.c | 0
.../QDXnetworkStack/qdx_preprocess.h | 0
.../QDXnetworkStack/qdx_protocol.c | 0
.../QDXnetworkStack/qdx_protocol.h | 0
.../QDXnetworkStack/qdx_tcp_logic.c | 0
.../QDXnetworkStack/qdx_tcp_logic.h | 0
{prj/TCPClient/NetLib => NetLib}/eth_driver.h | 0
.../NetLib => NetLib}/eth_driver_10M.c | 0
.../NetLib => NetLib}/eth_driver_CH32V317.c | 0
.../NetLib => NetLib}/eth_driver_MII.c | 0
.../NetLib => NetLib}/eth_driver_RGMII.c | 0
.../NetLib => NetLib}/eth_driver_RMII.c | 0
{prj/TCPClient/NetLib => NetLib}/libwchnet.a | Bin
.../NetLib => NetLib}/libwchnet_float.a | Bin
{prj/TCPClient/NetLib => NetLib}/wchnet.h | 0
.../Peripheral => Peripheral}/inc/ch32v30x.h | 0
.../inc/ch32v30x_adc.h | 0
.../inc/ch32v30x_bkp.h | 0
.../inc/ch32v30x_can.h | 0
.../inc/ch32v30x_crc.h | 0
.../inc/ch32v30x_dac.h | 0
.../inc/ch32v30x_dbgmcu.h | 0
.../inc/ch32v30x_dma.h | 0
.../inc/ch32v30x_dvp.h | 0
.../inc/ch32v30x_eth.h | 0
.../inc/ch32v30x_exti.h | 0
.../inc/ch32v30x_flash.h | 0
.../inc/ch32v30x_fsmc.h | 0
.../inc/ch32v30x_gpio.h | 0
.../inc/ch32v30x_i2c.h | 0
.../inc/ch32v30x_iwdg.h | 0
.../inc/ch32v30x_misc.h | 0
.../inc/ch32v30x_opa.h | 0
.../inc/ch32v30x_pwr.h | 0
.../inc/ch32v30x_rcc.h | 0
.../inc/ch32v30x_rng.h | 0
.../inc/ch32v30x_rtc.h | 0
.../inc/ch32v30x_sdio.h | 0
.../inc/ch32v30x_spi.h | 0
.../inc/ch32v30x_tim.h | 0
.../inc/ch32v30x_usart.h | 0
.../inc/ch32v30x_usb.h | 0
.../inc/ch32v30x_wwdg.h | 0
.../src/ch32v30x_adc.c | 0
.../src/ch32v30x_bkp.c | 0
.../src/ch32v30x_can.c | 0
.../src/ch32v30x_crc.c | 0
.../src/ch32v30x_dac.c | 0
.../src/ch32v30x_dbgmcu.c | 0
.../src/ch32v30x_dma.c | 0
.../src/ch32v30x_dvp.c | 0
.../src/ch32v30x_eth.c | 0
.../src/ch32v30x_exti.c | 0
.../src/ch32v30x_flash.c | 0
.../src/ch32v30x_fsmc.c | 0
.../src/ch32v30x_gpio.c | 0
.../src/ch32v30x_i2c.c | 0
.../src/ch32v30x_iwdg.c | 0
.../src/ch32v30x_misc.c | 0
.../src/ch32v30x_opa.c | 0
.../src/ch32v30x_pwr.c | 0
.../src/ch32v30x_rcc.c | 0
.../src/ch32v30x_rng.c | 0
.../src/ch32v30x_rtc.c | 0
.../src/ch32v30x_sdio.c | 0
.../src/ch32v30x_spi.c | 0
.../src/ch32v30x_tim.c | 0
.../src/ch32v30x_usart.c | 0
.../src/ch32v30x_wwdg.c | 0
.../TCPClient1.wvproj => SealCheck.wvproj | Bin
.../Startup => Startup}/startup_ch32v30x_D8.S | 0
.../startup_ch32v30x_D8C.S | 0
TCPClient1.wvproj | Bin 0 -> 202 bytes
Todo.md | 3 +
{prj/TCPClient/User => User}/FreeRTOSConfig.h | 0
{prj/TCPClient/User => User}/ch32v30x_conf.h | 0
{prj/TCPClient/User => User}/ch32v30x_it.c | 0
.../FreeRTOS_Core/User => User}/ch32v30x_it.h | 0
{prj/TCPClient/User => User}/main.c | 32 +-
{prj/TCPClient/User => User}/net_config.h | 0
.../TCPClient/User => User}/system_ch32v30x.c | 0
.../User => User}/system_ch32v30x.h | 0
{prj/TCPClient/obj => obj}/Core/subdir.mk | 0
{prj/TCPClient/obj => obj}/Debug/subdir.mk | 0
.../FreeRTOS/portable/GCC/RISC-V/subdir.mk | 0
.../FreeRTOS/portable/MemMang/subdir.mk | 0
{prj/TCPClient/obj => obj}/FreeRTOS/subdir.mk | 0
.../Middle/QDXnetworkStack/subdir.mk | 0
{prj/TCPClient/obj => obj}/NetLib/subdir.mk | 0
.../obj => obj}/Peripheral/src/subdir.mk | 0
{prj/TCPClient/obj => obj}/Startup/subdir.mk | 0
{prj/TCPClient/obj => obj}/TCPClient.map | 0
{prj/TCPClient/obj => obj}/TCPClient1.elf | Bin
{prj/TCPClient/obj => obj}/TCPClient1.hex | 0
{prj/TCPClient/obj => obj}/TCPClient1.lst | 0
{prj/TCPClient/obj => obj}/TCPClient1.map | 0
{prj/TCPClient/obj => obj}/User/subdir.mk | 0
{prj/TCPClient/obj => obj}/makefile | 0
{prj/TCPClient/obj => obj}/objects.mk | 0
{prj/TCPClient/obj => obj}/sources.mk | 0
.../.openspec.yaml | 2 -
.../2026-03-13-check-dvp-dma-ir/design.md | 27 -
.../2026-03-13-check-dvp-dma-ir/proposal.md | 23 -
.../specs/dvp-dma-ir-capture/spec.md | 22 -
.../2026-03-13-check-dvp-dma-ir/tasks.md | 17 -
.../.openspec.yaml | 2 -
.../implement-business-pipeline/design.md | 29 -
.../implement-business-pipeline/proposal.md | 25 -
.../specs/image-preprocess-filter/spec.md | 15 -
.../specs/tcp-stream-logic/spec.md | 26 -
.../implement-business-pipeline/tasks.md | 19 -
.../.openspec.yaml | 2 -
.../implement-wchnet-port-layer/design.md | 93 -
.../implement-wchnet-port-layer/proposal.md | 31 -
.../specs/freertos-wchnet-port/spec.md | 119 -
.../specs/tcp-stream-logic/spec.md | 12 -
.../implement-wchnet-port-layer/tasks.md | 62 -
openspec/config.yaml | 21 -
openspec/specs/dvp-dma-ir-capture/spec.md | 22 -
pc/api_demo.exe | Bin 114244 -> 0 bytes
pc/build.bat | 42 -
pc/demo_main.c | 519 --
pc/qdx_port_win32.c | 194 -
prj/FreeRTOS_Core/.cproject | 160 -
prj/FreeRTOS_Core/.project | 54 -
prj/FreeRTOS_Core/.template | 16 -
prj/FreeRTOS_Core/FreeRTOS.wvproj | 2 -
prj/FreeRTOS_Core/FreeRTOS/.gitmodules | 6 -
prj/FreeRTOS_Core/FreeRTOS/croutine.c | 363 --
.../FreeRTOS/portable/Common/mpu_wrappers.c | 1482 -----
.../FreeRTOS/portable/MemMang/ReadMe.url | 5 -
.../FreeRTOS/portable/readme.txt | 20 -
prj/FreeRTOS_Core/FreeRTOS/stream_buffer.c | 1307 ----
prj/FreeRTOS_Core/Ld/Link.ld | 186 -
.../Startup/startup_ch32v30x_D8.S | 356 --
.../Startup/startup_ch32v30x_D8C.S | 374 --
prj/FreeRTOS_Core/User/FreeRTOSConfig.h | 151 -
prj/FreeRTOS_Core/User/ch32v30x_conf.h | 45 -
prj/FreeRTOS_Core/User/ch32v30x_it.c | 46 -
prj/FreeRTOS_Core/User/main.c | 134 -
prj/FreeRTOS_Core/User/system_ch32v30x.c | 1036 ----
prj/TCPClient/FreeRTOS/event_groups.c | 777 ---
prj/TCPClient/FreeRTOS/include/FreeRTOS.h | 1362 -----
prj/TCPClient/FreeRTOS/include/StackMacros.h | 34 -
prj/TCPClient/FreeRTOS/include/atomic.h | 419 --
prj/TCPClient/FreeRTOS/include/croutine.h | 753 ---
.../FreeRTOS/include/deprecated_definitions.h | 281 -
prj/TCPClient/FreeRTOS/include/event_groups.h | 777 ---
prj/TCPClient/FreeRTOS/include/list.h | 499 --
.../FreeRTOS/include/message_buffer.h | 823 ---
.../FreeRTOS/include/mpu_prototypes.h | 260 -
prj/TCPClient/FreeRTOS/include/mpu_wrappers.h | 217 -
prj/TCPClient/FreeRTOS/include/portable.h | 223 -
prj/TCPClient/FreeRTOS/include/projdefs.h | 122 -
prj/TCPClient/FreeRTOS/include/queue.h | 1722 ------
prj/TCPClient/FreeRTOS/include/semphr.h | 1189 ----
prj/TCPClient/FreeRTOS/include/stack_macros.h | 137 -
prj/TCPClient/FreeRTOS/include/stdint.readme | 58 -
.../FreeRTOS/include/stream_buffer.h | 869 ---
prj/TCPClient/FreeRTOS/include/task.h | 3112 ----------
prj/TCPClient/FreeRTOS/include/timers.h | 1355 ----
prj/TCPClient/FreeRTOS/list.c | 215 -
.../portable/GCC/RISC-V/Documentation.url | 5 -
.../chip_specific_extensions/readme.txt | 23 -
...freertos_risc_v_chip_specific_extensions.h | 150 -
.../FreeRTOS/portable/GCC/RISC-V/port.c | 280 -
.../FreeRTOS/portable/GCC/RISC-V/portASM.S | 363 --
.../FreeRTOS/portable/GCC/RISC-V/portmacro.h | 194 -
.../FreeRTOS/portable/GCC/RISC-V/readme.txt | 23 -
.../FreeRTOS/portable/MemMang/heap_4.c | 504 --
prj/TCPClient/FreeRTOS/queue.c | 3075 ----------
prj/TCPClient/FreeRTOS/tasks.c | 5442 -----------------
prj/TCPClient/FreeRTOS/timers.c | 1119 ----
prj/TCPClient/User/ch32v30x_it.h | 20 -
prj/TCPClient/User/main.c.bak | 709 ---
prj/TCPClient/User/system_ch32v30x.h | 32 -
q | 21 -
release/Project_Ch32v307_V1.0_260315.7z | Bin 13594175 -> 0 bytes
模式配置与功能说明.md | 669 ++
252 files changed, 725 insertions(+), 37992 deletions(-)
rename prj/TCPClient/.cproject => .cproject (99%)
delete mode 100644 .gemini/commands/opsx/apply.toml
delete mode 100644 .gemini/commands/opsx/archive.toml
delete mode 100644 .gemini/commands/opsx/bulk-archive.toml
delete mode 100644 .gemini/commands/opsx/continue.toml
delete mode 100644 .gemini/commands/opsx/explore.toml
delete mode 100644 .gemini/commands/opsx/ff.toml
delete mode 100644 .gemini/commands/opsx/new.toml
delete mode 100644 .gemini/commands/opsx/onboard.toml
delete mode 100644 .gemini/commands/opsx/sync.toml
delete mode 100644 .gemini/commands/opsx/verify.toml
delete mode 100644 .gemini/skills/openspec-apply-change/SKILL.md
delete mode 100644 .gemini/skills/openspec-archive-change/SKILL.md
delete mode 100644 .gemini/skills/openspec-bulk-archive-change/SKILL.md
delete mode 100644 .gemini/skills/openspec-continue-change/SKILL.md
delete mode 100644 .gemini/skills/openspec-explore/SKILL.md
delete mode 100644 .gemini/skills/openspec-ff-change/SKILL.md
delete mode 100644 .gemini/skills/openspec-new-change/SKILL.md
delete mode 100644 .gemini/skills/openspec-onboard/SKILL.md
delete mode 100644 .gemini/skills/openspec-sync-specs/SKILL.md
delete mode 100644 .gemini/skills/openspec-verify-change/SKILL.md
rename prj/TCPClient/.project => .project (96%)
rename {prj/TCPClient/.settings => .settings}/language.settings.xml (74%)
rename {prj/TCPClient/.settings => .settings}/org.eclipse.cdt.codan.core.prefs (100%)
rename {prj/TCPClient/.settings => .settings}/org.eclipse.core.resources.prefs (100%)
rename {prj/TCPClient/.settings => .settings}/org.eclipse.ltk.core.refactoring.prefs (100%)
rename prj/TCPClient/.template => .template (95%)
rename {prj/TCPClient/Core => Core}/core_riscv.c (100%)
rename {prj/TCPClient/Core => Core}/core_riscv.h (100%)
rename {prj/TCPClient/Debug => Debug}/debug.c (100%)
rename {prj/TCPClient/Debug => Debug}/debug.h (100%)
rename {prj/TCPClient/Debug => Debug}/dvp.c (82%)
rename {prj/TCPClient/Debug => Debug}/dvp.h (100%)
rename {prj/TCPClient/Debug => Debug}/mini212g2.c (100%)
rename {prj/TCPClient/Debug => Debug}/mini212g2.h (100%)
rename {prj/FreeRTOS_Core/FreeRTOS => FreeRTOS}/event_groups.c (100%)
rename {prj/FreeRTOS_Core/FreeRTOS => FreeRTOS}/include/FreeRTOS.h (100%)
rename {prj/FreeRTOS_Core/FreeRTOS => FreeRTOS}/include/StackMacros.h (100%)
rename {prj/FreeRTOS_Core/FreeRTOS => FreeRTOS}/include/atomic.h (100%)
rename {prj/FreeRTOS_Core/FreeRTOS => FreeRTOS}/include/croutine.h (100%)
rename {prj/FreeRTOS_Core/FreeRTOS => FreeRTOS}/include/deprecated_definitions.h (100%)
rename {prj/FreeRTOS_Core/FreeRTOS => FreeRTOS}/include/event_groups.h (100%)
rename {prj/FreeRTOS_Core/FreeRTOS => FreeRTOS}/include/list.h (100%)
rename {prj/FreeRTOS_Core/FreeRTOS => FreeRTOS}/include/message_buffer.h (100%)
rename {prj/FreeRTOS_Core/FreeRTOS => FreeRTOS}/include/mpu_prototypes.h (100%)
rename {prj/FreeRTOS_Core/FreeRTOS => FreeRTOS}/include/mpu_wrappers.h (100%)
rename {prj/FreeRTOS_Core/FreeRTOS => FreeRTOS}/include/portable.h (100%)
rename {prj/FreeRTOS_Core/FreeRTOS => FreeRTOS}/include/projdefs.h (100%)
rename {prj/FreeRTOS_Core/FreeRTOS => FreeRTOS}/include/queue.h (100%)
rename {prj/FreeRTOS_Core/FreeRTOS => FreeRTOS}/include/semphr.h (100%)
rename {prj/FreeRTOS_Core/FreeRTOS => FreeRTOS}/include/stack_macros.h (100%)
rename {prj/FreeRTOS_Core/FreeRTOS => FreeRTOS}/include/stdint.readme (100%)
rename {prj/FreeRTOS_Core/FreeRTOS => FreeRTOS}/include/stream_buffer.h (100%)
rename {prj/FreeRTOS_Core/FreeRTOS => FreeRTOS}/include/task.h (100%)
rename {prj/FreeRTOS_Core/FreeRTOS => FreeRTOS}/include/timers.h (100%)
rename {prj/FreeRTOS_Core/FreeRTOS => FreeRTOS}/list.c (100%)
rename {prj/FreeRTOS_Core/FreeRTOS => FreeRTOS}/portable/GCC/RISC-V/Documentation.url (100%)
rename {prj/FreeRTOS_Core/FreeRTOS => FreeRTOS}/portable/GCC/RISC-V/chip_specific_extensions/RV32I_PFIC_no_extensions/freertos_risc_v_chip_specific_extensions.h (100%)
rename {prj/FreeRTOS_Core/FreeRTOS => FreeRTOS}/portable/GCC/RISC-V/chip_specific_extensions/readme.txt (100%)
rename {prj/TCPClient/FreeRTOS/portable/GCC/RISC-V/chip_specific_extensions/RV32I_PFIC_no_extensions => FreeRTOS/portable/GCC/RISC-V}/freertos_risc_v_chip_specific_extensions.h (100%)
rename {prj/FreeRTOS_Core/FreeRTOS => FreeRTOS}/portable/GCC/RISC-V/port.c (100%)
rename {prj/FreeRTOS_Core/FreeRTOS => FreeRTOS}/portable/GCC/RISC-V/portASM.S (100%)
rename {prj/FreeRTOS_Core/FreeRTOS => FreeRTOS}/portable/GCC/RISC-V/portmacro.h (100%)
rename {prj/FreeRTOS_Core/FreeRTOS => FreeRTOS}/portable/GCC/RISC-V/readme.txt (100%)
rename {prj/FreeRTOS_Core/FreeRTOS => FreeRTOS}/portable/MemMang/heap_4.c (100%)
rename {prj/FreeRTOS_Core/FreeRTOS => FreeRTOS}/queue.c (100%)
rename {prj/FreeRTOS_Core/FreeRTOS => FreeRTOS}/tasks.c (100%)
rename {prj/FreeRTOS_Core/FreeRTOS => FreeRTOS}/timers.c (100%)
rename {prj/TCPClient/Ld => Ld}/Link.ld (100%)
rename {prj/TCPClient/Middle => Middle}/QDXnetworkStack/LICENSE.txt (100%)
rename {prj/TCPClient/Middle => Middle}/QDXnetworkStack/qdx_port.c (100%)
rename {prj/TCPClient/Middle => Middle}/QDXnetworkStack/qdx_port.h (100%)
rename {prj/TCPClient/Middle => Middle}/QDXnetworkStack/qdx_port_template.c (100%)
rename {prj/TCPClient/Middle => Middle}/QDXnetworkStack/qdx_preprocess.c (100%)
rename {prj/TCPClient/Middle => Middle}/QDXnetworkStack/qdx_preprocess.h (100%)
rename {prj/TCPClient/Middle => Middle}/QDXnetworkStack/qdx_protocol.c (100%)
rename {prj/TCPClient/Middle => Middle}/QDXnetworkStack/qdx_protocol.h (100%)
rename {prj/TCPClient/Middle => Middle}/QDXnetworkStack/qdx_tcp_logic.c (100%)
rename {prj/TCPClient/Middle => Middle}/QDXnetworkStack/qdx_tcp_logic.h (100%)
rename {prj/TCPClient/NetLib => NetLib}/eth_driver.h (100%)
rename {prj/TCPClient/NetLib => NetLib}/eth_driver_10M.c (100%)
rename {prj/TCPClient/NetLib => NetLib}/eth_driver_CH32V317.c (100%)
rename {prj/TCPClient/NetLib => NetLib}/eth_driver_MII.c (100%)
rename {prj/TCPClient/NetLib => NetLib}/eth_driver_RGMII.c (100%)
rename {prj/TCPClient/NetLib => NetLib}/eth_driver_RMII.c (100%)
rename {prj/TCPClient/NetLib => NetLib}/libwchnet.a (100%)
rename {prj/TCPClient/NetLib => NetLib}/libwchnet_float.a (100%)
rename {prj/TCPClient/NetLib => NetLib}/wchnet.h (100%)
rename {prj/TCPClient/Peripheral => Peripheral}/inc/ch32v30x.h (100%)
rename {prj/TCPClient/Peripheral => Peripheral}/inc/ch32v30x_adc.h (100%)
rename {prj/TCPClient/Peripheral => Peripheral}/inc/ch32v30x_bkp.h (100%)
rename {prj/TCPClient/Peripheral => Peripheral}/inc/ch32v30x_can.h (100%)
rename {prj/TCPClient/Peripheral => Peripheral}/inc/ch32v30x_crc.h (100%)
rename {prj/TCPClient/Peripheral => Peripheral}/inc/ch32v30x_dac.h (100%)
rename {prj/TCPClient/Peripheral => Peripheral}/inc/ch32v30x_dbgmcu.h (100%)
rename {prj/TCPClient/Peripheral => Peripheral}/inc/ch32v30x_dma.h (100%)
rename {prj/TCPClient/Peripheral => Peripheral}/inc/ch32v30x_dvp.h (100%)
rename {prj/TCPClient/Peripheral => Peripheral}/inc/ch32v30x_eth.h (100%)
rename {prj/TCPClient/Peripheral => Peripheral}/inc/ch32v30x_exti.h (100%)
rename {prj/TCPClient/Peripheral => Peripheral}/inc/ch32v30x_flash.h (100%)
rename {prj/TCPClient/Peripheral => Peripheral}/inc/ch32v30x_fsmc.h (100%)
rename {prj/TCPClient/Peripheral => Peripheral}/inc/ch32v30x_gpio.h (100%)
rename {prj/TCPClient/Peripheral => Peripheral}/inc/ch32v30x_i2c.h (100%)
rename {prj/TCPClient/Peripheral => Peripheral}/inc/ch32v30x_iwdg.h (100%)
rename {prj/TCPClient/Peripheral => Peripheral}/inc/ch32v30x_misc.h (100%)
rename {prj/TCPClient/Peripheral => Peripheral}/inc/ch32v30x_opa.h (100%)
rename {prj/TCPClient/Peripheral => Peripheral}/inc/ch32v30x_pwr.h (100%)
rename {prj/TCPClient/Peripheral => Peripheral}/inc/ch32v30x_rcc.h (100%)
rename {prj/TCPClient/Peripheral => Peripheral}/inc/ch32v30x_rng.h (100%)
rename {prj/TCPClient/Peripheral => Peripheral}/inc/ch32v30x_rtc.h (100%)
rename {prj/TCPClient/Peripheral => Peripheral}/inc/ch32v30x_sdio.h (100%)
rename {prj/TCPClient/Peripheral => Peripheral}/inc/ch32v30x_spi.h (100%)
rename {prj/TCPClient/Peripheral => Peripheral}/inc/ch32v30x_tim.h (100%)
rename {prj/TCPClient/Peripheral => Peripheral}/inc/ch32v30x_usart.h (100%)
rename {prj/TCPClient/Peripheral => Peripheral}/inc/ch32v30x_usb.h (100%)
rename {prj/TCPClient/Peripheral => Peripheral}/inc/ch32v30x_wwdg.h (100%)
rename {prj/TCPClient/Peripheral => Peripheral}/src/ch32v30x_adc.c (100%)
rename {prj/TCPClient/Peripheral => Peripheral}/src/ch32v30x_bkp.c (100%)
rename {prj/TCPClient/Peripheral => Peripheral}/src/ch32v30x_can.c (100%)
rename {prj/TCPClient/Peripheral => Peripheral}/src/ch32v30x_crc.c (100%)
rename {prj/TCPClient/Peripheral => Peripheral}/src/ch32v30x_dac.c (100%)
rename {prj/TCPClient/Peripheral => Peripheral}/src/ch32v30x_dbgmcu.c (100%)
rename {prj/TCPClient/Peripheral => Peripheral}/src/ch32v30x_dma.c (100%)
rename {prj/TCPClient/Peripheral => Peripheral}/src/ch32v30x_dvp.c (100%)
rename {prj/TCPClient/Peripheral => Peripheral}/src/ch32v30x_eth.c (100%)
rename {prj/TCPClient/Peripheral => Peripheral}/src/ch32v30x_exti.c (100%)
rename {prj/TCPClient/Peripheral => Peripheral}/src/ch32v30x_flash.c (100%)
rename {prj/TCPClient/Peripheral => Peripheral}/src/ch32v30x_fsmc.c (100%)
rename {prj/TCPClient/Peripheral => Peripheral}/src/ch32v30x_gpio.c (100%)
rename {prj/TCPClient/Peripheral => Peripheral}/src/ch32v30x_i2c.c (100%)
rename {prj/TCPClient/Peripheral => Peripheral}/src/ch32v30x_iwdg.c (100%)
rename {prj/TCPClient/Peripheral => Peripheral}/src/ch32v30x_misc.c (100%)
rename {prj/TCPClient/Peripheral => Peripheral}/src/ch32v30x_opa.c (100%)
rename {prj/TCPClient/Peripheral => Peripheral}/src/ch32v30x_pwr.c (100%)
rename {prj/TCPClient/Peripheral => Peripheral}/src/ch32v30x_rcc.c (100%)
rename {prj/TCPClient/Peripheral => Peripheral}/src/ch32v30x_rng.c (100%)
rename {prj/TCPClient/Peripheral => Peripheral}/src/ch32v30x_rtc.c (100%)
rename {prj/TCPClient/Peripheral => Peripheral}/src/ch32v30x_sdio.c (100%)
rename {prj/TCPClient/Peripheral => Peripheral}/src/ch32v30x_spi.c (100%)
rename {prj/TCPClient/Peripheral => Peripheral}/src/ch32v30x_tim.c (100%)
rename {prj/TCPClient/Peripheral => Peripheral}/src/ch32v30x_usart.c (100%)
rename {prj/TCPClient/Peripheral => Peripheral}/src/ch32v30x_wwdg.c (100%)
rename prj/TCPClient/TCPClient1.wvproj => SealCheck.wvproj (100%)
rename {prj/TCPClient/Startup => Startup}/startup_ch32v30x_D8.S (100%)
rename {prj/TCPClient/Startup => Startup}/startup_ch32v30x_D8C.S (100%)
create mode 100644 TCPClient1.wvproj
create mode 100644 Todo.md
rename {prj/TCPClient/User => User}/FreeRTOSConfig.h (100%)
rename {prj/TCPClient/User => User}/ch32v30x_conf.h (100%)
rename {prj/TCPClient/User => User}/ch32v30x_it.c (100%)
rename {prj/FreeRTOS_Core/User => User}/ch32v30x_it.h (100%)
rename {prj/TCPClient/User => User}/main.c (96%)
rename {prj/TCPClient/User => User}/net_config.h (100%)
rename {prj/TCPClient/User => User}/system_ch32v30x.c (100%)
rename {prj/FreeRTOS_Core/User => User}/system_ch32v30x.h (100%)
rename {prj/TCPClient/obj => obj}/Core/subdir.mk (100%)
rename {prj/TCPClient/obj => obj}/Debug/subdir.mk (100%)
rename {prj/TCPClient/obj => obj}/FreeRTOS/portable/GCC/RISC-V/subdir.mk (100%)
rename {prj/TCPClient/obj => obj}/FreeRTOS/portable/MemMang/subdir.mk (100%)
rename {prj/TCPClient/obj => obj}/FreeRTOS/subdir.mk (100%)
rename {prj/TCPClient/obj => obj}/Middle/QDXnetworkStack/subdir.mk (100%)
rename {prj/TCPClient/obj => obj}/NetLib/subdir.mk (100%)
rename {prj/TCPClient/obj => obj}/Peripheral/src/subdir.mk (100%)
rename {prj/TCPClient/obj => obj}/Startup/subdir.mk (100%)
rename {prj/TCPClient/obj => obj}/TCPClient.map (100%)
rename {prj/TCPClient/obj => obj}/TCPClient1.elf (100%)
rename {prj/TCPClient/obj => obj}/TCPClient1.hex (100%)
rename {prj/TCPClient/obj => obj}/TCPClient1.lst (100%)
rename {prj/TCPClient/obj => obj}/TCPClient1.map (100%)
rename {prj/TCPClient/obj => obj}/User/subdir.mk (100%)
rename {prj/TCPClient/obj => obj}/makefile (100%)
rename {prj/TCPClient/obj => obj}/objects.mk (100%)
rename {prj/TCPClient/obj => obj}/sources.mk (100%)
delete mode 100644 openspec/changes/archive/2026-03-13-check-dvp-dma-ir/.openspec.yaml
delete mode 100644 openspec/changes/archive/2026-03-13-check-dvp-dma-ir/design.md
delete mode 100644 openspec/changes/archive/2026-03-13-check-dvp-dma-ir/proposal.md
delete mode 100644 openspec/changes/archive/2026-03-13-check-dvp-dma-ir/specs/dvp-dma-ir-capture/spec.md
delete mode 100644 openspec/changes/archive/2026-03-13-check-dvp-dma-ir/tasks.md
delete mode 100644 openspec/changes/implement-business-pipeline/.openspec.yaml
delete mode 100644 openspec/changes/implement-business-pipeline/design.md
delete mode 100644 openspec/changes/implement-business-pipeline/proposal.md
delete mode 100644 openspec/changes/implement-business-pipeline/specs/image-preprocess-filter/spec.md
delete mode 100644 openspec/changes/implement-business-pipeline/specs/tcp-stream-logic/spec.md
delete mode 100644 openspec/changes/implement-business-pipeline/tasks.md
delete mode 100644 openspec/changes/implement-wchnet-port-layer/.openspec.yaml
delete mode 100644 openspec/changes/implement-wchnet-port-layer/design.md
delete mode 100644 openspec/changes/implement-wchnet-port-layer/proposal.md
delete mode 100644 openspec/changes/implement-wchnet-port-layer/specs/freertos-wchnet-port/spec.md
delete mode 100644 openspec/changes/implement-wchnet-port-layer/specs/tcp-stream-logic/spec.md
delete mode 100644 openspec/changes/implement-wchnet-port-layer/tasks.md
delete mode 100644 openspec/config.yaml
delete mode 100644 openspec/specs/dvp-dma-ir-capture/spec.md
delete mode 100644 pc/api_demo.exe
delete mode 100644 pc/build.bat
delete mode 100644 pc/demo_main.c
delete mode 100644 pc/qdx_port_win32.c
delete mode 100644 prj/FreeRTOS_Core/.cproject
delete mode 100644 prj/FreeRTOS_Core/.project
delete mode 100644 prj/FreeRTOS_Core/.template
delete mode 100644 prj/FreeRTOS_Core/FreeRTOS.wvproj
delete mode 100644 prj/FreeRTOS_Core/FreeRTOS/.gitmodules
delete mode 100644 prj/FreeRTOS_Core/FreeRTOS/croutine.c
delete mode 100644 prj/FreeRTOS_Core/FreeRTOS/portable/Common/mpu_wrappers.c
delete mode 100644 prj/FreeRTOS_Core/FreeRTOS/portable/MemMang/ReadMe.url
delete mode 100644 prj/FreeRTOS_Core/FreeRTOS/portable/readme.txt
delete mode 100644 prj/FreeRTOS_Core/FreeRTOS/stream_buffer.c
delete mode 100644 prj/FreeRTOS_Core/Ld/Link.ld
delete mode 100644 prj/FreeRTOS_Core/Startup/startup_ch32v30x_D8.S
delete mode 100644 prj/FreeRTOS_Core/Startup/startup_ch32v30x_D8C.S
delete mode 100644 prj/FreeRTOS_Core/User/FreeRTOSConfig.h
delete mode 100644 prj/FreeRTOS_Core/User/ch32v30x_conf.h
delete mode 100644 prj/FreeRTOS_Core/User/ch32v30x_it.c
delete mode 100644 prj/FreeRTOS_Core/User/main.c
delete mode 100644 prj/FreeRTOS_Core/User/system_ch32v30x.c
delete mode 100644 prj/TCPClient/FreeRTOS/event_groups.c
delete mode 100644 prj/TCPClient/FreeRTOS/include/FreeRTOS.h
delete mode 100644 prj/TCPClient/FreeRTOS/include/StackMacros.h
delete mode 100644 prj/TCPClient/FreeRTOS/include/atomic.h
delete mode 100644 prj/TCPClient/FreeRTOS/include/croutine.h
delete mode 100644 prj/TCPClient/FreeRTOS/include/deprecated_definitions.h
delete mode 100644 prj/TCPClient/FreeRTOS/include/event_groups.h
delete mode 100644 prj/TCPClient/FreeRTOS/include/list.h
delete mode 100644 prj/TCPClient/FreeRTOS/include/message_buffer.h
delete mode 100644 prj/TCPClient/FreeRTOS/include/mpu_prototypes.h
delete mode 100644 prj/TCPClient/FreeRTOS/include/mpu_wrappers.h
delete mode 100644 prj/TCPClient/FreeRTOS/include/portable.h
delete mode 100644 prj/TCPClient/FreeRTOS/include/projdefs.h
delete mode 100644 prj/TCPClient/FreeRTOS/include/queue.h
delete mode 100644 prj/TCPClient/FreeRTOS/include/semphr.h
delete mode 100644 prj/TCPClient/FreeRTOS/include/stack_macros.h
delete mode 100644 prj/TCPClient/FreeRTOS/include/stdint.readme
delete mode 100644 prj/TCPClient/FreeRTOS/include/stream_buffer.h
delete mode 100644 prj/TCPClient/FreeRTOS/include/task.h
delete mode 100644 prj/TCPClient/FreeRTOS/include/timers.h
delete mode 100644 prj/TCPClient/FreeRTOS/list.c
delete mode 100644 prj/TCPClient/FreeRTOS/portable/GCC/RISC-V/Documentation.url
delete mode 100644 prj/TCPClient/FreeRTOS/portable/GCC/RISC-V/chip_specific_extensions/readme.txt
delete mode 100644 prj/TCPClient/FreeRTOS/portable/GCC/RISC-V/freertos_risc_v_chip_specific_extensions.h
delete mode 100644 prj/TCPClient/FreeRTOS/portable/GCC/RISC-V/port.c
delete mode 100644 prj/TCPClient/FreeRTOS/portable/GCC/RISC-V/portASM.S
delete mode 100644 prj/TCPClient/FreeRTOS/portable/GCC/RISC-V/portmacro.h
delete mode 100644 prj/TCPClient/FreeRTOS/portable/GCC/RISC-V/readme.txt
delete mode 100644 prj/TCPClient/FreeRTOS/portable/MemMang/heap_4.c
delete mode 100644 prj/TCPClient/FreeRTOS/queue.c
delete mode 100644 prj/TCPClient/FreeRTOS/tasks.c
delete mode 100644 prj/TCPClient/FreeRTOS/timers.c
delete mode 100644 prj/TCPClient/User/ch32v30x_it.h
delete mode 100644 prj/TCPClient/User/main.c.bak
delete mode 100644 prj/TCPClient/User/system_ch32v30x.h
delete mode 100644 q
delete mode 100644 release/Project_Ch32v307_V1.0_260315.7z
create mode 100644 模式配置与功能说明.md
diff --git a/prj/TCPClient/.cproject b/.cproject
similarity index 99%
rename from prj/TCPClient/.cproject
rename to .cproject
index 7d2730a..0afef4d 100644
--- a/prj/TCPClient/.cproject
+++ b/.cproject
@@ -68,9 +68,9 @@
-
-
-
+
+
+
@@ -157,4 +157,5 @@
+
diff --git a/.gemini/commands/opsx/apply.toml b/.gemini/commands/opsx/apply.toml
deleted file mode 100644
index 88a0dfe..0000000
--- a/.gemini/commands/opsx/apply.toml
+++ /dev/null
@@ -1,149 +0,0 @@
-description = "Implement tasks from an OpenSpec change (Experimental)"
-
-prompt = """
-Implement tasks from an OpenSpec change.
-
-**Input**: Optionally specify a change name (e.g., `/opsx:apply add-auth`). If omitted, check if it can be inferred from conversation context. If vague or ambiguous you MUST prompt for available changes.
-
-**Steps**
-
-1. **Select the change**
-
- If a name is provided, use it. Otherwise:
- - Infer from conversation context if the user mentioned a change
- - Auto-select if only one active change exists
- - If ambiguous, run `openspec list --json` to get available changes and use the **AskUserQuestion tool** to let the user select
-
- Always announce: "Using change: " and how to override (e.g., `/opsx:apply `).
-
-2. **Check status to understand the schema**
- ```bash
- openspec status --change "" --json
- ```
- Parse the JSON to understand:
- - `schemaName`: The workflow being used (e.g., "spec-driven")
- - Which artifact contains the tasks (typically "tasks" for spec-driven, check status for others)
-
-3. **Get apply instructions**
-
- ```bash
- openspec instructions apply --change "" --json
- ```
-
- This returns:
- - Context file paths (varies by schema)
- - Progress (total, complete, remaining)
- - Task list with status
- - Dynamic instruction based on current state
-
- **Handle states:**
- - If `state: "blocked"` (missing artifacts): show message, suggest using `/opsx:continue`
- - If `state: "all_done"`: congratulate, suggest archive
- - Otherwise: proceed to implementation
-
-4. **Read context files**
-
- Read the files listed in `contextFiles` from the apply instructions output.
- The files depend on the schema being used:
- - **spec-driven**: proposal, specs, design, tasks
- - Other schemas: follow the contextFiles from CLI output
-
-5. **Show current progress**
-
- Display:
- - Schema being used
- - Progress: "N/M tasks complete"
- - Remaining tasks overview
- - Dynamic instruction from CLI
-
-6. **Implement tasks (loop until done or blocked)**
-
- For each pending task:
- - Show which task is being worked on
- - Make the code changes required
- - Keep changes minimal and focused
- - Mark task complete in the tasks file: `- [ ]` → `- [x]`
- - Continue to next task
-
- **Pause if:**
- - Task is unclear → ask for clarification
- - Implementation reveals a design issue → suggest updating artifacts
- - Error or blocker encountered → report and wait for guidance
- - User interrupts
-
-7. **On completion or pause, show status**
-
- Display:
- - Tasks completed this session
- - Overall progress: "N/M tasks complete"
- - If all done: suggest archive
- - If paused: explain why and wait for guidance
-
-**Output During Implementation**
-
-```
-## Implementing: (schema: )
-
-Working on task 3/7:
-[...implementation happening...]
-✓ Task complete
-
-Working on task 4/7:
-[...implementation happening...]
-✓ Task complete
-```
-
-**Output On Completion**
-
-```
-## Implementation Complete
-
-**Change:**
-**Schema:**
-**Progress:** 7/7 tasks complete ✓
-
-### Completed This Session
-- [x] Task 1
-- [x] Task 2
-...
-
-All tasks complete! You can archive this change with `/opsx:archive`.
-```
-
-**Output On Pause (Issue Encountered)**
-
-```
-## Implementation Paused
-
-**Change:**
-**Schema:**
-**Progress:** 4/7 tasks complete
-
-### Issue Encountered
-
-
-**Options:**
-1.