• 正文
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

【平頭哥Sipeed LicheeRV 86開發(fā)板試用】搭建Waft開發(fā)環(huán)境

01/24 15:02
296
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

1. waft介紹

Waft:為AIoT應(yīng)用研發(fā)而生Waft(WebAssembly Framework for Things) 是一個面向 AIoT 的高性能應(yīng)用研發(fā)框架,Waft ?基于 WebAssembly 和自研的渲染引擎技術(shù)打造,適用于智能終端軟件應(yīng)用研發(fā)場景。

它的特點網(wǎng)站從框架特性,技術(shù)優(yōu)勢,應(yīng)用場景幾個方面展開。其中強調(diào)的AIoT的應(yīng)用,高性能幾乎接近原生應(yīng)用體驗,跨平臺等特點令人關(guān)注。

參考文檔:https://www.yuque.com/waft/docs/melflo

2. 準(zhǔn)備

官方提供的語雀中包含了Waft快速開發(fā)指導(dǎo),框架使用,組件文檔,API手冊等內(nèi)容。
更新開發(fā)板waft應(yīng)用框架+庫(我前兩給官方提了BUG, 更新的)下載地址https://occ.t-head.cn/vendor/detail/download?spm=a2cl5.25411629.0.0.68d4180fSmBbBu&id=3978884137347461120&vendorId=3895463451199475712&module=3更新方法參考:https://occ.t-head.cn/community/post/detail?spm=a2cl5.26076654.0.0.4a43180fOV1h2K&id=4003830518746517504

3. 環(huán)境搭建

我使用ubuntu 20.04 物理機作為開發(fā)平臺。
3.1 安裝nodejs環(huán)境(我之前安裝過)

再提一下安裝命令 :

sudo apt install nodejs

3.2 安裝waft-cli工具

安裝好了nodejs環(huán)境后,接下來就是安裝waft-cli這個稱為腳手架的工具了。命令為:

sudo npm i waft-cli -g
如果指令順利執(zhí)行完成的話,我們就可以開始基本waft的工程創(chuàng)建了。

3.3 vscode 代碼編輯器

安裝VScode 代碼編輯器。(地球人都在用,我之用安裝過)可以通過vscode的官網(wǎng)下載安裝包https://code.visualstudio.com/Download也可以直接使用ubuntu的軟件包管理軟件搜索vscode安裝,這個方法比較簡單,一鍵完成,推薦。

4. 第一個例程測試

一切準(zhǔn)備就緒,學(xué)編程第一個節(jié)課,

就是向編程語言Say hello, ?Waft 也從Say hello開始吧, waft say hello, 不簡單, ?折騰了好幾天,

還沒Say hello, 官方給升級模板, 各運行庫, 還是沒成功, 最后是官方給的aot, ?才成功Say hello。

4.1創(chuàng)建項目

首先我們新建一個目錄,就命名為hello_waft吧,進入目錄后,運行

waft init

提示輸入開發(fā)者,可以不寫接下來就是選擇模板了,按方向下鍵選擇,我們選擇1: Say hello模板。接下來就是工程項目初始化過程,網(wǎng)絡(luò)必須暢通,否則就夠嗆了。我們可以看到他在執(zhí)行npm install的一個進度條。當(dāng)進度條走完了,出現(xiàn)init done的字樣后,項目創(chuàng)建就完成了。

4.2 啟動服務(wù)和項目預(yù)覽

進入剛才創(chuàng)建的項目目錄,

cd?hello_waft

然后執(zhí)行

sudo npm start

執(zhí)行后,看版本號,我的目前最新0.7.3,舊版編譯aot,會有問題

sun@sun-ubuntu:~/waft/hello_waft$ sudo npm start

 

 

>hello_waft@0.7.3 start /home/sun/waft/hello_waft

> waft start

 

 

web服務(wù)已啟動

靜態(tài)預(yù)覽:http://127.0.0.1:8080/web/preview.html?action=preview&path=pages/index/index

 

運行模式:http://127.0.0.1:8080/web/preview.html?action=run

 

 

start success

 

Welcome to waft development.

Type .help for more information.

 

waft:0.7.38

waft-cli:0.7.19

waft>  waft工作臺已啟動

http://127.0.0.1:8080/ui

真機調(diào)試可連接到本機ip: 192.168.0.64

waft> /bin/sh: open: command not found

命令執(zhí)行后,可以看到終端的提示,我們來靜態(tài)預(yù)覽一下看看效果,再瀏覽器中打開

靜態(tài)預(yù)覽:http://127.0.0.1:8080/web/preview.html?action=preview&path=pages/index/index

動態(tài)效果預(yù)覽(與靜態(tài)一樣畫面,區(qū)別是靜態(tài)點圖標(biāo),無動作,動態(tài)有動作)

運行模式:http://127.0.0.1:8080/web/preview.html?action=run

調(diào)試模式:http://127.0.0.1:8080/ui

(build –aotTarget=riscv64參數(shù)指定不了平臺 , 也沒這個參數(shù)) 在這個調(diào)試平臺,可以指定target 為riscv,??點了調(diào)試后,同樣也在編譯(這是原廠升級后結(jié)果,不升級點riscv64,會失敗)

4.2 編譯

build怎么用,先help

build help
....
.build 編譯工程 --default=默認(rèn)頁面(可選) --page=指定單頁(可選) --card=指定的卡片(可選) --aot=true(可選, 是否輸出 .aot 文件) --push=true(可選, 構(gòu)建完自動推送)

(build –aotTarget=riscv64參數(shù)指定不了平臺 , 也沒這個參數(shù))

官方教程以下命令:

waft>.build –aot=true –aotTarget=riscv64

(build –aotTarget=riscv64參數(shù)指定不了平臺 , 也沒這個參數(shù))

......

官方教程里寫的說明指定target 不是在這個命令里,指定了還是arm的'--aotTarget=riscv64是無效的吧 所以指定不到 target

依據(jù)信息,可知編譯的目標(biāo)程序是armv7, ?在licheeRV86, ?跑肯定會出錯, 跑不起來的。。。

可以運行:

waft_app app.aot 192.168.0.64 8030

編譯后, 直接.pull,(或調(diào)試窗口,點推送) 就可以傳文件到開發(fā)板了,so wasy, 方便可以運行:waft_app app.aot 192.168.0.64 8030

root@MaixLinux:/waftapps# waft_app app.aot 192.168.0.64 8030

編譯成功后,會出現(xiàn)Compile success字樣。同時我們可以察看工程文件的編譯結(jié)果如下,存放在項目文件夾下的build文件夾內(nèi)。

sun@sun-ubuntu:~/waft/hello_waft$ ls build
app.aot app.wasm.map cards _waft_index.ts
app.wasm app.wat index.html

注: aot與平臺相關(guān)的 waft應(yīng)用

  • 查看網(wǎng)絡(luò)連接

root@MaixLinux:/mnt/UDISK# ifconfig
eth0 Link encap:Ethernet HWaddr 22:77:81:E0:C7:3D
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Interrupt:62

wlan0 Link encap:Ethernet HWaddr 08:BE:E0:98:24:70
inet addr:192.168.0.20 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::abe:e0ff:fe98:2470/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:120428 errors:0 dropped:24350 overruns:0 frame:0
TX packets:27595 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:110086034 (104.9 MiB) TX bytes:2799901 (2.6 MiB)

  • 推送編譯結(jié)果

這里采用scp命令推送aot到開發(fā)板, 推送前建議先cp名為hello.aot。

sun@sun-ubuntu:~/waft/hello_waft/build$ cp app.aot hello.aot
sun@sun-ubuntu:~/waft/hello_waft/build$ scp hello.aot root@192.168.0.20:/waftapps
root@192.168.0.20's password:
hello.aot 100% 566KB 4.1MB/s 00:00

注意編譯結(jié)果在build目錄 下。

  • 實測

再ssh終端中,執(zhí)行剛剛上傳的hello.aot文件。命令為:

waft_app hello.aot

不巧運行hello, 失敗, 群其他開發(fā)者同樣是運行失敗, 在釘釘, 更新了waft_cli, hello模版代碼,開板板運行庫, 運行結(jié)果

平頭哥

平頭哥

平頭哥半導(dǎo)體有限公司于2018年9月宣布成立,是阿里巴巴集團的全資半導(dǎo)體芯片業(yè)務(wù)主體。平頭哥擁有端云一體全棧產(chǎn)品系列,涵蓋數(shù)據(jù)中心人工智能芯片、處理器IP授權(quán)等,實現(xiàn)芯片端到端設(shè)計鏈路全覆蓋。

平頭哥半導(dǎo)體有限公司于2018年9月宣布成立,是阿里巴巴集團的全資半導(dǎo)體芯片業(yè)務(wù)主體。平頭哥擁有端云一體全棧產(chǎn)品系列,涵蓋數(shù)據(jù)中心人工智能芯片、處理器IP授權(quán)等,實現(xiàn)芯片端到端設(shè)計鏈路全覆蓋。收起

查看更多

相關(guān)推薦

登錄即可解鎖
  • 海量技術(shù)文章
  • 設(shè)計資源下載
  • 產(chǎn)業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄