Skip to content

KennethLiu61/sg200x-build

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 多个城市及美国、新加坡等国家设有研发中心。

技术论坛

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published