芯片开放社区
直播中

jf_60775974

3年用户 15经验值
擅长:可编程逻辑 嵌入式技术
私信 关注

【平头哥Sipeed LicheeRV 86开发板试用】开箱以及waft开发

. 摘要
已经拿到了平头哥Sipeed LicheeRV 86开发板, 今天简单的为大家做个开箱, 并且完成waft的环境搭建和开发一个简单的应用

. 开发板介绍file:///C:Users37543AppDataLocalTempksohtmlwps3607.tmp.png
开发板基本参数介绍
· 适配 Lichee RV 核心板,全志 D1 主芯片,512MB DDR3 内存. 系统需要存放在TF卡中
· 支持运行 Linux 系统,支持 WAFT 开发环境. 本次开发最终的成品需要使用到Linux系统.
· 搭载一块分辨率为 480*480 的 4 英寸电容触摸屏,支持人机交互应用. 但是目前在Debian系统下面是默认是无法使用触摸屏的, 需要使用到键盘鼠标
· 板载百兆以太网与 Wi-Fi+BT 模组,支持以太网与无线网络连接. 优先网络连接需要使用到RJ45转接线配件
· 板载 DC-DC 威廉希尔官方网站 ,支持外部 9~12V 电源输入
· 板载扬声器功放与两路数字麦克风,支持音频播放与双麦克风降噪
· 板载 GPIO+供电扩展排针,可通过 GPIO 扩展应用场景
· 板载 USB 转 UART 与 USB-HOST 威廉希尔官方网站 ,便于串口调试与外接 USB 设备
. 开箱
file:///C:Users37543AppDataLocalTempksohtmlwps3617.tmp.png

file:///C:Users37543AppDataLocalTempksohtmlwps3628.tmp.png
file:///C:Users37543AppDataLocalTempksohtmlwps3629.tmp.png
配件全家福, 可以说是非常豪华了, 基本开发所有要的配件已经囊括了. 包含:
· 开发板主体, 包含核心板, IOT拓展板, 电容触控屏
· RJ45+电源延长线
· Type C数据线
· 3.0 TF卡读卡器
· USB Host OTG转接头
· 32G TF卡
为了更好的开发, 我另外自己准备了两个配件
· USB Hub分线器
· USB鼠标
· USB键盘
· 12V供电先
· RJ45网线
file:///C:Users37543AppDataLocalTempksohtmlwps3639.tmp.png
开发板背面
file:///C:Users37543AppDataLocalTempksohtmlwps363A.tmp.png

. waft开发体验
1. waft介绍
Waft(WebAssembly Framework for Things) 是一个面向 AIoT 的高性能应用研发框架,基于 WebAssembly 和自研的渲染引擎技术打造,适用于智能终端的软件应用研发场景. 应该是阿里自研的开发框架. 具有高性能, 原子化, 跨平台, 多语言的特点.
1. 高性能: 支持动态化AOT运行模式,能接近原生应用体验,可在非常低配的IoT设备上运行
2. 原子化: 面向原子化的服务。化整为零,超级应用的核心内容短平快直达;化零为整,多源化的服务重组成场景化应用
3. 跨平台: 支持Android, Linux, RTOS, MacOS、Windows等多平台,并能实现UI自适应与样式的跨端一致性
4. 多语言: 面向广大开发者群体:前端、终端、传统IoT端、后端,各领域的开发者,可使用他们熟悉的编程语言
2. 硬件设置
1. 开发板主体
2. Type数据线:用于供电以及adb数据连接
3. 32G TF卡
4. TF卡读卡器: 用于烧写镜像
5. Windows操作系统的PC一台: 使用全志的烧写工具, 烧写镜像
6. Linux操作系统的PC/虚拟机一台: 用于搭建waft开发环境
如下图: 数据线连接请连接到核心板上的Type接口, 方可以使用adb的数据传输. 使用uart接口也可以进行命令行操作, 但是无法进行文件传输, 因而选择adb作为调试接口
file:///C:Users37543AppDataLocalTempksohtmlwps364B.tmp.png
3. 软件设置
1. LicheeRV_tina_86panel_480p_waft.7z: 镜像文件
2. [Windows]PhoenixCard: 全志镜像烧写工具
3. [Linux] Node.js: waft开发环境依赖. Node.js发布于2009年5月,由Ryan Dahl开发,是一个基于Chrome V8引擎的JavaScript运行环境,使用了一个事件驱动、非阻塞式I/O模型,让JavaScript 运行在服务端的开发平台.
4. [Linux] waft-cli: waft应用编译调试工具
5. [Linux] adb: adb调试工具
Windows PC中烧写文件镜像
1. 下载安装软件并烧录
file:///C:Users37543AppDataLocalTempksohtmlwps364C.tmp.jpg
2. 下载安装软件
3. 选择对应的镜像文件
4. 选择启动卡
5. 插上TF卡读卡器
6. 选择对应的盘符
7. 点击烧卡即可: 烧写过程中不要拔出盘, 烧写过程大约需要15分钟, 完成后弹出读卡器, 将TF卡连接到开发板上.
8. 连接Type C数据线
file:///C:Users37543AppDataLocalTempksohtmlwps365D.tmp.png
2. waft视频播放体验
1. 将视频上传到开发板上
file:///C:Users37543AppDataLocalTempksohtmlwps365E.tmp.jpg
2. 使用以下命令播放视频
ffmpeg -i /root/video.mp4 -pix_fmt bgra -f fbdev /dev/fb0 -f alsa hw:0,0
file:///C:Users37543AppDataLocalTempksohtmlwps365F.tmp.jpg
3. 播放效果
file:///C:Users37543AppDataLocalTempksohtmlwps366F.tmp.jpg
Linux PC中安装waft环境搭建
1. 通过一下命令安装node.js以及waft开发调试工具
参考
sudo npm i waft-cli -gsudo npm i waft-cli -g
因为我实现已经通过二进制安装包的形式安装过node.js, 因为没有额外安装node.js. 然而装了几次都发现会报错.

npm WARN deprecated @types/table@6.3.2: This is a stub types definition. table provides its own type definitions, so you do not need this installed.
npm WARN deprecated @types/stylelint@14.0.0: This is a stub types definition. stylelint provides its own type definitions, so you do not need this installed.
npm WARN deprecated @types/ora@3.2.0: This is a stub types definition. ora provides its own type definitions, so you do not need this installed.
npm WARN deprecated @types/colors@1.2.1: This is a stub types definition. colors provides its own type definitions, so you don't need this installed.
npm WARN deprecated har-validator@5.1.5: this library is no longer supported
npm WARN deprecated uuid@3.4.0: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated loadsh@0.0.4: This is a typosquat on the popular Lodash package. This is not maintained nor is the original Lodash package.

changed 644 packages, and audited 887 packages in 3m

63 packages are looking for funding
  run `npm fund` for details

5 moderate severity vulnerabilities

To address all issues, run:
  npm audit fix
解决方案, 不能使用官网二进制包的安装方式, 依然有报错
sudo apt-get install node.js npm
报错
sudo npm install -g n
npm does not support Node.js v10.19.0
You should probably upgrade to a newer version of node as we
can't make any promises that npm will work with this version.
You can find the latest version at https://nodejs.org/
/usr/local/lib/node_modules/npm/lib/npm.js:32
  #unloaded = false
  ^

SyntaxError: Invalid or unexpected token
    at Module._compile (internal/modules/cjs/loader.js:723:23)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)
    at Module.require (internal/modules/cjs/loader.js:692:17)
    at require (internal/modules/cjs/helpers.js:25:18)
    at module.exports (/usr/local/lib/node_modules/npm/lib/cli.js:22:15)
    at Object.<anonymous> (/usr/local/lib/node_modules/npm/bin/npm-cli.js:2:25)
    at Module._compile (internal/modules/cjs/loader.js:778:30)
解决方案
参考
curl -fsSL https://deb.nodesource.com/setup_12.x | sudo -E bash -
sudo apt-get install -y nodejs
2. 再次安装waft开发调试工具
sudo npm i waft-cli -g
3. 初始化
通过命令初始化waft开发项目, 完成后会生成项目工程目录
waft init
4. 启动交互界面
file:///C:Users37543AppDataLocalTempksohtmlwps3670.tmp.jpg
4. 编译
在交互界面通过.build命令进行项目编译, 编译完成的文件会存放在build目录中
3. 通过adb命令上传并启动程序
$ adb push ./* /mytest
$ adb shell

# killall -9 waft_app
# waft_app /mytest/app_wifi.wasm
file:///C:Users37543AppDataLocalTempksohtmlwps3671.tmp.jpg

waft开发入门
参考
waft的开发有点类似与Vue的开发, 这次我就在官方样例的基础上简单的进行修改, 体验一下waft的开发
1. 样例修改:
在工程目录中找到mock.json, 修改其中的参数
file:///C:Users37543AppDataLocalTempksohtmlwps3682.tmp.jpg
2. 打包
进入waft交互见面, 输入命令.build进行打包
file:///C:Users37543AppDataLocalTempksohtmlwps3683.tmp.jpg
3. 上传文件并运行
apt install adb -y
adb shell rm -rf /mytest/*
adb push ./build/* /mytest
adb shell  waft_app  /mytest/app.wasm
4. 效果展示
file:///C:Users37543AppDataLocalTempksohtmlwps3684.tmp.png
总结
1. 硬件方面, 这次提供的开发板非常豪华, 拓展板做工尽量, 加上一个外壳基本上就可以作为一个产品出售了. 好像官方也有加外壳的版本. 配件包含了所有开发过程中需要到的配件. 板载也包含了UART芯片, 无需额外购买UART转接器, 降低了开发的难度.
2. 上手即用, 拿到手的时候已经刷好了waft天气样例, 接上电源之后即可进行使用
3. 资料完整, 官方提供了充分的说明文档和开发例程, 简单阅读即可上手. 同时也开源了完整的SDK, 为深度定制提供了可能性
4. waft框架的体验也非常好, 大大降低了IOT的开发门槛, 使得开发人员可以专注于应用层面的开发而无需关注与底层的实现. 特别是图形化的应用, 前端人员基本上可以直接上手
不足
1. waft开发调试工具的模拟器工具似乎只有mac系统才可安装, 对于使用Windows和Linux的开发不是特别友好

更多回帖

发帖
×
20
完善资料,
赚取积分