全志V881 M3-WB2 sc1770v_aiglass 详细开发笔记
Kernel defconfig(内核功能配置):device/config/chips/v861/configs/sc1770v_aiglass/linux-6.6-xuantie/bsp_defconfig。最终保存位置:device/config/chips/v861/configs/sc1770v_aiglass/linux-6.6-xuantie/bsp_defconfig。路径:dev
V881 M3-WB2 sc1770v_aiglass 详细开发笔记
一、项目基础硬件 & 平台全局信息
1.1 硬件设备信息
- 产品型号:sc1770v_aiglass(AI智能眼镜)
- 硬件板丝印:A11_MB_R_V10
- 启动模式:FASTBOOT 启动
- 主SOC:全志 V881 M3-WB2
- 芯片代号:sun252iw1p1
- 架构:RISC-V 32位 玄铁处理器
- 系统电压:0.92V
1.2 系统软件栈
-
系统框架:Tina Linux(基于 OpenWrt 改造)
-
内核版本:Linux 6.6-xuantie 玄铁定制内核
-
Boot版本:U-Boot 2023、Brandy 2.0
-
异构架构:双核AMP架构
- 大核:跑 Linux 主系统(业务、应用、网络、多媒体)
- 小核:跑 RTOS 实时系统(低功耗、音频、MCU级实时任务)
整机标准启动流程(完整链路)
Boot0 → Sboot → OpenSBI → U-Boot → Linux6.6 Kernel → OpenWrt RootFS
- Boot0:ROM加载,初始化DDR、时钟、基础硬件
- Sboot:安全启动校验、二级引导
- OpenSBI:RISC-V架构底层SBI服务
- U-Boot:读取env参数、加载设备树、加载内核
- Kernel:启动Linux内核、加载驱动
- RootFS:启动OpenWrt系统、应用、服务
二、SDK 顶层全目录
这是一个全志 V881 芯片的 OpenWrt/RTOS 混合 SDK

2.1 brandy/ 【启动固件源码区】
全志原厂 Bootloader 整套源码,是整机开机启动第一层级源码。
- 包含:boot0、spl、sboot、opensbi、u-boot 完整源码
- 作用:负责 DDR 初始化、时钟初始化、安全启动、内核加载
- 编译命令:mboot0、muboot、mboot
- 核心子目录:brandy-2.0/u-boot-bsp、brandy-2.0/spl
-
2.2 bsp/ 【板级底层驱动区】
Board Support Package 板级支持包,所有底层硬件改动必须改这里。 - 包含:板级外设驱动、GPIO、UART、I2C、SPI、PWM、时钟、PMU电源管理
- 包含:公共设备树DTS、电压调频VF配置、板级硬件参数
- 职责:内核底层硬件适配、芯片寄存器配置、底层时序配置
2.3 build/ 【全局编译入口】
项目编译总控制目录,整个SDK的编译中枢。
- 软链接 build.sh 指向 build/top_build.sh
- 包含:全局编译脚本、环境变量、lunch选型逻辑、模块编译规则
- 所有 mxxx 编译命令、pack打包命令均由该目录调度
2.4 device/ 【产品差异化配置总入口|最重要目录】
所有板级配置、分区、DTS、启动参数、产品配置全部在这里,不同机型靠此目录区分。
- 功能:板级DTS、分区表、env启动参数、image打包配置、产品宏定义
- 包含预编译启动固件、开机动画、产品专属配置
-
2.5 kernel/ 【Linux6.6 内核源码】
纯内核源码目录,负责系统内核、驱动、调度、内存管理。 - 路径:kernel/linux-6.6-xuantie/
- 包含:内核源码、Kconfig、内核驱动、模块配置
- 编译命令:mkernel
- 内核配置依赖 device 下的 bsp_defconfig 与 board.dts
2.6 openwrt/ 【根文件系统 & 应用生态】
整机系统上层应用、根文件系统、软件包全部在这里。
- 包含:rootfs根文件系统、LUCI网页、各种应用服务、IPK安装包
- 控制:开机脚本、系统服务、用户程序、文件系统结构
- 编译产物:rootfs.img、各类应用二进制文件
2.7 out/ 【全量编译产物输出目录】
所有编译后的固件、镜像、库、工具全部输出至此,按机型隔离。
- 固定产物路径:out/v861/sc1770v_aiglass/
- 区分不同项目、不同机型产物,互不干扰
2.8 platform/ 【多媒体 & AI 平台层】
全志媒体平台、AI平台核心源码,视频、图像、NPU全部在这里。
- 核心核心:eyesee-mpp 媒体处理框架
- 包含:VI/VO/VENC/VDEC/ISP/3A/AWNN NPU 全套源码
- 包含音频、显示、USB、无线、大模型、视觉工具库
- 编译命令:mkmpp
2.9 prebuilt/ 【预编译闭源库 & 工具链】
官方预编译好的二进制文件、闭源SDK、静态库、动态库、工具链。
- 包含MPP、ISP、NPU闭源 .so / .a 库
- 包含交叉编译依赖工具链文件
2.10 rtos/ 【RISC-V 小核实时系统】
AMP异构小核固件,独立实时系统。
- 核心固件:amp_rv0.bin
- 作用:低功耗控制、音频实时处理、MCU级任务
- 普通Linux应用开发基本无需改动
2.11 tools/ 【固件工具集】
镜像打包、分区生成、烧录工具、dtc设备树编译、固件合成脚本。
2.12 docs/ 【项目文档】
原厂手册、硬件规格、开发说明文档。
三、device目录 层级详解(项目配置核心)
整机所有板级配置、分区、启动、产品属性全部由该目录决定
device/
├── config/
│ ├── chips/ # 芯片级专属配置
│ │ └── v861/ # V881/V861芯片通用配置目录
│ │ ├── bin/ # 预编译启动固件合集(boot0/uboot/opensbi/sboot)
│ │ ├── boot-resource/# 开机动画、LOGO、字体资源
│ │ ├── configs/ # 所有产品机型配置文件夹
│ │ │ └── sc1770v_aiglass/ # 当前AI眼镜专属配置
│ │ └── tools/ # 芯片级打包、镜像工具
│ ├── common/ # 全平台公共通用配置
│ │ ├── imagecfg/ # 镜像打包规则 image_linux.cfg / image_nor.cfg
│ │ ├── partition/ # 公共分区表模板
│ │ └── dtb/ # 公共设备树头文件、通用dtsi
│ └── rootfs_tar/ # rootfs基础文件系统模板
└── product -> ./config/chips/v861/ # 产品软链接,编译识别入口
sc1770v_aiglass 产品专属配置文件全解
路径:device/config/chips/v861/configs/sc1770v_aiglass/
- BoardConfig.mk:项目全局编译总配置
- 定义芯片型号、架构、内核版本、uboot版本、编译参数
- 控制所有 mxxx编译命令的编译入口
- sys_partition.fex:NAND闪存分区表(整机分区规则)
- sys_partition_nor.fex:NOR闪存分区表
- env.cfg:U-Boot环境变量、内核bootargs启动参数、内存参数
- board.dts:Linux内核板级设备树(硬件引脚、外设、总线配置)
- uboot-board.dts:U-Boot阶段设备树
- boot_package.cfg:mboot打包规则(opensbi+uboot合成)
- image.cfg:整机固件镜像打包配置
- linux-6.6-xuantie/bsp_defconfig:内核功能开关配置
- boot-resource:开机LOGO、动画
四、修改uboot,kernel,openwrt,mpp,配置方法
- 改硬件引脚、外设、总线 → 修改 device 下 board.dts / uboot-board.dts
- 改内核功能、驱动开关、内核配置 → 修改 bsp_defconfig
- 改 U-Boot 功能、命令、驱动、宏开关 → 修改 U-Boot defconfig
- 改 U-Boot 硬件、设备树 → 修改 uboot-board.dts
- 改分区大小、分区结构 → 修改 sys_partition.fex
- 改开机启动参数、bootargs → 修改 env.cfg
- 改视频采集、编码、ISP、3A、NPU → 修改 platform/eyesee-mpp
- 改系统应用、开机自启、服务、网页后台 → 修改 openwrt/package
- 改编译全局配置、芯片 / 内核 /uboot 版本 → 修改 BoardConfig.mk
- 改开机动画、LOGO、开机画面 → 修改 device/boot-resource
对应精准路径
✅ U-Boot 相关
- U-Boot DTS:device/config/chips/v861/configs/sc1770v_aiglass/uboot-board.dts
- U-Boot defconfig(功能配置):brandy/brandy-2.0/u-boot-bsp/configs/sun252iw1p1_v861_defconfig
- U-Boot 源码目录:brandy/brandy-2.0/u-boot-bsp/
✅ Kernel 相关
-
Kernel DTS(板级设备树):device/config/chips/v861/configs/sc1770v_aiglass/linux-6.6-xuantie/board.dts
-
Kernel defconfig(内核功能配置):device/config/chips/v861/configs/sc1770v_aiglass/linux-6.6-xuantie/bsp_defconfig
配置编译命令:make kernel_menuconfig
最终保存位置:device/config/chips/v861/configs/sc1770v_aiglass/linux-6.6-xuantie/bsp_defconfig -
Kernel 源码目录:kernel/linux-6.6-xuantie/
✅ OpenWrt 文件系统,mpp 相关
配置编译命令:make menuconfig
- 最终保存位置:/home/zcb/v881-sdk/openwrt/target/v861/v861-sc1770v_aiglass/defconfig
- 作用:增删软件包、开启 / 关闭系统功能、配置根文件系统
五、platform 多媒体 & AI 架构全解析
5.1 顶层目录功能
- audio/:ALSA音频驱动、音频控制、声卡适配
- common/:ION内存、日志、基础公共库
- display/:LCD显示、VO视频输出、图层管理
- eyesee-apps/:官方AI眼镜、UVC、AOV示例Demo(当前板型专用)
- eyesee-mpp/:✅ 全志媒体处理核心框架
- llm/:NPU大模型推理、AI计算组件
- multimedia/:CedarX编解码引擎、多媒体Demo工具
- power/:时钟、DVFS调频、电源功耗管理
- usb/:USB gadget、UVC摄像头、USB协议适配
- vision/:ISP图像处理、视觉算法、AI工具链,NPU
- wireless/:WiFi、蓝牙驱动与适配
5.2 eyesee-mpp 核心完整拆解(VI/VO/VENC/VDEC/ISP)
媒体业务全部核心逻辑,所有视频采集、显示、编码、解码、图像处理都在这里。
eyesee-mpp/
├── external/ # 第三方依赖库(jsoncpp、sqlite、web服务、音频库)
├── framework/ # 高层应用框架(相机/录像/播放器/UVC)
├── middleware/ # ✅ MPP核心中间件(MPI媒体接口层)
└── system/ # ION内存、VB缓冲池、硬件抽象、系统初始化
middleware 核心文件(重中之重)
- mpi_vi.c:视频输入(摄像头采集)
- mpi_vo.c:视频输出(屏幕显示)
- mpi_venc.c:H264/H265 视频编码
- mpi_vdec.c:视频解码
- mpi_isp.c:ISP图像信号处理
- mpi_ae/awb.c:自动曝光、自动白平衡3A算法
- mpi_sys.c:MPP系统绑定、缓冲管理、内存调度
六、编译sdk方法:
1、单个镜像模块编译
设置环境并选择产品
source build/envsetup.sh
lunch
选择步骤
- 选择机型:8 → v861-sc1770v_aiglass-tina
- 选择主芯片:3 → V881
- 选择子型号:3 → M3-WB2
- 选择电压:1 → 0.92V
编译 Boot0 / SPL / Sboot
mboot0
编译 U-Boot
muboot
编译 Linux 内核
mkernel
编译 MPP / OpenWrt 根文件系统
mkmpp
打包最终量产镜像
pack
2、全量编译
source build/envsetup.sh
lunch
8 → 3 → 3 → 1
boot0 + uboot + kernel + mpp + openwrt + 自动 pack
mp -j1
七、out 编译输出目录完整结构与产物释义
基准路径:v881-sdk/out/v861/sc1770v_aiglass/
7.1 最终量产整机固件
out/v881m3-wb2_linux_sc1770v_aiglass_uart0.img(34MB 整机烧录镜像)
7.2 细分输出目录
① openwrt/ 固件源文件目录(pack 打包从该目录取源)
- u-boot-sun252iw1p1.bin:主 U-Boot 固件
- u-boot-nodtb.fex / u-boot-dtb.fex:无设备树 / 带设备树 U-Boot 镜像
- sboot_nand_sun252iw1p1.bin:Sboot 一级启动固件
- sunxi.dtb:编译后设备树二进制
- boot.img:Linux 内核 + 设备树镜像,打包生成boot.fex
- rootfs.img:OpenWrt 根文件系统原始镜像,打包生成rootfs.fex
② pack_out/ 分区打包产物目录
pack 根据 sys_partition.fex 拆分生成所有分区 fex 镜像与配置脚本
- sys_partition.fex:打包最终生效分区配置表
- boot-resource.fex:开机 LOGO / 启动资源分区镜像
- env.fex:U-Boot 环境变量分区镜像(env、env-redund 双分区共用)
- boot.fex:内核分区镜像(bootA/bootB 双备份分区)
- amp_rv0.fex:RISC-V 小核 RTOS 固件(riscv0/riscv0-r 双备份)
- rootfs.fex:根文件系统镜像(rootfsA/rootfsB 双备份分区)
- 辅助配置:image.cfg、boot_package.fex、sunxi_mbr.fex、toc 系列配置、cardscript 脚本等
7.3 openwrt/build_dir、staging_dir、packages 编译中间目录
1.staging_dir 交叉编译汇总目录
存放工具链、头文件、库、文件系统模板
- staging_dir/toolchain:RISC-V32 交叉编译工具链
- staging_dir/target/usr/include:MPP/ISP/NPU/ 系统头文件汇总
- staging_dir/target/usr/lib:编译产出所有.so 动态库、.a 静态库
- staging_dir/target/root-v861-sc1770v_aiglass:根文件系统原始模板目录
2.build_dir 源码编译临时目录
- 各软件包、MPP 源码编译临时目录,编译过程 libawion.so、librt_media.so 等动态库由此拷贝至 ramdisk
3.packages/
编译完成的 ipk 安装包,可单独离线安装到成品设备
补充:板级备用 bin 目录
device/config/chips/v861/configs/sc1770v_aiglass/bin/
更多推荐

所有评论(0)