跳转至

搭建开发环境*

VSP 需要在 Linux 环境下进行编译,本文主要介绍如何搭建 SDK 的开发编译环境

1. 操作系统*

  • Ubuntu 16.04
  • Windows 可使用虚拟机安装 Ubuntu
  • 不建议建议在虚拟机使用 USB烧录 和 UAC 功能,可能遇到设备识别问题

2. MCU编译工具链*

  • csky-abiv2-elf-toolchain-v3.10.15.tar.gz 下载地址
  • 解压 csky-abiv2-elf-toolchain-v3.10.15.tar.gz 后,会发现有如下几个压缩包:

    $ ls
      CSKY Option elf v2.txt
      Readme.txt
      changelog.txt
      csky-elfabiv2-tools-i386-minilibc-20190930.tar.gz
      csky-elfabiv2-tools-mingw-minilibc-20190929.tar.gz
      csky-elfabiv2-tools-x86_64-minilibc-20190929.tar.gz
    

    • 请阅读 Readme.txt ,选择对应的压缩包
  • 新建合适的路径然后根据系统选择的压缩包解压至其中,同时把该路径加入 PATH 中,比如安装到 /opt/csky-abiv2-elf/ 中

    $ sudo mkdir -p /opt/csky-abiv2-elf/
    $ sudo cp csky-elfabiv2-tools-x86_64-minilibc-**.tar.gz /opt/csky-abiv2-elf/
    $ cd /opt/csky-abiv2-elf/;
    $ sudo tar xvf csky-elfabiv2-tools-x86_64-minilibc-**.tar.gz;
    
    然后编辑 ~/.profile或者 ~/.bashrc,将/opt/csky-abiv2-elf/bin加入到PATH路径中
    echo "export PATH=\$PATH:/opt/csky-abiv2-elf/bin" >> ~/.profile
    或者
    echo "export PATH=\$PATH:/opt/csky-abiv2-elf/bin" >> ~/.bashrc
    
    执行如下命令出现如下信息即安装成功
    $ csky-abiv2-elf-gcc -v
    Using built-in specs.
    COLLECT_GCC=csky-abiv2-elf-gcc
    COLLECT_LTO_WRAPPER=/ext/opt/avdev/csky-abiv2-elf/bin/../libexec/gcc/csky-elfabiv2/6.3.0/lto-wrapper
    Target: csky-elfabiv2
    Configured with: /ldhome/software/toolsbuild/slave/workspace/tools3_rc_build_64_elf_v2/source//gcc/configure x86_64-linux --enable-languages=c,c++ --disable-threads --enable-sjlj-exceptions --disable-shared --enable-libssp --target=csky-elfabiv2 --prefix=/ldhome/software/toolsbuild/slave/workspace/tools3_rc_build_64_elf_v2/install/ --with-headers=/ldhome/software/toolsbuild/slave/workspace/tools3_rc_build_64_elf_v2/install//csky-elfabiv2/include --with-lib=/ldhome/software/toolsbuild/slave/workspace/tools3_rc_build_64_elf_v2/install//csky-elfabiv2/lib/ --with-mpfr=/ldhome/software/toolsbuild/slave/workspace/tools3_rc_build_64_elf_v2/lib-for-gcc-x86_64-linux/ --with-gmp=/ldhome/software/toolsbuild/slave/workspace/tools3_rc_build_64_elf_v2/lib-for-gcc-x86_64-linux/ --with-mpc=/ldhome/software/toolsbuild/slave/workspace/tools3_rc_build_64_elf_v2/lib-for-gcc-x86_64-linux/ --with-cskyabi=abiv2 --with-pkgversion='C-SKY Tools V3.10.15 Minilibc abiv2 B20190929' --disable-tls --enable-threads=posix
    Thread model: posix
    gcc version 6.3.0 (C-SKY Tools V3.10.15 Minilibc abiv2 B20190929)
    

3. DSP编译工具链*

  • GXHifi4_170719A_G1708_linux_redist.tgz Xplorer-7.0.8-linux-installer.bin 下载地址:请联系我们的销售
  • 如果选择安装了64位版Ubuntu,则需要安装32位支持包:
    $ sudo dpkg --add-architecture i386
    $ sudo apt-get update
    $ sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386 libx11-6:i386 gtk2-engines:i386 lib32ncurses5 lib32z1 libxtst6:i386 libgtk2.0-0:i386 lib32ncurses5 libcanberra-gtk3-0:i386
    
  • 执行如下命令,然后按提示安装即可(安装路径建议选 ~/xtensa/):
    chmod +x Xplorer-7.0.8-linux-installer.bin
    ./Xplorer-7.0.8-linux-installer.bin
    
  • 添加License: 点击菜单栏的 "Help" - "Xplorer License Keys",在弹出的对话框上点击"Install Software Keys",输入License (请向联系国芯销售索取),点击"Finish"。 如果可以看到图中红框提示就表示添加成功。

  • 添加CORE: 我们目前使用的DSP processor core是GXHifi4_170719A_G1708,需要手动添加到Xplorer中。 右键点击"System Overview"窗口中的"Configurations",选择"Find and Install a Configuration Build",在弹出的窗口中点击"Browser"并选择configuration文件(linux为GXHifi4_170719A_G1708_linux_redist.tgz,windows为GXHifi4_170719A_G1708_win32.tgz),点击"OK"。 添加完成后,可以在"System Overview“窗口的"Configurations"中找到刚添加的"GXHifi4_170719A_G1707",如下图红框所示。

  • 命令行配置: 为了方便在命令行使用编译工具,可以把工具链添加到系统PATH路径下。

    ~/.bashrc中添加:
    export PATH="$PATH:${XTENSA_PATH}/XtDevTools/install/tools/RG-2017.8-linux/XtensaTools/bin" #其中XTENSA_PATH为xtensa的安装路径
    
    在使用工具链时,需要指定core的名称和路径,可以通过环境变量来指定。
    ~/.bashrc中添加:
    export XTENSA_CORE=GXHifi4_170719A_G1708
    export XTENSA_SYSTEM=${XTENSA_PATH}/XtDevTools/install/builds/RG-2017.8-linux/${XTENSA_CORE}/config #其中XTENSA_PATH为xtensa的安装路径
    

  • Xplorer IDE 打开时会占用 license, 导致其他人无法编译, 所以请保持 Xplorer 关闭

4. ARM编译工具链*

  • 执行如下命令即可:
    sudo apt-get install gcc-arm-linux-gnueabihf
    

5. 源码获取*

  • VSP 代码托管在 gitlab, 需注册 gitlab 账号后将用户名或邮箱提供给我们的销售经理,由我司项目经理对该账号进行代码释放。
  • 请使用 git 进行代码管理, 执行如下命令拉取源码:
    git@gitlab.com:nationalchip/vsp_sdk.git
    

6. 编译*

  • 以 GX8008C 为例
  • 首先进入 vsp_sdk 的根目录,执行:

    $ make distclean
    
    然后应用参考编译配置
    $ cp configs/nationalchip_public_version/8008c_wukong_prime_2mic_16k_16bit_10ms_record_bypass.config .config
    $ make menuconfig
    

    注意

    如果执行遇到 ncurses.h:no such file or directory 错误的问题, 执行以下命令安装上ncurses库即可。

    sudo apt-get install libncurses5-dev
    

    进入编译配置界面后, 双击 [ESC], 然后选择保存,即可使编译配置生效。 再执行如下命令:

    $ make
    $ ls -l output
    
    编译输出在 ./output/

7. 烧录*

  • 以 GX8008C 为例,Ubuntu中使用bootx烧录,Windows 烧录工具请点击此处
  • 执行如下命令可查看 bootx 帮助信息
    bootx -h
    

7.1 USB烧录*

  • 使用 bootx 进行 USB 烧录,执行如下命令:
    sudo ./tools/bootx/bootx -m leo_mini -t u -c "download 0 output/vsp.bin;reboot"
    
  • 然后按住开发板的 boot 键,然后对板子进行重启或重新上电
  • 终端出现如下信息即表示烧录成功:
    Version : v1.5.35 (20211018)
    NationalChip AIoT Download Tools
    Copyright (C) 2001-2021 NationalChip Co., Ltd
    ALL RIGHTS RESERVED!
    
    Please press BOOT button and power on or restart the board...
    downloading [1/2] :
    [==========][100%]
    downloading [2/2] :
    [==========][100%]
    Excute cmd : download 0 output/vsp.bin
    [==========][100%]
    done
    Excute cmd : reboot
    done
    

7.2 串口烧录*

  • 执行如下命令:
    sudo ~/bootx -m leo_mini -t s -d /dev/ttyUSB0  -c "download 0 output/vsp.bin;reboot"
    
  • 然后对板子进行重启或重新上电
  • 终端出现如下信息即表示烧录成功:
    $ sudo ~/bootx -m leo_mini -t s -d /dev/ttyUSB0  -c "download 0 output/vsp.bin;reboot"
    [sudo] jialp 的密码:
    Version : v1.5.18 (20200624)
    NationalChip GX8010 Download Tools
    Copyright (C) 2001-2019 NationalChip Co., Ltd
    ALL RIGHTS RESERVED!
    
    wait ROM request... please power on or restart the board...
    Found serial: /dev/ttyUSB0
    downloading [1/2] :
    [==========][100%]
    downloading [2/2] :
    [==========][100%]
    Excute cmd : download 0 output/vsp.bin
    downloading [1/4]
    [==========][100%]
    downloading [2/4]
    [==========][100%]
    downloading [3/4]
    [==========][100%]
    downloading [4/4]
    [==========][100%]
    done
    Excute cmd : reboot
    done
    
  • 烧录失败请尝试重启 PC

8. 串口工具*

  • 以 GX8008C 为例
  • linux 推荐使用 minicom
    $ ls -l /dev/ttyUSB*
    $ minicom -D /dev/ttyUSB0 #根据实际情况传如正确的串口号
    
  • Windows 串口工具请自行选用,不作推荐
  • 连接板子串口到电脑
  • 上一条烧录成功后,将从串口输出如下信息:
    Voice Signal Preprocess
    Copyright (C) 2001-2019 NationalChip Co., Ltd
    ALL RIGHTS RESERVED!
    Hello MCU!
    MCU <-> DSP Message Version: [20180517]
    Board Model:[leo_mini_gx8008c_wukong_prime_1v]
    MCU Version:[v1.3.0-rc1-60-gedcac09]
    Build Date: [2022-04-03, 17:24:18]
    CHIP NAME:  [8008C-NNNB]
    PUBLIC ID:  [cc7416000000007e]
    Flash JEDEC = 0xef4016, model = w25q32.
    [IMAGEINFO]image version    0x10001
    [IMAGEINFO]image crc32      0x620dbcc
    [IMAGEINFO]imageinfo crc32  0x9cf7c7b7
    [UAC]Init UAC mode
    Flash JEDEC = 0xef4016, model = w25q32.
    [VPA] dsp_header.magic = 50534456
    [VPA] dsp_header.message_version = 20180517
    [VPA] dsp_header.xip_size = 0
    [VPA] dsp_header.ptcm_size = 65536
    [VPA] dsp_header.dtcm_size = 65536
    [VPA] dsp_header.sram_size = 10368
    [VPA] dsp_header.sram_base = 42800
    downstream : max packet size : 192, packet size : 0
    upstream : max packet size : 384, packet size : 192
    Suspend
    [UAC]Init UAC mode done with 328 ms
    Reset
    Reset
    [UAC/CORE] playback : off, record : off
    [UAC/CORE] playback : off, record : off
    [UAC/CORE] playback : on, record : off
    [UAC/CORE] playback : off, record : off
    [UAC/CORE] playback : on, record : off
    

至此,搭配上您喜爱的编辑工具,开发环境就搭建完成了。