从零开始学习 sg200x 多核开发之 milkv-duo256 编译运行 sophpi

sophpi 是 算能官方针对 sg200x 系列的 SDK 仓库 https://github.com/sophgo/sophpi ,支持 cv180x、cv81x、sg200x 系列的芯片。

SG2002 简介

SG2002 是面向边缘智能监控 IP 摄像机、智能猫眼门锁、可视门铃、居家智能等多项产品领域而推出的高性能、低功耗芯片,集成了 H.264 视频压缩编解码器, H.265 视频压缩编码器和 ISP;支持 HDR 宽动态、3D 降噪、除雾、镜头畸变校正等多种图像增强和矫正算法,为客户提供专业级的视频图像质量

芯片更集成了自研 TPU,在 8 位整数运算下,可提供 1.0TOPS 的算力。特殊设计的 TPU 调度引擎能有效地为所有的张量处理器核心提供极高的带宽数据流。此外也为用户提供了强大的深度学习模型编译器和软件 SDK 开发包。主流的深度学习框架,比如 Caffe 和 Tensorflow,可以轻松地移植到其平台上。除此之外,还提供了安全启动,安全更新,安全加密等,为用户从开发、量产、产品应用,提供一系列安全解决方案。

Milk-V Duo 256M 是 Duo 的升级版本,内存提升至 256M,满足需要更大内存容量的应用。采用 SG2002 计算系列芯片,计算能力提升至 1.0TOPS@INT8。它可以实现 RISC-V/ARM 架构之间的无缝切换,并支持双系统同时运行。此外,它还包含 SPI、UART 等一系列丰富的 GPIO 接口,适合边缘智能监控领域的各种硬件开发,包括 IP 摄像头、智能猫眼锁、可视门铃等。

编译

  1. 下载
shell 复制代码
$ git clone -b sg200x-evb git@github.com:sophgo/sophpi.git
$ cd sophpi
$ ./scripts/repo_clone.sh --gitclone scripts/subtree.xml

仓库采用子仓库的形式,子仓库很多,很大,下载很考验网速和耐心。。。

  1. 配置
    sophpi 仓库默认没有选择 rootfs,需要手动配置。
shell 复制代码
$ source build/cvisetup.sh
$ defconfig sg2002_wevb_riscv64_sd
$ menuconfig
    ROOTFS options --->
    [*] Enable buildroot generate rootfs   

否则,编译出来的系统会非常小,连基本的文件系统都没有,无法正常启动。 查看 build/.config 文件,可以看到如下内容:

bash 复制代码
#
# ROOTFS options
#
CONFIG_SKIP_RAMDISK=y
# CONFIG_ROOTFS_OVERLAYFS is not set
# CONFIG_BUILDROOT_FS is not set
# CONFIG_USE_4K_ERASE_SIZE_FOR_JFFS2 is not set
# end of ROOTFS options

手工修改 sophpi\build\boards\cv181x\sg2002_wevb_riscv64_sd\sg2002_wevb_riscv64_sd_defconfig 文件,修改以下内容:

bash 复制代码
CONFIG_BUILDROOT_FS=y
  1. 编译
shell 复制代码
$ source build/cvisetup.sh
$ defconfig sg2002_wevb_riscv64_sd
$ clean_all
$ build_all
$ pack_burn_image

默认编译出来的版本是最小系统,只能通过串口终端完成最基本操作。

烧录镜像

Windows 下推荐使用 BalenaEtcher 烧录系统镜像, 可在 https://etcher.balena.io/ ,下载安装。

镜像文件在 install/soc_sg2002_wevb_riscv64_sd 目录下,文件名为 sophpi-duo-20240912-0719.img,烧录到 SD 卡即可。

分步骤编译

  1. 编译
shell 复制代码
$ source build/cvisetup.sh
$ defconfig sg2002_wevb_riscv64_sd
$ build_fsbl        # 编译 FSBL
$ build_uboot       # 编译 UBOOT
$ build_kernel      # 编译 LINUX Kernel

更多命令可以参考 build/cvisetup.sh 文件。

  1. 打包镜像
shell 复制代码
$ pack_burn_image

如果你对 sg2002/sg2000/cv1800b 等 RISC-V 芯片开发有兴趣,可以加入QQ群:920973004 交流

相关推荐
BigDark的笔记4 天前
【鸿蒙】0x02-LiteOS-M基于Qemu RISC-V运行
华为·harmonyos·risc-v
早上真好8 天前
【项目推荐】CakeMu-RV:一个开放的 RISC-V 处理器模拟器学习项目
嵌入式硬件·mcu·学习·计算机外设·risc-v
sinovoip8 天前
Banana Pi BPI-RV2 RISC-V路由开发板采用矽昌通信SF2H8898芯片
risc-v
CV金科9 天前
freertos的基础(二)内存管理:堆和栈
stm32·开源·arm·freertos·risc-v
BroccoliKing11 天前
An FPGA-based SoC System——RISC-V On PYNQ项目复现
arm开发·单片机·mcu·fpga开发·dsp开发·risc-v
百里杨13 天前
X86(Local APIC+I/O APIC)与RISC-V(IMSIC+APLIC)对比
risc-v·x86·local apic·ioapic·imsic·aplic
嵌入式Linux,14 天前
一块钱的RISC-V 32位芯片
risc-v
世事如云有卷舒19 天前
RISC-V学习笔记
笔记·学习·risc-v
oahrzvq21 天前
【CPU】RISC-V 与 x86 操作数字段的区别
系统架构·risc-v
MounRiver_Studio21 天前
基于VSCode软件框架的RISC-V IDE MRS2正式上线发布
ide·vscode·mcu·risc-v