RISC-V生态开发套件解析(六):LicheeRV 86开发板搭建Waft运行环境

简介: 随着RISC-V生态的蓬勃发展,相关开源开发套件也开始逐渐丰富。为了帮助开发者快速了解、玩转新推出的RISC-V开发套件,OCC推出RISC-V生态开发套件解析系列内容,详细讲解生态开发套件的功能特点与上手教程。

编辑语:

随着RISC-V生态的蓬勃发展,相关开源开发套件也开始逐渐丰富。为了帮助开发者快速了解、玩转新推出的RISC-V开发套件,OCC推出RISC-V生态开发套件解析系列内容,详细讲解生态开发套件的功能特点与上手教程。


有关LicheeRV 86开发板的硬件介绍已告一段落,从本期内容开始我们将为大家讲解该开发套件的配套软件——Waft。本文是软件部分的首篇文章,将介绍如何快速搭建Waft运行环境,旨在帮助开发者快速上手Waft。


01 调试接口说明


图片.png


1.1 adb通道

该type-c usb口支持adb通道,支持adb命令(push、shell)


1.2 串口通道

该type-c usb口是串口通道,安装ch340驱动后,可以使用串口工具(如SecureCRT)登入调试。


驱动下载链接:https://sparks.gogo.co.nz/ch340.html


串口参数设置:

图片.png


02 更新waft容器


Waft引擎也在持续迭代开发中,板子系统自带的waft容器固件相对较老,可以通过下载链接获取Waft容器固件,链接如下:


https://occ.t-head.cn/vendor/detail/download?spm=a2cl5.14293893.0.0.9ecd707aKGYdRr&id=3978884137347461120&vendorId=3895463451199475712&module=3#sticky

图片.png


下载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、输入密码连接即可。

图片.png


方法二

方法一直接修改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及选择模版

图片.png


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通道,参考下图标注

图片.png


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


运行界面如下:

图片.png


08 下期预告


有关如何搭建Waft运行环境就介绍到这里,下期我们将带大家快速开始Waft应用开发。欢迎大家持续关注RISC-V生态开发套件系列内容。

相关文章
|
人工智能 API 开发者
HarmonyOS Next~鸿蒙应用框架开发实战:Ability Kit与Accessibility Kit深度解析
本书深入解析HarmonyOS应用框架开发,聚焦Ability Kit与Accessibility Kit两大核心组件。Ability Kit通过FA/PA双引擎架构实现跨设备协同,支持分布式能力开发;Accessibility Kit提供无障碍服务构建方案,优化用户体验。内容涵盖设计理念、实践案例、调试优化及未来演进方向,助力开发者打造高效、包容的分布式应用,体现HarmonyOS生态价值。
878 27
|
人工智能 小程序 前端开发
【一步步开发AI运动小程序】十九、运动识别中如何解析RGBA帧图片?
本文介绍了如何将相机抽取的RGBA帧图像解析为`.jpg`或`.png`格式,适用于体测、赛事等场景。首先讲解了RGBA图像结构,其为一维数组,每四个元素表示一个像素的颜色与透明度值。接着通过`uni.createOffscreenCanvas()`创建离屏画布以减少绘制干扰,并提供代码实现,将RGBA数据逐像素绘制到画布上生成图片。最后说明了为何不直接使用拍照API及图像转换的调用频率建议,强调应先暂存帧数据,运动结束后再进行转换和上传,以优化性能。
|
索引
【Flutter 开发必备】AzListView 组件全解析,打造丝滑索引列表!
在 Flutter 开发中,AzListView 是实现字母索引分类列表的理想选择。它支持 A-Z 快速跳转、悬浮分组标题、自定义 UI 和高效性能,适用于通讯录、城市选择等场景。本文将详细解析 AzListView 的核心参数和实战示例,助你轻松实现流畅的索引列表。
706 7
|
数据可视化 测试技术 API
前后端分离开发:如何高效调试API?有工具 vs 无工具全解析
在前后端分离的开发模式中,API 调试的效率直接影响项目的质量和交付速度。通过本文的对比分析,我们可以看到无工具调试模式虽具备灵活性和代码复用能力,但在操作便利性和团队协作上稍显不足。而传统的外部调试工具带来了可视化、高效协作与扩展性,却可能存在工具切换带来的开发链路断层问题。Apipost-Hepler 融合了两者的优势,让开发者无需离开熟悉的 IDEA 环境,就能享受可视化调试工具的强大功能。
499 5
|
移动开发 前端开发 JavaScript
从入门到精通:H5游戏源码开发技术全解析与未来趋势洞察
H5游戏凭借其跨平台、易传播和开发成本低的优势,近年来发展迅猛。接下来,让我们深入了解 H5 游戏源码开发的技术教程以及未来的发展趋势。
|
存储 人工智能 程序员
通义灵码AI程序员实战:从零构建Python记账本应用的开发全解析
本文通过开发Python记账本应用的真实案例,展示通义灵码AI程序员2.0的代码生成能力。从需求分析到功能实现、界面升级及测试覆盖,AI程序员展现了需求转化、技术选型、测试驱动和代码可维护性等核心价值。文中详细解析了如何使用Python标准库和tkinter库实现命令行及图形化界面,并生成单元测试用例,确保应用的稳定性和可维护性。尽管AI工具显著提升开发效率,但用户仍需具备编程基础以进行调试和优化。
966 9
|
设计模式 存储 安全
【23种设计模式·全精解析 | 创建型模式篇】5种创建型模式的结构概述、实现、优缺点、扩展、使用场景、源码解析
结构型模式描述如何将类或对象按某种布局组成更大的结构。它分为类结构型模式和对象结构型模式,前者采用继承机制来组织接口和类,后者釆用组合或聚合来组合对象。由于组合关系或聚合关系比继承关系耦合度低,满足“合成复用原则”,所以对象结构型模式比类结构型模式具有更大的灵活性。 结构型模式分为以下 7 种: • 代理模式 • 适配器模式 • 装饰者模式 • 桥接模式 • 外观模式 • 组合模式 • 享元模式
891 140
【23种设计模式·全精解析 | 创建型模式篇】5种创建型模式的结构概述、实现、优缺点、扩展、使用场景、源码解析
|
算法 测试技术 C语言
深入理解HTTP/2:nghttp2库源码解析及客户端实现示例
通过解析nghttp2库的源码和实现一个简单的HTTP/2客户端示例,本文详细介绍了HTTP/2的关键特性和nghttp2的核心实现。了解这些内容可以帮助开发者更好地理解HTTP/2协议,提高Web应用的性能和用户体验。对于实际开发中的应用,可以根据需要进一步优化和扩展代码,以满足具体需求。
1398 29
|
前端开发 数据安全/隐私保护 CDN
二次元聚合短视频解析去水印系统源码
二次元聚合短视频解析去水印系统源码
559 4

推荐镜像

更多
  • DNS