Greenwaves GAP8 AI晶片開發環境建置

前言

智慧物聯網(AIoT)是結合人工智慧(AI)與物聯網(IoT)兩大技術,逐漸成為我們生活的一部分,例如面部識別、語音識別及門禁管理等。人工智慧收集數據進行學習,尋找數據的規律,並根據深度學習演算法,進行推理並給出一些建議;而市面上也有不少AI晶片的介紹與應用,以下為大家介紹Greenwaves開發的GAP8 AI物聯網晶片,GAP8採用八加一個基於RISC-V的高效內核的方式設計,並植入Greenwaves的擴展指令集,這讓它擁有極致的能效架構,本篇講解開發環境及注意事項。


開發系統建置

作業系統Ubuntu 18.04以上  https://www.osboxes.org/ubuntu/#ubuntu-1804-info

如果需要使用虛擬機,可以使用免費平台VirtualBox, VirtualBox提供使用者在32位元或64位元的Windows、Solaris及Linux 作業系統上虛擬其它x86的作業系統 https://www.virtualbox.org/


安裝相關套件

Terminal輸入以下內容:

sudo apt-get install -y build-essential git libftdi-dev libftdi1 doxygen python3-pip libsdl2-dev curl cmake libusb-1.0-0-dev scons gtkwave libsndfile1-dev rsync autoconf automake texinfo libtool pkg-config libsdl2-ttf-dev

 

安裝OpenOCDUSB設定

git clone https://github.com/GreenWaves-Technologies/gap8_openocd.gitcd gap8_openocd./bootstrap./configure --program-prefix=gap8- --prefix=/usr --datarootdir=/usr/share/gap8-openocdmake -jsudo make -j install #Finally, copy openocd udev rules and reload udev rulessudo cp /usr/share/gap8-openocd/openocd/contrib/60-openocd.rules /etc/udev/rules.d

設定開發板的USB Port,替換為主機的名稱,例如主機名稱為「bill」,修改sudo usermod -a -G dialout bill,Terminal輸入以下內容:

sudo usermod -a -G dialout 

touch 90-ftdi_gapuino.rules

echo 'ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6010", MODE="0666", GROUP="dialout"'> 90-ftdi_gapuino.rules

echo 'ATTRS{idVendor}=="15ba", ATTRS{idProduct}=="002b", MODE="0666", GROUP="dialout"'>> 90-ftdi_gapuino.rules

sudo mv 90-ftdi_gapuino.rules /etc/udev/rules.d/

sudo udevadm control --reload-rules && sudo udevadm trigger

每次插入USB就可以自動引用,設定方式為VirtualBox虛擬機->主控台->連接埠->USB新增裝置,將開發板的USB裝置添加,下次插入開發板自動引用。

 

► GAP SDK下載

將GAP8 SDK從Github上clone到主機上,Terminal輸入以下內容:

git clone https://github.com/GreenWaves-Technologies/gap_sdk.git

cd ~/gap_sdk

git submodule update --init --recursive

 

► Toolchain下載與安裝

GAP8/RISC-V toolchain從Github上clone到主機,Terminal輸入以下內容:

git clone https://github.com/GreenWaves-Technologies/gap_riscv_toolchain_ubuntu_18.git

執行安裝toolchain

cd ~/gap_riscv_toolchain_ubuntu_18

./install.sh

若已經安裝過需要做更新,可以進行以下操作,先刪除原先的Toolchain再安裝新的Toolchain

cd /usr/lib/

sudo rm -rf gap_riscv_toolchain/

cd ~/gap_riscv_toolchain_ubuntu_18

sudo ./install.sh

 

安裝Python相關套件

安裝相關套件:

pip3 install -r requirements.txt

pip3 install -r tools/nntool/requirements.txt

若顯示pip3失敗的訊息,表示未安裝pip3,需要做安裝

sudo apt-get install python3-pip

pip3版本過低,可進行升級

pip3 install --upgrade pip

 

► SDK安裝與設定

獲取 sourceme.sh,然後從列表中選擇合適的電路板,或直接獲取電路板配置

,每次開啟Terminal時,必須執行source config,否則無法執行後續指令操作

cd ~/gap_sdk/

source sourceme.sh


source ~/gap_sdk/configs/gapuino_v2.sh

source完成後才可以進行編譯GAP SDK

cd ~/gap_sdk/

make all

取得Autotiler lib,編譯畫面中會提醒輸入Email內的網址,若未註冊則提醒使用Email註冊,註冊完成後,系統會寄信至信箱內,再複製信箱內的網址貼上並執行,指令如下:

cd ~/gap_sdk/

make autotiler

編譯nntool時,可能會跳出 tensorflow版本錯誤問題,請開啟tool → nntool → requirements.txt 找到 tensorflow,修改為tensorflow==1.14.0,儲存檔案,再進行編譯即可,指令如下:

cd ~/gap_sdk/

make nntool

 

► Hello world專案測試

執行Hello world專案做驗證,將GAPuino開發板連接電腦USB port,並執行下面指令:

cd ~/gap_sdk/examples/pmsis/helloworld

make clean all run

執行結果如下圖:




延伸功能 - Flash啟動裝置(永久性操作)

GAPuino預設為JTAG燒錄及Debug,若需要在上電後,自動從flash取資料並執行程式,需做以下設定,此為永久性設定,但還是可以使用JTAG進行燒錄及Debug,當開發板上電時,始終從flash取得資料啟動,設定操作如下:

openocd-fuser-hyperflash

 執行後結果如下圖:



當發生at file "embedded:startup.tcl"的問題,表示需要針對開發板進行重新source config定義,指令為:

source ~/gap_sdk/configs/gapuino_v2.sh

重新source後就能正常操作,如下圖:



注意:設定完成後,開機永久都使用flash啟動,但開發操作不受影響。


使用image燒錄至flash內,專案內下達指令:

make flash

如果未編譯,請先執行編譯,指令如下:

make build  or  make all 

將flash image更新至開發板,指令如下:

make image flash

執行結果如下圖:




延伸功能 - GAPoc B開發板使用J-Link燒錄器

將J-Link插入電腦內,並執行查看USB VID及PID,指令如下:

lsusb

EX:VID為1366及PID為0105

 

設定對應開發板的USB Port:

sudo usermod -a -G dialout 

touch 90.jlink.rules

echo 'ATTRS{idVendor}=="1366", ATTRS{idProduct}=="0105", MODE="0666", GROUP="dialout"'> 90.jlink.rules

sudo mv 90.jlink.rules /etc/udev/rules.d/

sudo udevadm control --reload-rules && sudo udevadm trigger

 Makefile修改設定interface為J-Link

export GAPY_OPENOCD_CABLE=interface/jlink.cfg

 完成以上操作後,即可燒錄程式及Debug等操作。

 

結論

本篇介紹GAP8 SDK開發環境及注意事項,當遇到狀況時,透過本篇分享的方式能夠幫助你快速解決問題,讓開發板快速上手。

 

參考資料

GitHub : https://github.com/GreenWaves-Technologies

GAP8 Software Development Kit : https://greenwaves-technologies.com/manuals/BUILD/HOME/html/index.html

GAP8 developers’ forum:https://greenwaves-technologies.com/gap8_developers_forum-2/

★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★文明上網,請理性發言。內容一周內被舉報5次,發文人進小黑屋喔~

評論