色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

用于嵌入式設備的JavaScript

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

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

從玩具到工具

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

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

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

O‘Reilly Media 的創始人 Tim O’Reilly 曾對 JavaScript 從業余愛好者的玩具轉變為專業工具的轉變發表了著名的評論:“過去學習 JavaScript 意味著你不是一個認真的軟件開發人員。今天,不學習 Javascript 意味著同樣的事情。”

JavaScript 現在廣泛用于網頁、Web 服務器和移動應用程序。但還沒有在嵌入式系統中。這有望改變。

熟悉的語法

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

poYBAGK7raCAImuZAACbjNa9W_g399.png

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

但是腳本很慢

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

利用內置函數和對象。JavaScript 語言具有復雜的內置對象,支持數組、JSON、正則表達式和其他字符串操作。這些實現通常在 JavaScript 引擎中得到了很好的優化?;〞r間了解這些,以避免在您的腳本中重復它們的功能。

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

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

JIT 呢?

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

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

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

記憶

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

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

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

用戶腳本

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

今天的嵌入式 JavaScript

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

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

作為一個行業,我們正處于 JavaScript 在嵌入式設備中成為現實的風口浪尖。幸運的是,已經有三種開發系統可供開發人員開始使用嵌入式 JavaScript:

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

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

Marvell Semiconductor 的 Kinoma Create 是一款“基于 JavaScript 的物聯網構建工具包”,運行 Marvell Semiconductor 的 XS JavaScript 引擎,支持完整的 JavaScript 第 5 版標準。

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

審核編輯:郭婷

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

    關注

    5090

    文章

    19176

    瀏覽量

    306881
  • 物聯網
    +關注

    關注

    2912

    文章

    44910

    瀏覽量

    375864
  • JAVA
    +關注

    關注

    19

    文章

    2974

    瀏覽量

    104966
收藏 人收藏

    評論

    相關推薦

    ARM架構嵌入式主板特點

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

    新手怎么學嵌入式?

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

    什么是嵌入式人工智能

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

    嵌入式系統與物聯網的結合

    。這兩者的結合,為智能設備和智能系統的發展提供了強大的動力。 一、嵌入式系統與物聯網的基本概念 嵌入式系統 嵌入式系統是一種專用的計算機系統,它被設計
    的頭像 發表于 11-06 10:23 ?420次閱讀

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

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

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

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

    嵌入式QT常見開發方式有哪些?

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

    嵌入式熱門領域有哪些?

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

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

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

    嵌入式熱門發展方向有哪些?

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

    嵌入式fpga是什么意思

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

    fpga是嵌入式

    FPGA(現場可編程門陣列)不是嵌入式系統,但FPGA在嵌入式系統中有著重要的應用。
    的頭像 發表于 03-14 17:19 ?2459次閱讀

    嵌入式系統發展前景?

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

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

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

    嵌入式學習步驟

    開發板上測試固件以及在實際設備上進行測試。 嵌入式系統的多樣化發展,它將更為廣泛地應用于各個領域,實現智能化、網絡化、自動化的目標。同時,隨著人工智能和機器學習技術的發展,嵌入式系統
    發表于 02-02 15:24
    主站蜘蛛池模板: 亚洲永久精品ww47app | 美国大臿蕉香蕉大视频 | 999zyz色资源站在线观看 | 久久久久综合网 | 超清无码波多野吉衣与黑人 | 四虎影5151毛片在线看 | 国产久久re6免费热在线 | 99精品国产自在自线 | 国产成人刺激视频在线观看 | 热99RE久久精品国产 | 天天操天天干天天透 | 69日本人XXXX护士HD | 天堂岛www | 成年私人影院网站在线看 | 成人短片迅雷下载 | 亚洲精品无码午夜福利在线观看 | 久久视频在线视频观看天天看视频 | 吃寂寞寡妇的奶 | 国产精品免费一区二区三区四区 | 久久精品亚洲视频 | 在线免费观看毛片 | 国产精品青草久久福利不卡 | 男女肉大捧进出全过程免费 | 男助理憋尿PLAY灌尿BL出去 | 免费看到湿的小黄文软件APP | 538视频这里只有精品 | 亚洲精品黄色 | 久久一级片 | 乱码午夜-极品国产内射 | 久久草这里全是精品香蕉频线观 | 96精品视频| 激情女人花 | 日本午夜视频在线 | 国产日韩欧美三级 | 美女扒开尿口让男生添动态图 | 少妇大荫蒂毛多毛大 | 亚洲国产中文字幕新在线 | 久操久操久操 | 快播理伦片 | 风情韵味人妻HD | 破女在线观看视频 |