Hi-AIoT-Solution 目录结构
本文档介绍 Hi-AIoT-Solution 的文件目录结构与代码仓管理方式。项目采用多仓架构:主仓库 hi_aiot_solution 负责整体构建、配置与文档,各业务模块(组件、开发板应用等)以独立子仓形式维护,通过 repo 工具统一下载与管理。下文将说明各目录的职责划分及子仓与主仓库的关联关系。
文件目录结构
项目整体目录结构如下:
hi_aiot_solution/
├── .agents/ # AI 编程辅助工具
├── apps/ # 开发板应用
│ └── cv610_ev_board/ # Sunniwell CV610 DevBoard 开发板目录
├── components/ # 可复用组件
│ ├── adapter/ # 屏幕/sensor等外设硬件适配
│ ├── hiai/ # AI 能力组件
│ ├── hichannel/ # 通信组件
│ ├── media/ # 媒体处理组件
│ └── network/ # 网络组件
├── configs/ # 统一构建配置(config.cmake、Kconfig、sdk.cmake)
├── docs/ # 项目核心文档
├── open_source/ # 第三方开源库源码包
├── ohos/ # OpenHarmony 社区代码(非子仓,OHOS 构建时使用)
├── ohos_adapt/ # OpenHarmony 适配层(patch)子仓
├── scripts/ # 构建脚本
├── sdk/ # 海思芯片 SDK
├── tools/ # 工具
└── vendor/ # 三方厂商适配
代码仓管理
多仓管理模型
项目由 1 个主仓与多个子仓组成,各仓库职责如下:
- 主仓(hi_aiot_solution):承载统一构建入口(
scripts/build.sh、CMakePresets.json、configs/)、文档(docs/)与 AI 编程辅助(.agents/),不承载具体业务代码。 - 子仓:按业务领域拆分(组件、板卡应用、OpenHarmony 适配等),每个子仓是独立的 git 仓库,拥有独立的提交历史、分支与权限,可单独开发、评审与发布。
主仓与子仓的关联关系由 manifest 仓描述:manifest 文件记录每个子仓的远程地址、分支与本地路径映射,repo 工具据此将各子仓下载到主仓对应的目录下,形成完整工程。manifest 通过 groups 区分两种构建形态:
- default:OHOS 构建,下载全部代码仓(含 OpenHarmony 社区代码与 ohos_adapt)。
- linux:Linux 构建,不含 OpenHarmony 社区代码与 ohos_adapt(
repo init时通过-g linux指定)。
源码下载步骤详见相关文档。
仓库介绍
主仓库 hi_aiot_solution 是项目核心,仓库地址:https://gitcode.com/HiSpark/hi_aiot_solution 。项目涉及的代码仓按用途分为五类,清单如下。
组件子仓
| 子仓 | 说明 | 仓库地址 |
|---|---|---|
| components/adapter | 硬件抽象与驱动适配(LCD、触摸屏、ADC、Wi-Fi 等) | HiSpark/hi_aiot_solution_adapter |
| components/hiai | AI 能力(云端 Agent、离线语音、ZeroClaw) | HiSpark/hi_aiot_solution_hiai |
| components/hichannel | 通信与消息通道 | HiSpark/hi_aiot_solution_hichannel |
| components/media | 媒体与显示(DRM 图形、LVGL UI) | HiSpark/hi_aiot_solution_media |
| components/network | 网络通信 | HiSpark/hi_aiot_solution_network |
板卡应用子仓
| 子仓 | 说明 | 仓库地址 |
|---|---|---|
| apps/cv610_ev_board | Hi3516CV610 Sunniwell 开发板应用,含参考方案与功能示例 | HiSpark/hi_aiot_solution_cv610_ev_board |
芯片 SDK 仓
| 仓库 | 说明 | 仓库地址 |
|---|---|---|
| sdk/Hi3516CV610 | Hi3516CV610 芯片 BSP/MPP SDK | HiSpark/Hi3516CV610 |
- SDK 由 manifest(
chipsets/hi3516cv610/components/sdk.xml)引入,随repo sync下载到sdk/Hi3516CV610/;其内部的 3 个子仓库(linux、u-boot、busybox)同样展开为独立 project 一并下载。 - 编译时由
sdk/prepare.cmake处理:hispark版本SDK对已下载的 SDK 应用sdk/patches/中的补丁;hisupport版本SDK则解压sdk/*.tgz包落地。 - SDK 落地目录已被主仓 gitignore,不入主仓版本管理;主仓仅保留编译脚本(
build.cmake、prepare.cmake等)与补丁。
OpenHarmony 仓
| 仓库 | 说明 | 仓库地址 |
|---|---|---|
| ohos_adapt | OpenHarmony 适配层(patch),完成 OHOS 构建 | HiSpark/hi_aiot_solution_ohos |
| ohos/ | OpenHarmony 社区代码(v6.1-LTS),由 manifest 以多个 project 形式从 openharmony 社区仓下载,仅 OHOS 构建需要 | — |
ohos/下的社区代码仓数量众多且由 OpenHarmony 社区维护,不在本页面逐一列出。ohos_adapt/存放适配层 patch,配合ohos/下的社区代码完成 OHOS 构建。
多仓管理配置仓
| 仓库 | 说明 | 仓库地址 |
|---|---|---|
| manifest | 多仓结构配置,记录各代码仓的远程地址、分支与本地路径映射 | HiSpark/hi_aiot_solution_manifest |