智能语音终端SDK快速上手说明1. 使用Windows开发环境1.1 概述

Windows开发环境采用剑池CDK开发工具。剑池CDK开发工具以极简开发为理念,是专为IoT应用开发打造的集成开发环境。它在不改变用户开发习惯的基础上,全面接入云端开发资源,结合图形化的OSTracer、Profiling等调试分析工具,加速用户产品开发。

1.2 CDK工具下载

• 登录平头哥芯片开放社区,进入栏目“技术部落->资源下载->工具->CDK集成开发环境”,下载最新版本的剑池CDK集成开发环境安装包。下载完成后,点击setup.exe,根据CDK安装向导提示完成安装。

注意:

  1. 建议CDK不要安装在C盘,否则需要管理员权限运行
  2. 下载或安装过程中有可能被防火墙拦截,注意将其添加到防火墙白名单中
1.3 Windows调试环境安装

安装串口驱动程序• 登录平头哥芯片开放社区,进入栏目“技术部落->资源下载->工具->驱动工具”,下载并安装“CP210x_Windows10_Drivers”串口转USB驱动包(注:根据操作系统选择对应的版本)。

安装Debug Server• 登录平头哥芯片开放社区,进入栏目“技术部落 -> 资源下载 -> 工具 -> Debug Server”,下载最新CSKY-DebugServer-windows版本。

注:下载或安装过程中有可能被防火墙拦截,注意将其添加到防火墙白名单中• Debug Server安装过程中,会同时安装JTAG调试驱动。

检查驱动状态• 插入开发板调试串口和JTAG调试口后,打开计算机设备管理器,确认串口驱动以及JTAG调试驱动安装无误。

(1天上手智能语音离在线方案第三章)(1)

driver_status

运行Debug Server• 烧录之前需要打开并运行CSkyDebugServer。CSkyDebugServer初始状态,左下角显示Ready:

(1天上手智能语音离在线方案第三章)(2)

• 上电开发板,确保蓝色JTAG指示灯被点亮。点击 ,CSkyDebugServer与设备连接成功:

(1天上手智能语音离在线方案第三章)(3)

debugserver_run

DebugServer处于上述的运行态时,可以烧录固件和对程序进行GDB调试,参考《2. 使用GDB调试》。

1.4 应用开发

创建实例工程本节以“智能语音终端解决方案”为例,介绍如何使用CDK进行应用开发。• 运行CDK,在首页点击新建工程:

• 在搜索框内输入智能语音并按回车,在第一个搜索结果右边点击创建工程:

(1天上手智能语音离在线方案第三章)(4)

• 输入工程名称,点击下载方案:

CDK_Download

• 输入工作空间名称和路径,点击OK创建工作空间

• 之后CDK会创建工程并自动下载工程所需依赖。

编译• 下载成功后,可以在左边的导航栏中看到项目(本例中项目名称demo_project)。右击项目名称,选择Build开始编译。

编译时间大约需要10分钟。

• 编译成功后,在界面底部的输出窗口,会显示成功信息:

(1天上手智能语音离在线方案第三章)(5)

CDK_Build_Success

烧录点击工具栏的 开始烧录:

(1天上手智能语音离在线方案第三章)(6)

CDK_Start_Program

烧录完成后,显示烧录成功窗口:

(1天上手智能语音离在线方案第三章)(7)

CDK_Program_Success

2. 使用Linux开发环境2.1 安装YocTools

YocTools需要通过 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,奇偶校验位和流控制位均设为‘无’:

(1天上手智能语音离在线方案第三章)(8)

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.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文件。

原文:https://developer.aliyun.com/article/772452?spm=a2c6h.12873639.0.0.1316273b67a7Cb

,