► 前言
智慧物聯網(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
► 安裝OpenOCD及USB設定
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/
評論