概况
海凌科W800开发板(HLK-W800-KIT)是海凌科电子面向开发者针对联盛德W800 芯片推出的一款多功能开发板。全功能版本与联盛德W800开发板相比,增加了温湿度传感器、RGB 灯以及音频解码器、功放可以直接在开发版验证功能。联盛德W800的csdk也可用于HLK-W800-KIT开发板。
海凌科W800开发板目前的CSDK版本为HLK-W800-KIT-PRO1.0,本文采用全功能版本进行编译测试,普通版、升级版类似。
下载工具链编译工具
以win11自带的linux版WSL为例,介绍HLK-W800-KIT-PRO编译环境的安装配置。
查看wsl版本
wsl -version
wsl所采用的工具链:
https://occ.t-head.cn/community/download?id=3885366095506644992
https://occ-oss-prod.oss-cn-hangzhou.aliyuncs.com/resource/1356021/1619529111421/csky-elfabiv2-tools-x86_64-minilibc-20210423.tar.gz
本文下载到d:/download目录下:
cd /mnt/d/download
sudo wget https://occ-oss-prod.oss-cn-hangzhou.aliyuncs.com/resource/1356021/1619529111421/csky-elfabiv2-tools-x86_64-minilibc-20210423.tar.gz
安装工具链编译工具
解压到开发环境“/opt”路径中,或其他路径:
命令流:
cd /opt
sudo cp /mnt/d/download/csky-elfabiv2-tools-x86_64-minilibc-20210423.tar.gz .
sudo mkdir /opt/csky
cd /opt/csky
sudo cp /opt/csky-elfabiv2-tools-x86_64-minilibc-20210423.tar.gz .
(“.”代表当前目录)
sudo tar -xvf csky-elfabiv2-tools-x86_64-minilibc-20210423.tar.gz
添加工具链bin到环境变量中:
/bin/vi ~/.bashrc
(1)该文件底部加入:export PATH=/opt/csky/bin:/usr/bin:/bin:/usr/local/bin:$PATH
(2)source ~/.bashrc #source后立即生效。
(3) 安装 python 环境:sudo apt-get install python
如果已安装,可执行 Python3测试:
如果Python3的可执行文件路径不在系统环境变量中,可按前述方法加入。
(4) 安装 lame 音频处理工具:sudo apt-get install lame
(5) 安装编译开发工具集:sudo pip install yoctools -i Simple Index
安装时如果sudo: pip:command not found的错误,需要先安装pip:
sudo apt-get install python-pip
(6) 安装 32 位兼容库(如果系统未安装过):
sudo dpkg --add-architecture i386
sudo apt install libc6 libstdc++6
sudo apt-get update
sudo apt install libncurses5-dev lib32z1
编译:
进入W800_KIT_PRO/unione_lite_app_hb_w/solutions/unisound子目录,
cd /mnt/g/bsp/W800_aos/W800_KIT_PRO/unione_lite_app_hb_w/solutions/unisound
执行make,编译如果提示找不到Python:
加入软连接解决:
sudo ln -s /usr/bin/python3 /usr/bin/python
编译中(第一次较慢):
编译完成,生成.fls刷机文件。
利用Upgrade_Tools_V1.4.8将uni_app.fls刷入开发板进行测试:
文件路径:
W800_KIT_PRO/unione_lite_app_hb_w/solutions/unisound/out/unisound/uni_app.fls
查看目录结构:
回退进入unione_lite_app_hb_w目录:
查看目录结构:
sudo apt install tree
tree -L 1
1为待显示的目录级数
常用组件如下:
tree -L 1 components/
官方文档对目录内容介绍如下:
接口说明
W800-KIT-PRO 的 SDK 入口函数 int main(),位于 solutions\unisound\app\src\app_main.c
文件里(如下图)。
int main():
- board_yoc_init() : 初始化整个 sdk,初始化的内容包括:flash 管理模块、设备驱动模块、日志打印模块、gpio 功能模块、离线语音 AI 模块、key-value 存储模块、cli 命令模块。
- aos_get_app_version() : 获取 APP 当前固件版本信息接口。
- event_service_init () : 事件服务初始化接口。
- app_sys_init() : 系统初始化标志位设置。
- board_base_init() : uart,iic 注册驱动程序。
- sys_event_init() : 注册系统异常处理,若错误,会调用到回调函数,可以做异常处理。
- cli_reg_cmds() : cli 注册命令,可参考示例添加自己的命令。
- csi_codec_init() : 音频解码驱动初始化。
- local_audio_init() : 本地音频文件初始化。
- app_iot_init() : IOT 事件初始化。
- app_button_init() : 添加 gpio 按键事件初始化。
- app_fota_init() : OTA 服务初始化。
- app_network_init() : wifi 使能,注册 smartliving wifi 发放方式,包括 smartconfig 和设备 ap。
- kws_start() : 使能语音识别。