智慧語音終端SDK快速上手說明1. 使用Windows開發環境1.1 概述
Windows開發環境採用劍池CDK開發工具。劍池CDK開發工具以極簡開發為理念,是專為IoT應用開發打造的整合開發環境。它在不改變使用者開發習慣的基礎上,全面接入雲端開發資源,結合圖形化的OSTracer、Profiling等除錯分析工具,加速使用者產品開發。
注意:
建議CDK不要安裝在C盤,否則需要管理員許可權執行下載或安裝過程中有可能被防火牆攔截,注意將其新增到防火牆白名單中1.3 Windows除錯環境安裝安裝串列埠驅動程式• 登入平頭哥晶片開放社群,進入欄目“技術部落->資源下載->工具->驅動工具”,下載並安裝“CP210x_Windows10_Drivers”串列埠轉USB驅動包(注:根據作業系統選擇對應的版本)。
安裝Debug Server• 登入平頭哥晶片開放社群,進入欄目“技術部落 -> 資源下載 -> 工具 -> Debug Server”,下載最新CSKY-DebugServer-windows版本。
注:下載或安裝過程中有可能被防火牆攔截,注意將其新增到防火牆白名單中• Debug Server安裝過程中,會同時安裝JTAG除錯驅動。
檢查驅動狀態• 插入開發板除錯串列埠和JTAG除錯口後,開啟計算機裝置管理器,確認串列埠驅動以及JTAG除錯驅動安裝無誤。
driver_status
執行Debug Server• 燒錄之前需要開啟並執行CSkyDebugServer。CSkyDebugServer初始狀態,左下角顯示Ready:
debugserver_run
DebugServer處於上述的執行態時,可以燒錄韌體和對程式進行GDB除錯,參考《2. 使用GDB除錯》。
• 之後CDK會建立工程並自動下載工程所需依賴。
編譯• 下載成功後,可以在左邊的導航欄中看到專案(本例中專案名稱demo_project)。右擊專案名稱,選擇Build開始編譯。
編譯時間大約需要10分鐘。
• 編譯成功後,在介面底部的輸出視窗,會顯示成功資訊:
CDK_Build_Success
CDK_Start_Program
燒錄完成後,顯示燒錄成功視窗:
CDK_Program_Success
2. 使用Linux開發環境2.1 安裝YocToolsYocTools需要透過 pip 命令安裝,YocTools 支援 python2.7+、python3.6+,建議使用 python2 作為預設 python。• 解除安裝舊版本YocTools,之前如果沒安裝請跳過該步驟$sudo pip uninstall yoctools• 安裝YocTools$sudo pip install --no-binary=yoctools http://yoctools.oss-cn-beijing.aliyuncs.com/yoctools-1.0.60.1.tar.gz -i https://mirrors.163.com/pypi/simple/
2.2 工具鏈安裝編譯工具鏈採用gcc編譯,第一次編譯時,makefile會自動下載編譯工具鏈:$ makescons: Reading SConscript files ...100.00% [##################################################] Speed: 9.260MB/SStart install, wait half a minute please.Congratulations!工具鏈會被安裝在當前使用者的~/.thead目錄下:~/.thead$ lldrwxr-xr-x 1 User user 4096 Apr 7 18:11 csky-abiv2-elf/配置工具鏈路徑到環境變數:$echo "export PATH=$HOME/.thead/csky-abiv2-elf/bin:$PATH" >> ~/.bashrc$source ~/.bashrc
2.3 Linux除錯環境安裝安裝Debug Server• 登入平頭哥晶片開放社群,進入欄目“技術部落 -> 資源下載 -> 工具 -> Debug Server”,下載最新CSKY-DebugServer-Linux版本,並解壓• 執行sudo sh ./CSKY-DebugServer-linux-*.sh -i,開始安裝• 系統提示“Do you agree to install the DebugServer[yes/no]”,輸入yes• 系統提示設定安裝路徑“Set full installing path:”,推薦安裝到預設路徑:直接回車• 系統會提示”This software will be installed to the default path: (/usr/bin/)?[yes/no/cancel]:”,輸入yes• 安裝成功後會提示:
Done !
You can use command “DebugServerConsole” to start DebugServerConsole!(NOTE:The full path of ‘DebugServerConsole.elf’ is /usr/bin/C-Sky_DebugServer)
注意:安裝過程中使用者需要獲取sudo許可權。
Linux虛擬機器下安裝Debug Server很多開發者習慣在Windows系統(或Mac OS系統)下安裝Linux虛擬機器來進行開發,常見的虛擬機器有WSL(Windows Subsystem for Linux),VMware,VirtualBox等。然而在Linux虛擬機器下,由於Debug Server沒辦法獲取到USB裝置資訊,導致部分情況下Debug Server連線失敗。因此需要切換到Windows環境安裝和使用Debug Server。具體安裝步驟,請參考《1.3 Windows除錯環境安裝》。
執行Debug Server• 安裝完成後,在任意目錄下透過命令 sudo DebugServerConsole,來開啟 DebugServer。開啟後介面如下:• DebugServer連線成功如下:
2.4 應用開發2.4.1 編譯以CB5654開發板為例,進入開發板目錄,使用make命令開始編譯:$ cd solutions_cb5654/smart_speaker_cb5654$ make clean; make
2.4.2 燒錄除錯指令碼• 映象的燒寫透過GDB完成,需要先配置除錯伺服器的IP地址為本機地址。輸入命令ifconfig獲取本機地址(下例為:30.21.178.4):
$ ifconfig
wifi0: flags=4163 mtu 1500
inet 30.21.178.4 netmask 255.255.252.0 broadcast 30.21.179.255 inet6 fe80::b031:5c7e:9a91:d8d2 prefixlen 64 scopeid 0xfd<compat,link,site,host> ether 60:f2:62:77:45:d9 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
• 在開發目錄下(例如:solutions_cb5654/smart_speaker_cb5654)建立檔案.gdbinit,設定JTAG IP地址為本機IP地址,埠號為1025:
$ cat .gdbinit
target jtag jtag://30.21.178.4:1025
全部燒錄• 上電開發板,確保電源指示燈被點亮;執行Debug Server並保證與開發板連線成功• 首次執行時,需要執行全部燒錄命令,保證所有分割槽內容都被燒錄:
$ make flashall 該命令會燒錄Bootloader分割槽、演算法分割槽、應用分割槽。
注意:Bootloader燒寫若異常斷電可能會導致裝置無法引導。
應用韌體燒錄• 大部分應用程式都執行應用分割槽上,修改應用程式程式碼後可以只燒寫相應的應用程式韌體,加快燒寫速度。
$ make flash
燒錄成功• 燒錄成功後,可以看到所有分割槽燒寫進度都已至100%。
Program partition: bmtb address: 0x8000000, size 192 byte
erasing...program 08000000, 100%Program partition: boot address: 0x8001000, size 41592 byteerasing...program 08009000, 100%Program partition: tee address: 0x8011000, size 22048 byteerasing...program 08011000, 100%Program partition: imtb address: 0x8021000, size 8192 byteerasing...program 08021000, 100%Program partition: prim address: 0x8023000, size 1712796 byteerasing...program 081c3000, 100%Program partition: cpu1 address: 0x8323000, size 233708 byteerasing...program 0835b000, 100%Program partition: cpu2 address: 0x83a3000, size 388358 byteerasing...program 083fb000, 100%Program partition: lpm address: 0x85a7000, size 25508 byteerasing...program 085a7000, 100%Program partition: lfs address: 0x85c7000, size 143360 byteerasing...program 085e7000, 100%Program partition: kp address: 0x8fff000, size 576 byteerasing...program 08fff000, 100%
3. 例程執行3.1 配置串列埠工具Windows串列埠工具• 串列埠工具可以選擇putty/SecureCRT/Xshell等常見Windows工具• 以Xshell為例,選擇對應的埠號(安裝完串列埠驅動後,從裝置管理器中可以查詢到),波特率設定為115200,資料位設為8,停止位設1,奇偶校驗位和流控制位均設為‘無’:
Linux串列埠工具• Linux下推薦使用minicom作為串列埠工具,安裝命令:
$sudo apt-get install minicom
• 啟動minicom並配置引數:
$sudo minicom -s
//選擇‘Serial port setup’A - Serial Device : /dev/ttyS0E - Bps/Par/Bits : 115200 8N1F - Hardware Flow Control: No
3.2 開發板上電• 按開發板上的復位按鍵,復位開發板,開發板正常上電log列印如下:boot_v1.4
sdram okboot core...build: May 16 2020 14:29:18BOOT[I] part_num:12BOOT[E] otp cant find pk regionBOOT[I] verify [prim] okBOOT[I] load img & jump to [tee]
BOOT[I] all copy over..BOOT[I] j m
BOOT[I] j 0x18000000
Tee v1.4.0 Initliaze done, Jun 22 2020 17:29:06... 後續日誌省略
3.3 配置 WiFi 密碼首次上電時,開發板沒有配置 WiFi 使用者名稱密碼,無法連線無線路由器。使用者可以透過串列埠命令列指令快速配置 WiFi 密碼,步驟如下:• 串列埠中輸入指令分別設定 WiFi 引數(ssid, password),其中 {ssid} 為 wifi 名稱,{password} 為 wifi 密碼,如果路由器沒有密碼,密碼可隨意填寫
注意:所有命令都需要以換行符 \n 或\r\n結尾
kv set wifi_ssid {ssid}kv set wifi_psk {password}• 可以透過 kv get wifi_ssid/kv get wifi_psk 來獲取設定的ssid/密碼,驗證設定是否正確
kv get wifi_ssidkv get testkv get wifi_psk
kv get 123456• 按開發板復位鍵,重啟開發板• 等待語音提示 正在啟動,網路連線成功,並可以觀察到串列埠列印輸出 wifi 連線成功7.801532[netmgr ]start dhcp7.855701[netmgr ]IP: 192.168.1.103也可以透過命令ifconfig檢查網路連線狀態,如果Wi-Fi連線失敗,會顯示“WiFi Not connected”:
ifconfig
wifi0 Link encap:WiFi HWaddr 18:bc:5a:60:d7:f1
inet addr:192.168.1.80GWaddr:192.168.1.1Mask:255.255.255.0DNS SERVER 0: 208.67.222.222WiFi Not connected
3.4 語音互動演示
開發板成功連網後,就可以進行語音互動演示了。開發者可以透過喚醒詞“寶拉寶拉”喚醒開發板,之後可以透過語音指令控制或詢問開發板。
互動示例人:寶拉寶拉機:在人:杭州天氣機:杭州今天陰轉小雨,微風,15攝氏度,出門別忘了得帶傘哦!
人:寶拉寶拉機:在人:聲音調大一點機:好的
常用語音互動命令控制命令:• 聲音大點/提高音量• 聲音小點/降低音量• 停止播放• 繼續播放互動命令:• 講個笑話• 現在幾點• 天氣預報/{城市}天氣/明天天氣/後天天氣/下週天氣
3.5 其他測試命令更多測試命令,請參考解決方案資料夾下面的README.md檔案。
原文:https://developer.aliyun.com/article/772452?spm=a2c6h.12873639.0.0.1316273b67a7Cb