在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

用于嵌入式設備的JavaScript

星星科技指導員 ? 來源:嵌入式計算設計 ? 作者:Peter Hoddie ? 2022-06-29 09:39 ? 次閱讀

嵌入式系統(tǒng)創(chuàng)建軟件的程序員對腳本并不陌生。他們選擇腳本是因為它們是解決問題的最快方法。腳本用于自動化構(gòu)建和運行驗證測試。解釋性語言——一種使編程語言成為腳本語言的通用定義——例如 Forth 已經(jīng)使用了幾十年,以減少代碼的內(nèi)存占用,同時以可移植的方式提高可維護性。

從玩具到工具

JavaScript 于 1995 年作為網(wǎng)頁編程語言首次出現(xiàn)。由 Brendan Eich 通過將類似 C 的語法應用于基于原型的繼承而創(chuàng)建的 JavaScript 并未被視為為任何環(huán)境創(chuàng)建商業(yè)軟件的可行工具。這種看法慢慢地改變了。在幕后,JavaScript 通過 ECMA International 成為標準,現(xiàn)在正在進行第 6 次重大修訂。

雅虎的 Douglas Crockford 富有洞察力的工作創(chuàng)建了數(shù)據(jù)交換格式 JSON(JavaScript 標準對象表示法)作為 JavaScript 的嚴格子集。JSON 已迅速取代 XML,成為 Web 客戶端和服務器之間通信的首選數(shù)據(jù)格式,因為它簡單易用,尤其是 JavaScript 軟件。

2009 年,Ryan Dahl 推出了 node.js,這是一種使用 Google 閃電般快速的 V8 JavaScript 引擎在 JavaScript 中構(gòu)建 Web 服務器的高效方法。node.js 已被迅速采用,帶來了強大的開發(fā)人員生態(tài)系統(tǒng)和大量開源模塊。

O‘Reilly Media 的創(chuàng)始人 Tim O’Reilly 曾對 JavaScript 從業(yè)余愛好者的玩具轉(zhuǎn)變?yōu)閷I(yè)工具的轉(zhuǎn)變發(fā)表了著名的評論:“過去學習 JavaScript 意味著你不是一個認真的軟件開發(fā)人員。今天,不學習 Javascript 意味著同樣的事情?!?/p>

JavaScript 現(xiàn)在廣泛用于網(wǎng)頁、Web 服務器和移動應用程序。但還沒有在嵌入式系統(tǒng)中。這有望改變。

熟悉的語法

今天的大多數(shù)嵌入式編程都是用 C 完成的。與許多需要 C 程序員學習不同語法和編程風格的腳本語言不同,JavaScript 的語法與 C 非常相似。有經(jīng)驗的嵌入式開發(fā)人員可能只需要一個下午在他們能夠閱讀、理解和成功修改 JavaScript 代碼之前。

poYBAGK7raCAImuZAACbjNa9W_g399.png

當然,有效地使用任何編程語言都需要學習。許多 JavaScript 書籍都專注于構(gòu)建網(wǎng)頁,但 David Flanagan 的優(yōu)秀 JavaScript:權(quán)威指南介紹了獨立于 Web 的語言。Crockford 頗具影響力的 JavaScript: The Good Parts 是一本面向有經(jīng)驗的 JavaScript 程序員的固執(zhí)己見、務實的風格指南。

但是腳本很慢

嵌入式開發(fā)人員對性能保持警惕。腳本語言天生就比 C 慢。因此,任何優(yōu)秀的嵌入式開發(fā)人員的第一個沖動就是對任何腳本語言都抱有極大的懷疑。然而,提供卓越性能的可靠方法是可用的:

利用內(nèi)置函數(shù)和對象。JavaScript 語言具有復雜的內(nèi)置對象,支持數(shù)組、JSON、正則表達式和其他字符串操作。這些實現(xiàn)通常在 JavaScript 引擎中得到了很好的優(yōu)化。花時間了解這些,以避免在您的腳本中重復它們的功能。

仔細編碼。因為腳本比本機代碼慢,所以優(yōu)化良好的代碼對于性能至關重要。JavaScript 的動態(tài)特性意味著 JavaScript 引擎通常無法像 C 編譯器那樣有效地優(yōu)化代碼。

不要試圖在腳本中做所有事情。本機代碼更快,因此將其用于計算復雜的功能。沒有一種語言適合所有情況,所以選擇最適合工作的語言,而不是試圖“100% 純正”。每個 JavaScript 引擎都提供了一種從腳本調(diào)用本機代碼的方法。如果不確定性能,請先在 JavaScript 中實現(xiàn),因為它更容易實現(xiàn)。之后,對系統(tǒng)進行概要分析。如果存在性能瓶頸,請在 C 中重新實現(xiàn)該函數(shù)。

JIT 呢?

提高解釋代碼性能的常見解決方案是即時編譯器 (JIT)。JIT 將腳本代碼編譯為目標設備上的本機代碼。JIT 的使用在現(xiàn)代 Web 瀏覽器的 JavaScript 引擎中很常見。但是,在嵌入式設備上使用 JIT 是有問題的,因為 JIT 本身需要額外的代碼空間,因為除了原始腳本代碼之外,本機代碼還需要消耗內(nèi)存,并且因為運行 JIT 需要 CPU 周期。

與 Web 瀏覽器相比,嵌入式設備具有一個顯著優(yōu)勢:雖然瀏覽器必須能夠高效地運行數(shù)十億網(wǎng)頁中的任何一個,但嵌入式設備只需要高效地運行其內(nèi)置軟件。這使嵌入式開發(fā)人員可以選擇直接用 C 語言編寫性能關鍵的腳本,而不是依賴 JIT。

Mozilla 的一個項目 asm.js 中出現(xiàn)了使用 C 的有希望的替代方案。asm.js 定義了一個嚴格的 JavaScript 子集,它更容易轉(zhuǎn)換為本機代碼或 C 源代碼。asm.js 利用 C 和 JavaScript 之間的語法相似性來簡化翻譯。嵌入式開發(fā)人員可以在 asm.js JavaScript 子集中編寫性能關鍵代碼,并將其編譯為本機代碼作為構(gòu)建過程的一部分,而不是依賴于 JIT。asm.js 的初始開發(fā)工作顯示性能約為最佳本機實現(xiàn)的一半,預計其他開發(fā)將縮小這一差距。

記憶

內(nèi)存空間是嵌入式開發(fā)人員的另一個關鍵問題。JavaScript 既有優(yōu)點也有缺點。一個明顯的缺點是用于執(zhí)行腳本的 JavaScript 引擎,這是一個不小的大小——從幾十千字節(jié)到幾兆字節(jié)不等,具體取決于引擎。因為 JavaScript 使用動態(tài)類型,變量有一些額外的內(nèi)存開銷。作為最壞情況的示例,布爾值可能使用 16 個字節(jié)。

積極的一面是,JavaScript 使用垃圾收集器,無需顯式釋放內(nèi)存。通過這種簡化,嵌入式開發(fā)人員有時間專注于開發(fā)的其他方面。此外,通過自動釋放未使用的內(nèi)存,垃圾收集器消除了許多緩慢的、小的內(nèi)存泄漏,這些泄漏會導致長期不穩(wěn)定,隔離和修復可能極具挑戰(zhàn)性。僅這一點就使得必須可靠運行數(shù)月或數(shù)年的嵌入式系統(tǒng)變得非常重要。此外,在某些情況下,研究表明垃圾收集器的 CPU 要求低于顯式釋放內(nèi)存。

垃圾收集器的一個風險,尤其是在內(nèi)存受限的環(huán)境中,是抖動——垃圾收集器運行得太頻繁以至于對系統(tǒng)性能產(chǎn)生不利影響。這個問題可以通過 JavaScript 編程風格來避免,這種風格在很大程度上限制了對嵌入式設備或應用程序中主要狀態(tài)變化的新對象的創(chuàng)建。這種方法可以使內(nèi)存使用保持穩(wěn)定,因此垃圾收集器不需要經(jīng)常運行。

用戶腳本

使用 JavaScript 的嵌入式設備可以選擇由最終用戶啟用腳本。由于 JavaScript 是一種托管執(zhí)行環(huán)境,因此可以通過安全地沙盒化腳本來確保最終用戶的腳本能力。通過允許消費者、愛好者和專業(yè)程序員編寫設備腳本來實現(xiàn)的定制將創(chuàng)造新的機會,就像智能手機上的應用程序革命一樣。

今天的嵌入式 JavaScript

嵌入式設備不再是孤島。它們通過云中的網(wǎng)絡服務、網(wǎng)絡瀏覽器以及手機和平板電腦相互連接。JavaScript 是唯一可用于為所有人開發(fā)軟件的語言,以及他們使用 JSON 交換的數(shù)據(jù)。

JavaScript 在嵌入式設備上為嵌入式程序員簡化開發(fā)工作——并為客戶提供更可靠、更可定制的產(chǎn)品——的潛力是巨大的。通過采用 JavaScript,嵌入式設備的創(chuàng)建者將能夠利用許多活躍的 JavaScript 程序員的創(chuàng)新。

作為一個行業(yè),我們正處于 JavaScript 在嵌入式設備中成為現(xiàn)實的風口浪尖。幸運的是,已經(jīng)有三種開發(fā)系統(tǒng)可供開發(fā)人員開始使用嵌入式 JavaScript:

Espruino 是一個單芯片開發(fā)板,標榜為用于微控制器的 JavaScript。它運行開源的 Espruino JavaScript 引擎,該引擎支持 JavaScript 標準的一個子集。

Tessel 將集成的 Wi-Fi 引入以 JavaScript 為中心的微控制器解決方案。Tessel 提供了與 node.js 兼容的 API,便于 node.js 開發(fā)人員采用。Tessel 將 JavaScript 翻譯成 Lua(另一種腳本語言)來執(zhí)行。翻譯實現(xiàn)了 JavaScript 標準的一個子集。

Marvell Semiconductor 的 Kinoma Create 是一款“基于 JavaScript 的物聯(lián)網(wǎng)構(gòu)建工具包”,運行 Marvell Semiconductor 的 XS JavaScript 引擎,支持完整的 JavaScript 第 5 版標準。

這些開發(fā)系統(tǒng)中的每一個都是在嵌入式設備上開始 JavaScript 開發(fā)的好工具。盡管 JavaScript 在近 20 年前首次引入,但它才剛剛開始用于嵌入式計算。毫無疑問,這將有許多令人興奮的方式將進一步發(fā)展。通過現(xiàn)在開始,您可以幫助塑造 JavaScript 在未來嵌入式系統(tǒng)中的使用方式。

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 嵌入式
    +關注

    關注

    5083

    文章

    19133

    瀏覽量

    305604
  • 物聯(lián)網(wǎng)

    關注

    2909

    文章

    44691

    瀏覽量

    373836
  • JAVA
    +關注

    關注

    19

    文章

    2970

    瀏覽量

    104798
收藏 人收藏

    評論

    相關推薦

    ARM架構(gòu)嵌入式主板特點

    嵌入式主板可以理解為嵌入設備用于控制和數(shù)據(jù)處理的CPU板,也就是設備的“大腦”。當主板嵌入
    的頭像 發(fā)表于 12-31 16:03 ?149次閱讀
    ARM架構(gòu)<b class='flag-5'>嵌入式</b>主板特點

    新手怎么學嵌入式?

    新手怎么學嵌入式? 在科技飛速發(fā)展的今天,嵌入式技術(shù)已經(jīng)滲透到我們生活的各個角落,從智能手機到智能家居,從汽車電子到醫(yī)療設備。對于新手而言,嵌入式技術(shù)就像是一座充滿神秘和機遇的寶藏,等
    發(fā)表于 12-12 10:51

    什么是嵌入式人工智能

    嵌入式人工智能是指將人工智能技術(shù)應用于嵌入式系統(tǒng)中的一種技術(shù)。嵌入式系統(tǒng)是嵌入到其他設備或系統(tǒng)中
    的頭像 發(fā)表于 12-11 09:23 ?312次閱讀
    什么是<b class='flag-5'>嵌入式</b>人工智能

    嵌入式系統(tǒng)與物聯(lián)網(wǎng)的結(jié)合

    。這兩者的結(jié)合,為智能設備和智能系統(tǒng)的發(fā)展提供了強大的動力。 一、嵌入式系統(tǒng)與物聯(lián)網(wǎng)的基本概念 嵌入式系統(tǒng) 嵌入式系統(tǒng)是一種專用的計算機系統(tǒng),它被設計
    的頭像 發(fā)表于 11-06 10:23 ?318次閱讀

    什么是嵌入式?一文讀懂嵌入式主板

    在現(xiàn)代科技浪潮中,嵌入式技術(shù)已成為支撐各種智能設備和系統(tǒng)運行的核心力量。那么,究竟什么是嵌入式?嵌入式系統(tǒng),顧名思義,是將計算機的硬件和軟件嵌入
    的頭像 發(fā)表于 10-16 10:14 ?1094次閱讀

    嵌入式主板是什么意思?嵌入式主板全面解析

    嵌入式主板,通常被稱為嵌入式系統(tǒng)的核心組件,是一種用于控制和數(shù)據(jù)處理的計算機硬件,其設計旨在嵌入特定設備中執(zhí)行專門任務。
    的頭像 發(fā)表于 09-30 10:05 ?561次閱讀

    嵌入式QT常見開發(fā)方式有哪些?

    提供的豐富組件如按鈕、文本框、窗口等構(gòu)建傳統(tǒng)的桌面應用風格界面。對于嵌入式設備上的復雜用戶界面或者需要高性能響應的應用,Qt Widgets是一個較為常用的選擇。 2.Qt Designer配合C++
    發(fā)表于 08-12 10:05

    嵌入式熱門領域有哪些?

    通過物聯(lián)網(wǎng)連接各種物理設備和傳感器,促使它們之間實現(xiàn)信息的交換和數(shù)據(jù)的共享。從智能家居到智能城市,物聯(lián)網(wǎng)的應用不斷擴展,為嵌入式系統(tǒng)工程師帶來了廣泛的就業(yè)機會和發(fā)展前景。 自動駕駛 自動駕駛技術(shù)作為
    發(fā)表于 07-16 09:23

    嵌入式主板,你了解多少?

    嵌入式主板,也稱為嵌入式計算機主板,是一種專門設計用于嵌入式系統(tǒng)的計算機主板。與臺式機和筆記本電腦中使用的常規(guī)主板不同,嵌入式主板設計
    的頭像 發(fā)表于 04-17 15:11 ?1461次閱讀

    嵌入式熱門發(fā)展方向有哪些?

    熱門發(fā)展方向,包括但不限于: 1.物聯(lián)網(wǎng): 隨著物聯(lián)網(wǎng)的快速發(fā)展,嵌入式系統(tǒng)在物聯(lián)網(wǎng)領域的應用也越來越廣泛。嵌入式系統(tǒng)可以用于物聯(lián)網(wǎng)設備的控制、監(jiān)測和數(shù)據(jù)處理等方面。例如,在服務領域,
    發(fā)表于 04-11 14:17

    嵌入式fpga是什么意思

    嵌入式FPGA是指將FPGA技術(shù)集成到嵌入式系統(tǒng)中的一種解決方案。嵌入式系統(tǒng)是一種為特定應用而設計的計算機系統(tǒng),它通常包括處理器、內(nèi)存、外設接口等組件,并且被嵌入到更大的
    的頭像 發(fā)表于 03-15 14:29 ?1269次閱讀

    嵌入式系統(tǒng)發(fā)展前景?

    的發(fā)展前景也十分廣闊。 隨著物聯(lián)網(wǎng)和智能設備的快速發(fā)展,嵌入式系統(tǒng)將更為普遍地應用于各種設備和設施,包括家用電器、醫(yī)療設備、交通工具等。這些
    發(fā)表于 02-22 14:09

    嵌入式工控機性能特點 嵌入式工控機應用場景

    嵌入式工控機性能特點 嵌入式工控機應用場景 嵌入式工控機是一種專門設計用于工業(yè)控制系統(tǒng)的計算機設備。它具有與傳統(tǒng)計算機不同的性能特點,并且在
    的頭像 發(fā)表于 02-04 11:35 ?706次閱讀

    嵌入式學習步驟

    開發(fā)板上測試固件以及在實際設備上進行測試。 嵌入式系統(tǒng)的多樣化發(fā)展,它將更為廣泛地應用于各個領域,實現(xiàn)智能化、網(wǎng)絡化、自動化的目標。同時,隨著人工智能和機器學習技術(shù)的發(fā)展,嵌入式系統(tǒng)
    發(fā)表于 02-02 15:24

    啥是嵌入式?嵌入式都有啥?薪資如何?前景如何

    嵌入式系統(tǒng)(Embedded Systems)是一種特殊類型的計算機系統(tǒng),被嵌入到其他設備或系統(tǒng)中,用于執(zhí)行特定的任務或控制特定的功能。這些系統(tǒng)通常設計
    的頭像 發(fā)表于 01-17 16:39 ?946次閱讀
    啥是<b class='flag-5'>嵌入式</b>?<b class='flag-5'>嵌入式</b>都有啥?薪資如何?前景如何
    主站蜘蛛池模板: tube性欧美另类| 婷婷在线免费观看| 欧洲亚洲国产精华液| 天天操国产| 唐人呦一呦xxxx视频| 日本特黄视频| 国产精品自在线天天看片| 国产成人亚洲影视在线| 中国高清性色生活片| 91视频www| 国产精品免费一级在线观看| 种子在线搜索| 五月婷婷综合激情网| 日本特黄色大片| 加勒比综合| 最新版资源在线天堂| 天天操天天舔天天干| 国产精品久久久福利| 22sihu国产精品视频影视资讯| 男人的午夜影院| 亚洲成人7777| 欧美巨大bbbb动漫| 都市激情亚洲综合| 天天操好逼| 性欧美极品另类| 高h细节肉爽文bl文| 四虎国产在线观看| 免费黄色国产视频| www.男人| 国产亚洲高清视频| 午夜视频在线网站| 性欧美视频| 久久久久综合中文字幕| 夜夜骑狠狠干| 成 人 a v黄 色| 国产亚洲精品免费| 日本三级日产三级国产三级| 国产精品特黄毛片| 免费特黄一区二区三区视频一| 69日本xxxxxxxxx13| 香蕉蕉亚亚洲aav综合|