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生态开发套件系列内容。

相关文章
|
26天前
|
小程序 前端开发 关系型数据库
uniapp跨平台框架,陪玩系统并发性能测试,小程序源码搭建开发解析
多功能一体游戏陪练、语音陪玩系统的开发涉及前期准备、技术选型、系统设计与开发及测试优化。首先,通过目标用户分析和竞品分析明确功能需求,如注册登录、预约匹配、实时语音等。技术选型上,前端采用Uni-app支持多端开发,后端选用PHP框架确保稳定性能,数据库使用MySQL保证数据一致性。系统设计阶段注重UI/UX设计和前后端开发,集成WebSocket实现语音聊天。最后,通过功能、性能和用户体验测试,确保系统的稳定性和用户满意度。
|
1月前
|
人工智能 监控 数据可视化
提升开发效率:看板方法的全面解析
随着软件开发复杂度提升,并行开发模式下面临资源分配不均、信息传递延迟及缺乏全局视图等瓶颈问题。看板工具通过任务状态实时可视化、流量效率监控和任务依赖管理,帮助团队直观展示和解决这些瓶颈。未来,结合AI预测和自动化优化,看板工具将更高效地支持并行开发,成为驱动协作与创新的核心支柱。
|
1月前
|
JSON 供应链 搜索推荐
淘宝APP分类API接口:开发、运用与收益全解析
淘宝APP作为国内领先的购物平台,拥有丰富的商品资源和庞大的用户群体。分类API接口是实现商品分类管理、查询及个性化推荐的关键工具。通过开发和使用该接口,商家可以构建分类树、进行商品查询与搜索、提供个性化推荐,从而提高销售额、增加商品曝光、提升用户体验并降低运营成本。此外,它还能帮助拓展业务范围,满足用户的多样化需求,推动电商业务的发展和创新。
67 5
|
2月前
|
安全 前端开发 Android开发
探索移动应用与系统:从开发到操作系统的深度解析
在数字化时代的浪潮中,移动应用和操作系统成为了我们日常生活的重要组成部分。本文将深入探讨移动应用的开发流程、关键技术和最佳实践,同时分析移动操作系统的核心功能、架构和安全性。通过实际案例和代码示例,我们将揭示如何构建高效、安全且用户友好的移动应用,并理解不同操作系统之间的差异及其对应用开发的影响。无论你是开发者还是对移动技术感兴趣的读者,这篇文章都将为你提供宝贵的见解和知识。
|
3月前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
133 2
|
4月前
|
缓存 Java 程序员
Map - LinkedHashSet&Map源码解析
Map - LinkedHashSet&Map源码解析
100 1
|
4月前
|
算法 Java 容器
Map - HashSet & HashMap 源码解析
Map - HashSet & HashMap 源码解析
86 0
|
2月前
|
设计模式 存储 安全
【23种设计模式·全精解析 | 创建型模式篇】5种创建型模式的结构概述、实现、优缺点、扩展、使用场景、源码解析
创建型模式的主要关注点是“怎样创建对象?”,它的主要特点是"将对象的创建与使用分离”。这样可以降低系统的耦合度,使用者不需要关注对象的创建细节。创建型模式分为5种:单例模式、工厂方法模式抽象工厂式、原型模式、建造者模式。
【23种设计模式·全精解析 | 创建型模式篇】5种创建型模式的结构概述、实现、优缺点、扩展、使用场景、源码解析
|
2月前
|
存储 设计模式 算法
【23种设计模式·全精解析 | 行为型模式篇】11种行为型模式的结构概述、案例实现、优缺点、扩展对比、使用场景、源码解析
行为型模式用于描述程序在运行时复杂的流程控制,即描述多个类或对象之间怎样相互协作共同完成单个对象都无法单独完成的任务,它涉及算法与对象间职责的分配。行为型模式分为类行为模式和对象行为模式,前者采用继承机制来在类间分派行为,后者采用组合或聚合在对象间分配行为。由于组合关系或聚合关系比继承关系耦合度低,满足“合成复用原则”,所以对象行为模式比类行为模式具有更大的灵活性。 行为型模式分为: • 模板方法模式 • 策略模式 • 命令模式 • 职责链模式 • 状态模式 • 观察者模式 • 中介者模式 • 迭代器模式 • 访问者模式 • 备忘录模式 • 解释器模式
【23种设计模式·全精解析 | 行为型模式篇】11种行为型模式的结构概述、案例实现、优缺点、扩展对比、使用场景、源码解析
|
2月前
|
设计模式 存储 安全
【23种设计模式·全精解析 | 创建型模式篇】5种创建型模式的结构概述、实现、优缺点、扩展、使用场景、源码解析
结构型模式描述如何将类或对象按某种布局组成更大的结构。它分为类结构型模式和对象结构型模式,前者采用继承机制来组织接口和类,后者釆用组合或聚合来组合对象。由于组合关系或聚合关系比继承关系耦合度低,满足“合成复用原则”,所以对象结构型模式比类结构型模式具有更大的灵活性。 结构型模式分为以下 7 种: • 代理模式 • 适配器模式 • 装饰者模式 • 桥接模式 • 外观模式 • 组合模式 • 享元模式
【23种设计模式·全精解析 | 创建型模式篇】5种创建型模式的结构概述、实现、优缺点、扩展、使用场景、源码解析

推荐镜像

更多