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

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

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

1. waft介紹

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

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

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

2. 準(zhǔn)備

官方提供的語(yǔ)雀中包含了Waft快速開(kāi)發(fā)指導(dǎo),框架使用,組件文檔,API手冊(cè)等內(nèi)容。
更新開(kāi)發(fā)板waft應(yīng)用框架+庫(kù)(我前兩給官方提了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 物理機(jī)作為開(kāi)發(fā)平臺(tái)。
3.1 安裝nodejs環(huán)境(我之前安裝過(guò))

再提一下安裝命令 :

sudo apt install nodejs

3.2 安裝waft-cli工具

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

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

3.3 vscode 代碼編輯器

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

4. 第一個(gè)例程測(cè)試

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

就是向編程語(yǔ)言Say hello, ?Waft 也從Say hello開(kāi)始吧, waft say hello, 不簡(jiǎn)單, ?折騰了好幾天,

還沒(méi)Say hello, 官方給升級(jí)模板, 各運(yùn)行庫(kù), 還是沒(méi)成功, 最后是官方給的aot, ?才成功Say hello。

4.1創(chuàng)建項(xiàng)目

首先我們新建一個(gè)目錄,就命名為hello_waft吧,進(jìn)入目錄后,運(yùn)行

waft init

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

4.2 啟動(dòng)服務(wù)和項(xiàng)目預(yù)覽

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

cd?hello_waft

然后執(zhí)行

sudo npm start

執(zhí)行后,看版本號(hào),我的目前最新0.7.3,舊版編譯aot,會(huì)有問(wèn)題

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

 

 

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

> waft start

 

 

web服務(wù)已啟動(dòng)

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

 

運(yùn)行模式: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工作臺(tái)已啟動(dòng)

http://127.0.0.1:8080/ui

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

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

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

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

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

運(yùn)行模式:http://127.0.0.1:8080/web/preview.html?action=run

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

(build –aotTarget=riscv64參數(shù)指定不了平臺(tái) , 也沒(méi)這個(gè)參數(shù)) 在這個(gè)調(diào)試平臺(tái),可以指定target 為riscv,??點(diǎn)了調(diào)試后,同樣也在編譯(這是原廠升級(jí)后結(jié)果,不升級(jí)點(diǎn)riscv64,會(huì)失?。?/p>

4.2 編譯

build怎么用,先help

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

(build –aotTarget=riscv64參數(shù)指定不了平臺(tái) , 也沒(méi)這個(gè)參數(shù))

官方教程以下命令:

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

(build –aotTarget=riscv64參數(shù)指定不了平臺(tái) , 也沒(méi)這個(gè)參數(shù))

......

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

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

可以運(yùn)行:

waft_app app.aot 192.168.0.64 8030

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

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

編譯成功后,會(huì)出現(xiàn)Compile success字樣。同時(shí)我們可以察看工程文件的編譯結(jié)果如下,存放在項(xiàng)目文件夾下的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與平臺(tái)相關(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到開(kāi)發(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目錄 下。

  • 實(shí)測(cè)

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

waft_app hello.aot

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

平頭哥

平頭哥

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

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

查看更多

相關(guān)推薦

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