fix(cvi_camera): I422→I420 V 平面偏移 bug——检测’失明’根因 V 平面源偏移写成 2*SMALLCORE_Y_SIZE(614400)——越界读到下一块乒乓 缓冲的 Y 平面;正确值 460800(= Y 307200 + U 153600,I422 布局)。 注释一直写着 460800,代码写错。 后果:TPU 的红色度平面 = 错帧亮度数据 → 黄球色彩特征被摧毁 → 模型对清晰可见的中央网球只打 0.025-0.04 分(默认阈值 0.5 下零检出, ‘检测失明’)。U 平面幸免(偏移恰好正确),YUV 三缺二。 为何长期未暴露:相机 JPEG 子采样随曝光模式变化——输出 I420(460800) 时转换路径被整体跳过(src 直通,检测正常 0.797);切到 I422(614400) 时 buggy 转换路径激活。本轮 AE/光线变化触发格式切换,bug 显形。 定位手段(证据链): ① 导出板上帧 base64→PNG:像素分析证实中央有暗色球体+右缘有黄特征 ② max_score 探针:模型对球位置打 0.025-0.04(看到但不敢认) ③ 两者矛盾 → 色度路径嫌疑 → 代码复查发现偏移错误 修复后: 中央球 conf 0.025 → 0.859(34 倍),30/30 帧检出,PASS
fix(cvi_camera): I422→I420 V 平面偏移 bug——检测’失明’根因
V 平面源偏移写成 2*SMALLCORE_Y_SIZE(614400)——越界读到下一块乒乓 缓冲的 Y 平面;正确值 460800(= Y 307200 + U 153600,I422 布局)。 注释一直写着 460800,代码写错。
后果:TPU 的红色度平面 = 错帧亮度数据 → 黄球色彩特征被摧毁 → 模型对清晰可见的中央网球只打 0.025-0.04 分(默认阈值 0.5 下零检出, ‘检测失明’)。U 平面幸免(偏移恰好正确),YUV 三缺二。
为何长期未暴露:相机 JPEG 子采样随曝光模式变化——输出 I420(460800) 时转换路径被整体跳过(src 直通,检测正常 0.797);切到 I422(614400) 时 buggy 转换路径激活。本轮 AE/光线变化触发格式切换,bug 显形。
定位手段(证据链): ① 导出板上帧 base64→PNG:像素分析证实中央有暗色球体+右缘有黄特征 ② max_score 探针:模型对球位置打 0.025-0.04(看到但不敢认) ③ 两者矛盾 → 色度路径嫌疑 → 代码复查发现偏移错误
修复后: 中央球 conf 0.025 → 0.859(34 倍),30/30 帧检出,PASS
面向操作系统与虚拟化研发的一体化 Rust 工作区
English | 中文
TGOSKits 是一个面向操作系统与虚拟化开发的集成仓库,汇聚 ArceOS、StarryOS、Axvisor 以及共享组件、平台适配和驱动生态。仓库通过统一的 cargo xtask 入口组织构建、运行、调试和测试流程,适合进行组件级开发、跨系统联调和系统级验证。
cargo xtask
项目网站:https://rcore-os.cn/tgoskits/。如果想先理解项目定位和系统关系,请从 TGOSKits 文档 开始。
TGOSKits 仓库通过 Git Subtree 汇入多个独立子项目,并在根目录提供统一的构建、运行、测试和文档入口。主要目录如下:
tgoskits/ ├── components/ # 可复用组件 crate ├── os/ │ ├── arceos/ # ArceOS 模块化内核 │ ├── StarryOS/ # StarryOS Linux 兼容 OS │ └── axvisor/ # Axvisor Type-I Hypervisor ├── platform/ # 平台与板卡适配 crate ├── drivers/ # 可复用驱动与驱动子系统 ├── test-suit/ # 系统级测试用例 ├── xtask/ # 根目录统一命令入口 ├── scripts/ # 仓库维护、测试和同步脚本 └── docs/ # Docusaurus 文档站点
更多关于 subtree 同步、组件分层和开发约定的说明,请参考 仓库结构与协作方式 和 架构设计概览。
首次体验推荐使用项目容器镜像。镜像内已经包含 Rust 工具链、QEMU 和常用交叉编译依赖,与 CI 环境保持一致:
git clone https://github.com/rcore-os/tgoskits.git cd tgoskits docker pull ghcr.io/rcore-os/tgoskits-container:latest docker run -it --rm \ -v "$(pwd)":/workspace \ -w /workspace \ ghcr.io/rcore-os/tgoskits-container:latest
如果不使用容器,请至少准备 Rust、基础构建工具和常用 QEMU。推荐使用与容器和 CI 一致的 QEMU 11.1.1;发行版自带 QEMU 可用于快速体验,但如果遇到架构缺失或运行差异,请优先切换到容器环境:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh sudo apt update sudo apt install -y cmake make ninja-build pkg-config sudo apt install -y qemu-system-arm qemu-system-riscv64 qemu-system-x86 cargo install cargo-binutils
完整环境说明见 快速开始总览 和 CI 与容器镜像。
先确认常用 QEMU 命令可用,并尽量与容器和 CI 使用的 QEMU 11.1.1 对齐:
qemu-system-riscv64 --version qemu-system-aarch64 --version qemu-system-x86_64 --version qemu-system-loongarch64 --version
随后可以用统一的 cargo xtask 入口快速运行三个系统路径:
# ArceOS: 运行 Hello World cargo xtask arceos qemu --package arceos-helloworld --arch aarch64 # StarryOS: 首次运行前准备 rootfs cargo xtask starry rootfs --arch aarch64 cargo xtask starry qemu --arch aarch64 # Axvisor: 运行 Hypervisor QEMU 场景 cargo xtask axvisor qemu --arch aarch64
如果只想先跑通一个最短路径,建议从 ArceOS Hello World 开始。更多系统、架构组合和 QEMU 参数说明见 快速开始总览 和 运行与 QEMU。
欢迎通过 Issue 和 Pull Request 参与 TGOSKits。推荐流程:
dev
完整开发示例、文档贡献和 rootfs 维护说明见 贡献文档。问题反馈和补丁提交请使用 GitHub Issues 与 GitHub Pull Requests。
TGOSKits 仓库整体采用 Apache-2.0 许可证。部分 subtree 组件可能包含自己的许可证文件;如有差异,以组件目录中的许可证文件为准。
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
TGOSKits
面向操作系统与虚拟化研发的一体化 Rust 工作区
English | 中文
1. 简介
TGOSKits 是一个面向操作系统与虚拟化开发的集成仓库,汇聚 ArceOS、StarryOS、Axvisor 以及共享组件、平台适配和驱动生态。仓库通过统一的
cargo xtask入口组织构建、运行、调试和测试流程,适合进行组件级开发、跨系统联调和系统级验证。项目网站:https://rcore-os.cn/tgoskits/。如果想先理解项目定位和系统关系,请从 TGOSKits 文档 开始。
2. 仓库
TGOSKits 仓库通过 Git Subtree 汇入多个独立子项目,并在根目录提供统一的构建、运行、测试和文档入口。主要目录如下:
更多关于 subtree 同步、组件分层和开发约定的说明,请参考 仓库结构与协作方式 和 架构设计概览。
3. 快速体验
3.1 环境配置
首次体验推荐使用项目容器镜像。镜像内已经包含 Rust 工具链、QEMU 和常用交叉编译依赖,与 CI 环境保持一致:
如果不使用容器,请至少准备 Rust、基础构建工具和常用 QEMU。推荐使用与容器和 CI 一致的 QEMU 11.1.1;发行版自带 QEMU 可用于快速体验,但如果遇到架构缺失或运行差异,请优先切换到容器环境:
完整环境说明见 快速开始总览 和 CI 与容器镜像。
3.2 QEMU 验证
先确认常用 QEMU 命令可用,并尽量与容器和 CI 使用的 QEMU 11.1.1 对齐:
随后可以用统一的
cargo xtask入口快速运行三个系统路径:如果只想先跑通一个最短路径,建议从 ArceOS Hello World 开始。更多系统、架构组合和 QEMU 参数说明见 快速开始总览 和 运行与 QEMU。
4. 贡献
欢迎通过 Issue 和 Pull Request 参与 TGOSKits。推荐流程:
dev创建功能分支。cargo xtask构建、测试或 clippy 检查。完整开发示例、文档贡献和 rootfs 维护说明见 贡献文档。问题反馈和补丁提交请使用 GitHub Issues 与 GitHub Pull Requests。
5. 许可证
TGOSKits 仓库整体采用 Apache-2.0 许可证。部分 subtree 组件可能包含自己的许可证文件;如有差异,以组件目录中的许可证文件为准。