上一章:智能语音终端开发板介绍 | 《无需从0开发 1天上手智能语音离在线方案》第二章>>>
下一章:智能语音应用开发指南 | 《无需从0开发 1天上手智能语音离在线方案》第四章>>>
智能语音终端SDK快速上手说明
1. 使用Windows开发环境
1.1 概述
Windows开发环境采用剑池CDK开发工具。剑池CDK开发工具以极简开发为理念,是专为IoT应用开发打造的集成开发环境。它在不改变用户开发习惯的基础上,全面接入云端开发资源,结合图形化的OSTracer、Profiling等调试分析工具,加速用户产品开发。
1.2 CDK工具下载
• 登录平头哥芯片开放社区,进入栏目“技术部落->资源下载->工具->CDK集成开发环境”,下载最新版本的剑池CDK集成开发环境安装包。下载完成后,点击setup.exe,根据CDK安装向导提示完成安装。
• 扫描下方二维码即可下载。
注意:
- 建议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:
• 上电开发板,确保蓝色JTAG指示灯被点亮。点击 ,CSkyDebugServer与设备连接成功:
debugserver_run
DebugServer处于上述的运行态时,可以烧录固件和对程序进行GDB调试,参考《2. 使用GDB调试》。
1.4 应用开发
创建实例工程
本节以“智能语音终端解决方案”为例,介绍如何使用CDK进行应用开发。
• 运行CDK,在首页点击新建工程:
• 在搜索框内输入智能语音并按回车,在第一个搜索结果右边点击创建工程:
• 输入工程名称,点击下载方案:
CDK_Download
• 输入工作空间名称和路径,点击OK创建工作空间
• 之后CDK会创建工程并自动下载工程所需依赖。
编译
• 下载成功后,可以在左边的导航栏中看到项目(本例中项目名称demo_project)。右击项目名称,选择Build开始编译。
编译时间大约需要10分钟。
• 编译成功后,在界面底部的输出窗口,会显示成功信息:
CDK_Build_Success
烧录
点击工具栏的 开始烧录:
CDK_Start_Program
烧录完成后,显示烧录成功窗口:
CDK_Program_Success
2. 使用Linux开发环境
2.1 安装YocTools
YocTools需要通过 pip 命令安装,YocTools 支持 python2.7+、python3.6+,建议使用 python2 作为默认 python。
• 卸载旧版本YocTools,之前如果没安装请跳过该步骤
$sudo pip uninstall yoctools
• 安装YocTools
2.2 工具链安装
编译工具链采用gcc编译,第一次编译时,makefile会自动下载编译工具链:
$ make
scons: Reading SConscript files ...
100.00% [##################################################] Speed: 9.260MB/S
Start install, wait half a minute please.
Congratulations!
工具链会被安装在当前用户的~/.thead目录下:
~/.thead$ ll
drwxr-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<UP,BROADCAST,RUNNING,MULTICAST> 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 byte
erasing...
program 08009000, 100%
Program partition: tee address: 0x8011000, size 22048 byte
erasing...
program 08011000, 100%
Program partition: imtb address: 0x8021000, size 8192 byte
erasing...
program 08021000, 100%
Program partition: prim address: 0x8023000, size 1712796 byte
erasing...
program 081c3000, 100%
Program partition: cpu1 address: 0x8323000, size 233708 byte
erasing...
program 0835b000, 100%
Program partition: cpu2 address: 0x83a3000, size 388358 byte
erasing...
program 083fb000, 100%
Program partition: lpm address: 0x85a7000, size 25508 byte
erasing...
program 085a7000, 100%
Program partition: lfs address: 0x85c7000, size 143360 byte
erasing...
program 085e7000, 100%
Program partition: kp address: 0x8fff000, size 576 byte
erasing...
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/ttyS0
E - Bps/Par/Bits : 115200 8N1
F - Hardware Flow Control: No
3.2 开发板上电
• 按开发板上的复位按键,复位开发板,开发板正常上电log打印如下:
boot_v1.4
sdram ok
boot core...build: May 16 2020 14:29:18
BOOT[I] part_num:12
BOOT[E] otp cant find pk region
BOOT[I] verify [prim] ok
BOOT[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_ssid
kv get test
kv get wifi_psk
kv get 123456
• 按开发板复位键,重启开发板
• 等待语音提示 正在启动,网络连接成功,并可以观察到串口打印输出 wifi 连接成功
7.801532[netmgr ]start dhcp
7.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.80
GWaddr:192.168.1.1
Mask:255.255.255.0
DNS SERVER 0: 208.67.222.222
WiFi Not connected
3.4 语音交互演示
开发板成功连网后,就可以进行语音交互演示了。
开发者可以通过唤醒词“宝拉宝拉”唤醒开发板,之后可以通过语音指令控制或询问开发板。
交互示例
人:宝拉宝拉
机:在
人:杭州天气
机:杭州今天阴转小雨,微风,15摄氏度,出门别忘了得带伞哦!
人:宝拉宝拉
机:在
人:声音调大一点
机:好的
常用语音交互命令
控制命令:
• 声音大点/提高音量
• 声音小点/降低音量
• 停止播放
• 继续播放
交互命令:
• 讲个笑话
• 现在几点
• 天气预报/{城市}天气/明天天气/后天天气/下周天气
3.5 其他测试命令
更多测试命令,请参考解决方案文件夹下面的README.md文件。