輕應用介紹-用JavaScript進行嵌入式開發

2021-01-09 騰訊網

簡介

輕應用:可運行在輕量級嵌入式設備上的JavaScript應用(左圖)

輕應用框架:封裝了JavaScript引擎和API接口,用於支持輕應用開發的軟體框架(右圖)

特點

輕巧:基於事件驅動的JavaScript輕應用短小精悍,免編譯、免燒錄

快速:結合阿里雲物聯網平臺,一鍵完成應用代碼熱更新

簡單:JavaScript API 簡潔易懂,大幅降低IoT嵌入式設備應用開發門檻

兼容:輕鬆移植JavaScript生態軟體包,與各類雲端業務渾然一體

運行原理

豐富的組件支持

基礎組件

文件系統 FS

系統信息 SYS

鍵值對存儲 KV

電源管理 LPM

硬體I/O UART/GPIO/I2C/SPI

模數/數模轉換 ADC/DAC

脈寬調製 PWM

定時器 TIMER

實時時鐘 RTC

看門狗 WDG

網絡協議 UDP/TCP/HTTP/MQTT

高級組件

物聯網平臺連接組件

支付組件

語音組件

傳感器服務組件

定位服務組件

外設驅動庫

編碼電機/步進電機/伺服電機/繼電器

麥克風/語音錄放模塊/揚聲器

PS2搖杆/電容觸摸/按鍵

TFT彩屏/數碼管/三色燈

加速度計/陀螺儀/電子羅盤/氣壓計/磁力計

溫溼度/顏色/光照強度

更多

文件結構

一個最精簡的輕應用包由最少兩個文件組成,必須放在項目文件夾的根目錄

開發流程

編寫輕應用代碼

一鍵熱更新

輕應用 vs Native C/C++應用

app.js - 輕應用入口文件

示例代碼

輕應用入口

App(Object options)

用於註冊輕應用,接受一個 Object 作為屬性,用來配置輕應用的生命周期等。 必須在 app.js 中調用,必須調用且只能調用一次。

其中options屬性有:

生命周期

onLaunch()

輕應用啟動時的hook函數。

onError()

輕應用出現錯誤的hook函數。

onExit()

輕應用退出時的hook函數。

app.json - 全局配置文件

用於對輕應用進行全局配置,設置頁面文件的路徑、硬體I/O口的配置等。

以下是一個基本配置示例:

完整配置如下:

在JS應用代碼中,通過 可以獲取到 中的內容。

version 配置項

輕應用版本號。

io 配置項

不同的模組/晶片,各個埠和管腳的功能映射可能是不一樣的。

IoT輕應用的配置文件 中,可將硬體(晶片)的物理埠映射成為統一的應用層邏輯埠。

這樣映射的好處是在替換不同的硬體或者晶片時,只需要替換 而不用修改應用程式或設備程序,從而便於應用的跨平臺運行。

IO配置項中有 等硬體描述概念,對於每一款硬體(通常是晶片/模組/開發板)該配置文件均可能不同。

語法描述格式定義如下:

解釋:

:定義對象,後面大括號裡面則描述了該對象的類型。定義後可以在 JS 中直接使用。

: 描述了該對象的類型,可以是IoT輕應用支持的硬體擴展類型,如 GPIO,I2C,ADC 等。

:描述了該對象的埠,這裡需要根據實際硬體連接及晶片的PIN 腳映射關係來填寫。

: 是 GPIO 類型特有的,用於描述 GPIO 輸出輸出及上拉下拉,其他如 ADC 類型則有 採樣頻率這種類型描述。

外設 type 說明

io配置項的 用於描述該對象是什麼硬體埠類型,而每一種也擁有不同的屬性欄位,如 GPIO 與 ADC 的屬性欄位是不一樣的。

GPIO

示例

UART

示例

I2C

示例

SPI

示例

ADC

示例

DAC

示例

PWM

示例

TIMER

示例

debugLevel

配置調試日誌等級,分為如下幾個等級,默認為ERROR

repl(交互式解析器)

配置交互式解析器開關,默認打開。

說明

示例

至此,輕應用概覽、運行周期,詳細配置與操作就介紹完了。各位開發者們可以在HaaS開發板上進行實際開發操作了。

--END-

相關焦點

  • 碼靈半導體:致力於嵌入式應用處理器(MPU)晶片的開發和銷售
    打開APP 碼靈半導體:致力於嵌入式應用處理器(MPU)晶片的開發和銷售 Sara 發表於 2020-12-21 10:46:14
  • MCU也需要AI 能夠突破嵌入式應用可能的極限
    但隨著AI從雲到邊緣的發展,使得這一觀點正在迅速改變,AI計算引擎使MCU能夠突破嵌入式應用可能的極限,嵌入式設計已經能夠提高網絡攻擊的實時響應能力和設備安全性。 支持AI的MCU (圖片:意法半導體) 配備AI算法的MCU正在應用包含對象識別,啟用語音服務和自然語言處理等功能的應用程式。它們還有助於提高物聯網(IoT),可穿戴設備和醫療應用中電池供電設備的準確性和數據隱私性。 那麼,MCU如何在邊緣和節點設計中實現AI功能?下面簡要介紹了三種基本方法,這些方法使MCU能夠在IoT網絡邊緣執行AI加速。
  • 嵌入式工控機的應用領域
    1、嵌入式工控機在無人駕駛中的應用本文引用地址:http://www.eepw.com.cn/article/202002/410247.htm無人駕駛也稱之為輪式移動機器人
  • 藍鵬測控平臺嵌入式的系統開發
    什麼是嵌入式系統?嵌入式系統由硬體和軟體組成.是能夠獨立進行運作的器件。其軟體內容只包括軟體運行環境及其作業系統。硬體內容包括信號處理器、存儲器、通信模塊等在內的多方面的內容。嵌入式系統是以應用為中心,以現代計算機技術為基礎,能夠根據用戶需求(功能、可靠性、成本、體積、功耗、環境等)靈活裁剪軟硬體模塊的專用計算機系統。嵌入式系統的應用場合大多對可靠性、實時性有較高要求,這就決定了服務於特定應用的專用系統是嵌入式系統的主流模式,它並不強調系統的通用性和可擴展。
  • 計算機三級考試嵌入式系統開發技術題庫(有答案)
    >埠、以及各種控制器;     嵌入式軟體:包括嵌入式作業系統和各種應用程式。12論述嵌入式軟體開發構建階段任務,以及每個步驟的功能內容。     答:軟硬體協同設計的大致流程有4步     用HDL語言和C語言進行系統描述並進行模擬仿真和系統功能驗證
  • 風河以新版VxWorks重新定義嵌入式軟體開發
    過去30多年來,這個平臺一直推動著嵌入式應用功能安全性和信息性的發展,並提供了高度確定性的性能。在此過程中,VxWorks不斷發展,滿足了軟體開發人員不斷變化的需求。VxWorks最新版本性能出眾、行業領先,重新定義了嵌入式軟體開發,必將創造更大的商業價值,大幅度推動創新、提高生產效率。
  • 零基礎程式設計師想從事嵌入式開發,應該怎麼樣去學習呢?
    1.嵌入式開發作為新人,第一C語言,有很多人自認為自己C語言很厲害,但是實際上一個從事嵌入式開發的老人,至少需要3-5年你才敢對C語言說精通。 C語言是所有程式語言中的強者,單片機、DSP、類似ARM的種種晶片的編程都可以用C語言搞定),因此必須非常熟練的掌握。 2.必須掌握一個嵌入式作業系統(初步定為uclinux或linux,版本待定)
  • 使用嵌入式開發套件將軟體編譯並形成有效硬體
    使用嵌入式開發套件將軟體編譯並形成有效硬體 Jay Gould 發表於 2020-12-15 15:23:00 如果問使用嵌入式開發工具的用戶,他們需要什麼功能來滿足其下一代終極處理設計的需要
  • 5個開發桌面應用程式的JavaScript框架
    5個開發桌面應用程式的JavaScript框架 很久以前,開發客戶端桌面程序需要我們掌握各種複雜的技術,不過現在,我們只需要使用js就可以開發出桌面應用程式,下面我們盤點5個開發桌面應用程式的框架。
  • 嵌入式應用更趨智能化 高性能MCU功能增強
    隨著物聯網和人工智慧等技術的深度應用,嵌入式作業系統在越來越多的領域發揮著重要的作用,目前已成為產品技術水平的標誌之一。9月9日,在深圳嵌入式電子展中,大比特資訊記者就嵌入式產品、技術與市場等話題採訪了納芯微、芯旺微、航順晶片以及笙泉等多家企業。
  • 嵌入式Linux啟動時間優化的秘密之一工具鏈/應用程式優化
    嵌入式Linux啟動時間優化的秘密之一工具鏈/應用程式優化 逸珺 發表於 2020-04-02 16:07:10   嵌入式Linux啟動時間優化的秘密
  • 工業嵌入式系統
    >提供了非常廣闊的應用空間。嵌入式系統一般要求高的可靠性,例如在高溫、高壓、電磁幹擾嚴重的工業環境就對嵌入式系統有很高的要求。嵌入式處理器的功耗、體積、處理能力在具體應用中也有很高的要求,這在消費類電子產品方面的表現非常明顯。嵌入式技術在工業控制中顯得尤其的重要,屬於控制的核心環節。各產業優化嵌入式系統,力能夠為用戶打造一個高性能、高可靠性的非傳統工業控制設備。
  • 嵌入式系統趨勢與技術
    嵌入式系統的工業市場包括通信,汽車,APP電商系統開發,航空航天,消費電子,軍事系統,以及工業控制和他其包括智能城市。嵌入式控制系統通常是功能進行固定或可編程的硬體和軟體的某種產品組合。嵌入式控制系統分析可以進行設計為支持較大系統中的一個或多個特定功能。
  • 物聯網開發筆記——嵌入式開發之Linux系統中C語言分支判斷語句
    物聯網開發筆記——嵌入式開發之Linux系統中C語言數據類型物聯網開發筆記——嵌入式開發之Linux系統中輸入輸出嵌入式開發學習本節介紹《Linux系統中C語言控制語句之分支語句》。1、C語言的語句概述1)C 語言提供了以下類型的分支判斷語句。
  • 運用可擴展多核處理器滿足嵌入式應用日益增長的性能需求
    有些處理器最多支持8個CPU核心,但即便如此無法滿足存儲、汽車、網絡和5G等新興應用的性能需求。下一代嵌入式應用需要對大型CPU集群和專用硬體加速器提供可擴展的支持,以實現所需的性能。大型多核處理器需要新的架構方法來提供更高的性能,並且不會給嵌入式設計者帶來其他實現和時序收斂問題。
  • 嵌入式系統中USB控制的Host/Slave模式的應用
    引言 目前,USB 設備產品的應用非常廣泛,但市場上能夠提供Host/Slave兩種模式的USB控制晶片並不多,本系統採用CYPRESS公司的SL811HST晶片作為USB接口的控制晶片,實現Host/Slave兩種工作模式。
  • 前端:用javascript實現一個轉盤小遊戲?
    本文轉載自【微信公眾號:趣談前端,ID:beautifulFront】經微信公眾號授權轉載,如需轉載與原文作者聯繫本文主要介紹如何使用原生javascript和Css3來實現一個在各大移動應用中經常出現的轉盤遊戲,由於改實現可以有不同方式,如果熟悉canvas的話也可以用canvas實現,本文採用js和css實現主要考慮到複雜度較小性能較好
  • 工業4.0時代 嵌入式工控主機主要應用場景
    嵌入式工控主機在巡邏機器人領域的應用隨著人工智慧技術的發展,巡邏機器人的發展逐漸崛起。嵌入式工控主機作為機器視覺系統的管理中心主控設備,搭配圖像分析、處理軟體計算出特徵,針對計算結果,工控機控制執行機構進行分類、剔除、報警等動作。
  • QT5開發:引導篇
    從QT5開始,我們就可以使用QT Quick來進行全新的編程了。同時也因為是全新的編程平臺,目前的學習方案仍然主要來自幫助文檔和QT提供的案例,相關開發的教程依然不多。這篇也僅僅只是向讀者作一個簡單的介紹,後面可能會一邊學習,一邊做成進一步的文檔,供學習者進一步參考。
  • Giotto編程技術、特點及實現嵌入式應用設計
    隨著計算機技術、控制技術、信息技術的快速發展,工業的生產和管理方式進入了生產自動化、控制智能化時代,特別是分布嵌入式系統的應用,更加需要標準化、實時的控制模塊和I/O功能模塊,以便系統集成,構建適應於惡劣環境的複雜分布式系統。