Skip to content

KennethLiu61/sg200x-build

Folders and files

NameName
Last commit message
Last commit date

Latest commit

2c84469 · Mar 25, 2024

History

7 Commits
Mar 25, 2024
Mar 4, 2024
Mar 4, 2024
Mar 4, 2024
Mar 4, 2024
Mar 4, 2024
Mar 25, 2024
Mar 25, 2024
Mar 19, 2024
Mar 19, 2024
Mar 25, 2024
Mar 25, 2024
Mar 4, 2024
Mar 4, 2024

Repository files navigation

简体中文 | English

目录

项目简介

  • 本仓库提供算能科技端侧芯片 SG200XCV181xCV180x 三个系列芯片的软件开发包(SDK)。
  • 主要适用于官方 EVB 和 Duo 开发板。

硬件资料

芯片规格

SDK目录结构

.
├── build               // 编译目录,存放编译脚本和板级配置
├── freertos            // freertos 系统
├── fsbl                // fsbl 启动固件
├── install             // 执行一次完整编译后,镜像的存放路径
├── isp_tuning          // 图像效果调试参数存放路径
├── linux_5.10          // 开源 Linux 内核
├── middleware          // 自研多媒体框架,包含 so 与 ko
├── opensbi             // 开源 opensbi 库
├── osdrv               // 驱动程序
├── oss                 // 第三方库
├── ramdisk             // 存放最小文件系统的预编译目录
└── u-boot-2021.10      // 开源 uboot 代码

快速开始

准备编译环境

  • 在本地或虚拟机中安装 Ubuntu 系统,推荐 Ubuntu 22.04 LTS

  • 安装串口工具:例如 MobaXtermXshell 等,可根据自身喜好选择。

  • 确保虚拟机联网,安装编译依赖:

    sudo apt install pkg-config build-essential ninja-build automake autoconf libtool wget curl git gcc libssl-dev bc slib squashfs-tools android-sdk-libsparse-utils android-sdk-ext4-utils jq cmake python3-distutils tcl scons parallel openssh-client tree python3-dev python3-pip device-tree-compiler libssl-dev ssh cpio squashfs-tools fakeroot libncurses5 flex bison
  • 若执行后出现报错无法定位软件包 android-sdk-ext4-utils,请参考此页单独安装该软件包,具体架构可cat /proc/version查看。

  • 注意:cmake 最低版本要求为 3.16.5,而在 Ubuntu 20.04 中使用 apt 安装的 cmake 版本号为 3.16.3,不满足 SDK 的最低版本要求,因此需要手动安装最新版本。

    wget https://github.com/Kitware/CMake/releases/download/v3.27.6/cmake-3.27.6-linux-x86_64.sh
    chmod +x cmake-3.27.6-linux-x86_64.sh
    sudo sh cmake-3.27.6-linux-x86_64.sh --skip-license --prefix=/usr/local/
    

    手动安装的 cmake 在 /usr/local/bin 目录下,使用 cmake --version 命令可查看其版本号:

    cmake version 3.27.6
    

获取SDK

  • 在clone仓库之前,请先参考这里配置好github SSH key。 或者,您可以使用HTTPS URL来克隆仓库,将scritps/repo_clone.sh脚本中SSH部分
    REMOTE_URL=$(grep -o '<remote.*/>' ${dir} | sed 's/.*fetch="\([^"]*\)".*/\1/' | sed "s/ssh:\/\/\(.*\)/ssh:\/\/$USERNAME@\1/")
    修改为
    REMOTE_URL=$(grep -o '<remote.*/>' ${dir} | sed 's/.*fetch="\([^"]*\)".*/\1/' | sed "s/git@\(.*\):/https:\/\/\1\//")`
    即可。
  • 设置git的全局postBuffer为一个足够大的值,git config --global http.postBuffer 2147483648,以免在拉取仓库时出现EOF错误。
  • 本 SDK 仓库采用自动化脚本的方式管理子仓库,在拉取 SDK 时请使用如下的命令:
git clone https://github.com/sophgo/sophpi.git -b sg200x-evb
cd sophpi
./scripts/repo_clone.sh --gitclone scripts/subtree.xml
  • 若以上的方式拉取失败,或者您当前是在 build 项目中查看本文档,您可以单独拉取每个子仓库,详见 #常见问题解答
  • 如果本地已经有host-tools仓库,可以把subtree.xml中的host-tools删掉,拉取速度快点。

准备编译工具

如果您在上一步中没有碰到任何问题,您可以跳过这一步。

  • 获取工具链 默认拉取subtree.xml就会拉取host-tools仓库
git clone https://github.com/sophgo/host-tools.git

编译

  • sg2000_duo_sd为例,首先切换到 SDK 的根目录:
cd sophpi/
  • 使用以下路径启用环境设置脚本:
source build/envsetup_soc.sh
  • 会出现以下的提示:
-------------------------------------------------------------------------------------------------------
  Usage:
  (1) menuconfig - Use menu to configure your board.
      ex: $ menuconfig

  (2) defconfig $CHIP_ARCH - List EVB boards($BOARD) by CHIP_ARCH.
      ** sg200x ** -> ['sg2000', 'sg2002']
      ** cv181x ** -> ['cv1812cp', 'cv1812h', 'cv1813h']
      ** cv180x ** -> ['cv1800b']
      ex: $ defconfig cv181x

  (3) defconfig $BOARD - Choose EVB board settings.
      ex: $ defconfig cv1813h_wevb_0007a_spinor
      ex: $ defconfig cv1812cp_wevb_0006a_spinor
-------------------------------------------------------------------------------------------------------
  • 根据以上的提示,输入 defconfig sg200x,就会列出当前支持的开发板列表:
* sg200x * the avaliable cvitek EVB boards
  sg2000 - sg2000_duo_sd [C906B + EMMC 8192MB + DDR 512MB]
  sg2002 - sg2002_duo_sd [C906B + EMMC 8192MB + DDR 256MB]
  • 选择对应的开发板型号,输入 clean_all && build_all 开始编译:
defconfig sg2000_duo_sd
clean_all && build_all
pack_burn_image
  • 编译成功后即可在 install 目录下看到生成的镜像。若编译出现问题,请检查是否有文件缺失,参考#常见问题解决重新拉取相应仓库,并重新按步骤编译。

SD卡烧录

使用镜像

注意:烧录过程中会清除 SD 卡中的全部内容,请务必提前做好备份!

  • 准备一张 SD 卡
  • 在 Windows 下,可以使用 balenaEtcherRufusWin32 Disk Imager 等工具将生成的镜像写入 SD 卡中。
  • 在 Linux 下,可以使用 dd 命令将镜像写入 SD 卡中:
sudo dd if=sophpi-duo-XXX.img of=/dev/sdX

使用upgrade zip

  • 接好 EVB 板的串口线
  • 将 SD 卡格式化为 FAT32 格式
  • install 目录下的 upgrade.zip 压缩包解压缩并放入 SD 卡根目录,取决于具体开发板型号,压缩包中的文件可能不同:
soc_cv1812h_wevb_0007a_emmc
.
├── boot.emmc
├── cfg.emmc
├── fip.bin
├── META/
├── partition_emmc.xml
├── rootfs.emmc
├── system.emmc
└── utils/

soc_cv1800b_sophpi_duo_sd
.
├── boot.sd
├── META/
├── partition_sd.xml
├── rootfs.sd
└── utils/
  • 将 SD 卡插入卡槽中
  • 给开发板上电,开机就会自动进入烧录。
  • 等待烧录成功后,拔掉 SD 卡,重新给开发板上电,即可进入系统。

常见问题解答

脚本拉取失败

如果您无法使用自动化脚本的方式拉取代码,也可以使用如下命令分别拉取各个子仓库:

mkdir sophpi -p && cd sophpi
git clone https://github.com/sophgo/build -b sg200x-dev
git clone https://github.com/sophgo/freertos -b sg200x-dev
git clone https://github.com/sophgo/FreeRTOS-Kernel -b sg200x-dev freertos/Source
git clone https://github.com/sophgo/Lab-Project-FreeRTOS-POSIX -b sg200x-dev freertos/Source/FreeRTOS-Plus-POSIX
git clone https://github.com/sophgo/fsbl -b sg200x-dev
git clone https://github.com/sophgo/isp_tuning -b sg200x-dev
git clone https://github.com/sophgo/linux_5.10 -b sg200x-dev
git clone https://github.com/sophgo/middleware -b sg200x-dev
git clone https://github.com/sophgo/opensbi -b sg200x-dev
git clone https://github.com/sophgo/osdrv -b sg200x-dev
git clone https://github.com/sophgo/oss
git clone https://github.com/sophgo/ramdisk -b sg200x-dev
git clone https://github.com/sophgo/u-boot-2021.10 -b sg200x-dev

之后按照即可按照正常程序获取 SDK 并编译。

如果您还有疑问,欢迎通过邮箱联系本仓库的维护者:

相关项目

关于算能

算能致力于成为全球领先的通用算力提供商。
算能专注于AI、RISC-V CPU等算力产品的研发和推广应用,以自研产品为核心打造了覆盖“云、边、端”的全场景应用矩阵 ,为城市大脑、智算中心、智慧安防、智慧交通、安全生产、工业质检、智能终端等应用提供算力产品及整体解决方案 。公司在北京、上海、深圳、青岛、厦门等国内 10 多个城市及美国、新加坡等国家设有研发中心。

技术论坛