编辑语:
随着RISC-V生态的蓬勃发展,相关开源开发套件也开始逐渐丰富。为了帮助开发者快速了解、玩转新推出的RISC-V开发套件,OCC推出RISC-V生态开发套件解析系列内容,详细讲解生态开发套件的功能特点与上手教程。
有关LicheeRV 86开发板的硬件介绍已告一段落,从本期内容开始我们将为大家讲解该开发套件的配套软件——Waft。本文是软件部分的首篇文章,将介绍如何快速搭建Waft运行环境,旨在帮助开发者快速上手Waft。
01 调试接口说明
1.1 adb通道
该type-c usb口支持adb通道,支持adb命令(push、shell)
1.2 串口通道
该type-c usb口是串口通道,安装ch340驱动后,可以使用串口工具(如SecureCRT)登入调试。
驱动下载链接:https://sparks.gogo.co.nz/ch340.html
串口参数设置:
02 更新waft容器
Waft引擎也在持续迭代开发中,板子系统自带的waft容器固件相对较老,可以通过下载链接获取Waft容器固件,链接如下:
下载waft固件包,解压后,按如下说明push到开发板
- bin目录
存放waft容器二进制运行文件,waft_app放到/usr/bin目录
- lib目录
存放waft_app运行时依赖的共享库,统一放到/usr/lib目录
- resource目录
存放waft依赖的资源文件,如字库文件。把resource目录放到根目录/,保持目录内容不变
- waftapps目录
存放waft字节码文件。把waftapps目录放到根目录/,保持目录内容不变
推送方式参考adb或者scp的使用方法。
03 WIFI连接
waft的运行、更新均需要依赖网络,所以需要在开发板上配置好wifi网络:
方法一
更新完waft容器后,运行如下命令:
waft_app /waftapps/app_wifi.wasm
点击wifi信号位置进入wifi连接设置界面,搜索wifi、输入密码连接即可。
方法二
方法一直接修改wpa_supplicant的配置文件,增加如下内容到/etc/wifi/wpa_supplicant.conf文件中,直接用vi编辑,vi /etc/wifi/wpa_supplicant.conf
ctrl_interface=/etc/wifi/sockets ctrl_interface_group=0 disable_scan_offload=1 update_config=1 network={ ssid="YourSSID" psk="YourPassword" }
YourSSID替换成自己的wifi网络名,YourPassword改为自己的密码。
方法三
方法二使用wpa_cli工具,熟悉的用户可以选择这种方式
- 扫描wifi网络
wpa_cli -iwlan0 scan
- 获取扫描结果
wpa_cli -iwlan0 scan_result
- 添加网络
wpa_cli -iwlan0 add_network
记住返回的数字,这个是网络配置序号,后续要用到,假如返回的是“1”,后面以“1”为举例。
- 设置ssid
wpa_cli -iwlan0 set_network 1 ssid '"YourSsid"'
注意:无线网络名需要用一个单引号加一个双引号包含住。
- 设置密码
wpa_cli -iwlan0 set_network 1 psk '"YourPassword"'
注意:密码需要用一个单引号加一个双引号包含住。
- 激活网络
wpa_cli -iwlan0 enable_network 1
- 保存配置
wpa_cli -iwlan0 save_config
用于下次开机自动重连
- 查看是否已经完成连接
wpa_cli -iwlan0 status
- 有COMPLETED字段表示ok
freq=2437 ssid=xxxxxx id=0 mode=station pairwise_cipher=CCMP group_cipher=CCMP key_mgmt=WPA2-PSK wpa_state=COMPLETED ip_address=172.16.0.167 address=94:f7:f9:9a:40:68 uuid=53f24614-85b0-5e32-b3d1-9bac85a5958c
- 分配ip
udhcpc -iwlan0
04 开发环境搭建
MacOS, Linux,(Windows支持中)
4.1 vscode安装
vscode安装请自行下载安装
4.2 脚手架安装
npm i waft-cli -g
如果有权限问题,加上sudo ,sudo npm i waft-cli -g。
05 创建项目
通过waft脚手架初始化项目,会引导您进行项目命名等,您将得到一个新project
waft init
输入project name及选择模版
5.1 启动调试环境
cd my-waft-project npm run start
5.2 REPL命令行模式
启动后自动开启REPL模式,您可以通过.help查询支持哪些命令列表,一般最常用的:
- 打包
.build --aot=true --aotTarget=riscv64
- 获取编译产物
编译后的产物在工程目录的build目录下,app.aot。
ps:其他命令参考《开发手册》--快速开始章节,https://www.yuque.com/waft/docs/ubi8k4
5.3 开发第一个waft应用
开发自己的waft应用(页面),可以在创建的模版基础进行修改,详细的目录结构介绍、页面开发、样式、语法请参考《开发手册》--快速开始https://www.yuque.com/waft/docs/ubi8k4
06 推送waft应用
推送waft应用(app.aot)到开发板有如下三种方式:
- adb push
电脑与开发板用type-c数据线连接,注意使用adb push通道,参考下图标注
adb push build/app.aot /mnt/UDISK/wasm/
- scp
pc及开发板需要在同一个局域网内。
scp build/app.aot root@172.16.1.36:/mnt/UDISK/wasm
172.16.1.36替换为开发板的ip地址,ssh的登陆密码为:tina。
07 运行waft
通过adb shell或者串口接入开发板,在adb shell终端或者串口工具终端输入如下命令:
waft_app /mnt/UDISK/wasm/app.aot
运行界面如下:
08 下期预告
有关如何搭建Waft运行环境就介绍到这里,下期我们将带大家快速开始Waft应用开发。欢迎大家持续关注RISC-V生态开发套件系列内容。