前言
非常感谢极术社区和聆思科技提供的机会,本人有幸本选中参加体验聆思 CSK6 视觉 AI 套件。话不多说,开始进入正题。
芯片介绍
开始之前先对本次体验的芯片做一个大体上的认知。
CSK6 是聆思科技新一代的 AI 芯片 SoC 产品系列,采用多核异构架构,集成了 ARM Star MCU,HiFi4 DSP,以及聆思全新设计的 AI 神经网络处理内核 NPU,算力达到 128 GOPS。多核异构的设计使芯片能以较低功耗满足音频及图像视频的 AI 应用需求。
环境搭建
本次体验使用的开发环境是 Ubuntu 20.04。
- 使用套件中提供的 Type-C 线插入开发板的 DAPLink 接口,然后另外一端插入电脑上。此时会在 ubuntu 系统中弹出 LISTENAI 的 可移动 U 盘图标。
打开终端,输入以下命令安装依赖
sudo apt update sudo apt upgrade -y sudo apt install git wget minicom vim -y
搭建 CSK 开发环境。安装 lisa zep 工具,初始化 CSK6 SDK 所需要的开发环境
curl -o- https://cdn.iflyos.cn/public/cskTools/lisa-zephyr-install.sh | bash
检查开发环境
lisa info zep
Hello World
国际惯例,拿到板子先跑一下 hello,world
创建工程
在测试目录,使用下面的命令创建一个 hello,world 工程
lisa zep create
出现上面的界面后,我们选择 hello_world,创建成功后的 hello_world 目录如下图
编译固件
使用下面的命令编译 hello_world 工程
lisa zep build -b csk6011a_nano
编译成功的界面:
下载固件
lisa zep flash
下载成功界面如下图所示:
连接串口
另外打开一个终端,输入命令配置串口:
sudo minicom -s
选择 Serial port setup
按一下 A 键,修改 Serial Device。波特率默认为115200,不需要修改。我这里的串口设备名字为:/dev/ttyACM0。各位以自己本地的名字为主。
保存并退出 minicom
输入以下命令,启动 minicom
sudo minicom
复位开发板,就可以看到串口的输出了
图像识别
上一小节,我们跑了一个简单的 hello world 工程。对聆思开发板的开发步骤有了一个大概的了解。作为一款 AI 开发板,怎么能不体验一下它的 AI 功能呢!这一章节,我们跑一个头肩&手饰识别来体验 CSK6 的 AI 功能。
功能介绍
详见管网:功能与场景 | 聆思文档中心 (listenai.com)
获取源码
执行下面的命令,拉取 Sample 代码并完成初始化
lisa zep create --from-git https://cloud.listenai.com/zephyr/applications/app_algo_hsd_sample_for_csk6.git
初始化成功界面如下:
开启PC端图像预览功能
修改 prj.conf 文件,将 CONFIG_WEBUSB=n
改为 CONFIG_WEBUSB=y
。
cd app_algo_hsd_sample_for_csk6/
sudo vim prj.conf
保存并退出。
编译固件
使用下面的命令编译固件
lisa zep build -b csk6011a_nano
编译成功后,界面如下所示:
下载固件
下载应用程序
使用下面的命令下载固件到开发板
lisa zep flash
下载成功后,界面如下所示:
下载资源
如果此时 minicom 还连接着开发板的串口,需要使用命令 CTRL+A X
先断开连接。否则会下载失败!
下载完应用程序后,我们需要将算法运行所需要的资源进行烧录,执行下面的命令,下载资源文件:
lisa zep exec cskburn -s /dev/ttyACM0 -C 6 0x400000 ./resource/cp.bin -b 748800
lisa zep exec cskburn -s /dev/ttyACM0 -C 6 0x500000 ./resource/res.bin -b 748800
- -s 后面需要修改为自己开发环境上的串口设备号
烧录界面如下所示:
重启开发板
下载完成之后,按下 REST 重启开发板。此时可以使用 minicom 连接开发板的串口,查看日志:
PC 查看工具
安装工具
git clone https://cloud.listenai.com/zephyr/applications/csk_view_finder_spd.git
- 使用 Type-C数据线连接 CSK6 USB 接口至电脑
打开 index.html 文件(要使用 chrome 浏览器打开)
此时浏览器界面如下
点击 选择设备按钮后,选择 CSK View Finder 选项,点击连接后,就可以看到预览图和识别结果啦:
识别结果
跑分
本章节使用 coremark 工具简单跑一下分,测试以下 ARM STAR 芯片的性能。
下载 coremark
git clone https://github.com/eembc/coremark.git
将下面的几个文件复制到 helle world 工程的 src 目录下;并修改 cmake 文件
打开 prj.conf 文件,添加下面的内容
# # nothing here CONFIG_PRINTK=y CONFIG_DEBUG=y CONFIG_LOG=y CONFIG_MAIN_STACK_SIZE=8192 CONFIG_GPIO=y CONFIG_FPU=y CONFIG_NEWLIB_LIBC=y
修改 core_portme.c 文件
修改 core_portme.h 文件
修改 coremark.h 文件
全局搜索 crc16 函数,替换为 core_urc16。否则编译会出警告(重复定义)。能忍受警告的也可以不用修改。
修改完毕后,保存修改,编译下载固件,打开 minicom 查看串口输出情况
最后
文章最后,再次感谢极术社区和聆思科技提供的开发套件。总体来说,整个体验流程是很顺利的,可以体验到聆思科技做了很多的准备,可以让开发者快速上手体验 AI 识别。后续有机会的话,我会适配一下 国产 RT-Thread 操作系统,看一下适配了 RT-Thread 操作系统的 CSK6 会不会有更好的表现。
问题总结
下载失败,提示以下错误
[Errno 13] Access denied (insufficient permissions) while trying to interrogate a USB device
解决方法
下载 pyocd
git clone https://github.com/pyocd/pyOCD.git
复制 udev 目录下的文件到 /etc/udev/rules.d/ 目录下
cd pyOCD sudo cp udev/*.rules /etc/udev/rules.d/
强制 udev 重新加载
sudo udevadm control --reload sudo udevadm trigger