## Context 目前项目采用 CH32V30x 微控制器的 DVP (Digital Video Port) 外设,结合 DMA 进行红外图像数据的采集。 为保证后续的图像处理或网络传输顺利进行,必须确认目前的 DVP 和 DMA 的配置是正确的,能够稳定、及时、无损地将红外图像帧搬运到 RAM 区,并正确处理帧中断。 ## Goals / Non-Goals **Goals:** - 验证 DVP 引脚配置、时序极性和中断设置是否符合所搭配红外传感器输出时序要求。 - 验证 DMA 数据搬运目标地址是否正确分配且对齐,大小是否匹配一帧红外数据。 - 确认 DMA/DVP 中断服务程序(ISR)中能有效判断帧结束和 DMA 传输完成,不发生漏帧或混乱。 - 添加必要的轻量级日志或断点测试方法来确认取到的数据。 **Non-Goals:** - 不涉及深度的图像识别或处理算法的开发。 - 不涉及改变传感器本身的输出模式配置(除非影响获取数据的基础正确性)。 ## Decisions - **检查代码而不是立即重写**: 首先静态走查相关的配置(如 `dvp.c`, `dvp.h`),与 CH32 参考手册进行比对。 - **内存块分配策略验证**: 确定 DVP DMA 配置的两块(双缓冲或单缓冲)地址机制,确认没有指针越界风险。 - **测试方法**: 在帧结束中断或主循环中计算短时间内获取的有效帧数,并提取部分像素输出串口打印。 ## Risks / Trade-offs - [Risk] 数据量大可能引起总线或者处理迟滞 → 中断处理要足够短小,不能阻塞下一次 DMA。 - [Risk] 直接修改中断服务可能会影响原有稳定的网络栈通信延时 → 在验证阶段避免添加过多阻塞的 printf 等操作。