哈哈哈哈哈操欧洲电影,久草网在线,亚洲久久熟女熟妇视频,麻豆精品色,久久福利在线视频,日韩中文字幕的,淫乱毛视频一区,亚洲成人一二三,中文人妻日韩精品电影

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

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

用于嵌入式設(shè)備的JavaScript

星星科技指導(dǎo)員 ? 來源:嵌入式計(jì)算設(shè)計(jì) ? 作者:Peter Hoddie ? 2022-06-29 09:39 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

從玩具到工具

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

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

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

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

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

熟悉的語法

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

poYBAGK7raCAImuZAACbjNa9W_g399.png

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

但是腳本很慢

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

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

仔細(xì)編碼。因?yàn)槟_本比本機(jī)代碼慢,所以優(yōu)化良好的代碼對(duì)于性能至關(guān)重要。JavaScript 的動(dòng)態(tài)特性意味著 JavaScript 引擎通常無法像 C 編譯器那樣有效地優(yōu)化代碼。

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

JIT 呢?

提高解釋代碼性能的常見解決方案是即時(shí)編譯器 (JIT)。JIT 將腳本代碼編譯為目標(biāo)設(shè)備上的本機(jī)代碼。JIT 的使用在現(xiàn)代 Web 瀏覽器的 JavaScript 引擎中很常見。但是,在嵌入式設(shè)備上使用 JIT 是有問題的,因?yàn)?JIT 本身需要額外的代碼空間,因?yàn)槌嗽寄_本代碼之外,本機(jī)代碼還需要消耗內(nèi)存,并且因?yàn)檫\(yùn)行 JIT 需要 CPU 周期。

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

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

記憶

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

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

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

用戶腳本

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

今天的嵌入式 JavaScript

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

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

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

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

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

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

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

審核編輯:郭婷

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

    關(guān)注

    5208

    文章

    20620

    瀏覽量

    336637
  • 物聯(lián)網(wǎng)
    +關(guān)注

    關(guān)注

    2950

    文章

    48091

    瀏覽量

    417947
  • JAVA
    +關(guān)注

    關(guān)注

    20

    文章

    3005

    瀏覽量

    116783
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    工控一體機(jī)常見結(jié)構(gòu)類型介紹|外嵌入式、內(nèi)嵌入式、壁掛一體機(jī)

    工控一體機(jī)提供多種結(jié)構(gòu)類型以適應(yīng)不同工業(yè)場(chǎng)景需求:嵌入式(最主流)、壁掛、懸臂、桌面、開放、防爆
    的頭像 發(fā)表于 04-16 16:30 ?53次閱讀
    工控一體機(jī)常見結(jié)構(gòu)類型介紹|外<b class='flag-5'>嵌入式</b>、內(nèi)<b class='flag-5'>嵌入式</b>、壁掛<b class='flag-5'>式</b>一體機(jī)

    什么是嵌入式應(yīng)用開發(fā)?

    、實(shí)現(xiàn)和部署,還包括硬件選擇、軟件設(shè)計(jì)、測(cè)試、集成和維護(hù)等流程?。 定義和背景 嵌入式應(yīng)用開發(fā)是指將軟件部署到嵌入式系統(tǒng)中,這些系統(tǒng)廣泛應(yīng)用于消費(fèi)電子和工業(yè)自動(dòng)化中。嵌入式系統(tǒng)通常
    發(fā)表于 01-12 16:13

    arm嵌入式主板優(yōu)缺點(diǎn)

    嵌入式主板是嵌入設(shè)備里面做控制、數(shù)據(jù)處理使用的CPU板 ,常見的有兩類,即基于X86的嵌入式主板和基于RISC的ARM 嵌入式主板。今天我
    發(fā)表于 01-08 07:08

    Amphenol RF嵌入式芯片天線:小身材大作用

    ,以其獨(dú)特的設(shè)計(jì)和出色的性能,為各類物聯(lián)網(wǎng)設(shè)備、醫(yī)療設(shè)備等提供了理想的解決方案。今天,我們就來深入了解一下這款天線。 文件下載: Amphenol RF 內(nèi)嵌芯片天線.pdf 產(chǎn)品概述 Amphenol RF提供了多種適
    的頭像 發(fā)表于 12-11 11:20 ?648次閱讀

    嵌入式和FPGA的區(qū)別

    開發(fā)中做出更明智的技術(shù)選擇。 基本概念解析 嵌入式系統(tǒng)(Embedded System)是一種專用計(jì)算機(jī)系統(tǒng),通常包含微處理器/微控制器、存儲(chǔ)器和專用外圍設(shè)備,被設(shè)計(jì)用于執(zhí)行特定功能。它強(qiáng)調(diào)
    發(fā)表于 11-19 06:55

    嵌入式實(shí)時(shí)操作系統(tǒng)的特點(diǎn)

    、VxWorks 和 QNX Neutrino 等,它們被廣泛應(yīng)用于汽車電子、工業(yè)自動(dòng)化、醫(yī)療設(shè)備、消費(fèi)電子和物聯(lián)網(wǎng)等領(lǐng)域的嵌入式系統(tǒng)中。
    發(fā)表于 11-13 06:30

    嵌入式需要掌握哪些核心技能?

    /網(wǎng)絡(luò)設(shè)備)、中斷底半部處理,適用于高端嵌入式設(shè)備。 企業(yè)需求:RTOS是60%崗位的核心要求,Linux開發(fā)需求隨項(xiàng)目復(fù)雜度增長(zhǎng)。 4)通信協(xié)議與接口 基礎(chǔ)協(xié)議:UART、SPI、
    發(fā)表于 10-21 16:25

    入行嵌入式應(yīng)該怎么準(zhǔn)備?

    任務(wù)調(diào)度的代碼是非常重要的。此外,了解操作系統(tǒng)內(nèi)核的工作原理以及與硬件交互的方式也是必須的。 四、通信協(xié)議嵌入式系統(tǒng)通常需要與其他設(shè)備或系統(tǒng)進(jìn)行通信。了解常見的通信協(xié)議(如UART、SPI、I2C
    發(fā)表于 08-06 10:34

    嵌入式開發(fā)就業(yè)還有前景嗎?

    的電路設(shè)計(jì)和編程能力。 2)醫(yī)療設(shè)備 醫(yī)療設(shè)備是指用于診斷、治療和輔助治療的各種設(shè)備。隨著醫(yī)療技術(shù)的不斷發(fā)展,醫(yī)療設(shè)備市場(chǎng)也在不斷擴(kuò)大,
    發(fā)表于 07-16 10:47

    嵌入式工業(yè)顯示器如何提升自動(dòng)化設(shè)備的操作效率??

    在工業(yè) 4.0 的浪潮下,自動(dòng)化設(shè)備在各行業(yè)中的應(yīng)用愈發(fā)廣泛,而嵌入式工業(yè)顯示器作為自動(dòng)化設(shè)備的關(guān)鍵人機(jī)交互界面,其性能優(yōu)劣直接影響著設(shè)備的操作效率。那么,
    的頭像 發(fā)表于 07-14 15:55 ?881次閱讀

    Linux嵌入式和單片機(jī)嵌入式的區(qū)別?

    Linux嵌入式與單片機(jī)嵌入式在多個(gè)方面存在顯著的區(qū)別,以下是詳細(xì)的比較和歸納: 一、基本概念 1. Linux嵌入式: 定義:將Linux操作系統(tǒng)運(yùn)行在嵌入式
    發(fā)表于 06-20 09:46

    嵌入式主板特點(diǎn)與應(yīng)用場(chǎng)景解析

    嵌入式主板(EmbeddedMotherboard)是專為嵌入式系統(tǒng)設(shè)計(jì)的重要硬件平臺(tái),通常集成處理器、內(nèi)存、存儲(chǔ)、接口等關(guān)鍵組件,用于控制和管理特定設(shè)備或應(yīng)用。與通用計(jì)算機(jī)主板不同,
    的頭像 發(fā)表于 05-26 15:12 ?981次閱讀
    <b class='flag-5'>嵌入式</b>主板特點(diǎn)與應(yīng)用場(chǎng)景解析

    嵌入式開發(fā)入門指南:從零開始學(xué)習(xí)嵌入式

    特定功能的計(jì)算機(jī)系統(tǒng),廣泛應(yīng)用于智能家居、工業(yè)控制、醫(yī)療設(shè)備、車載系統(tǒng)等領(lǐng)域。 2. 學(xué)習(xí)嵌入式開發(fā)的前置知識(shí)熟悉C語言編程掌握基本的數(shù)據(jù)結(jié)構(gòu)與算法了解數(shù)字電路與微控制器原理熟悉Linux操作系統(tǒng)
    發(fā)表于 05-15 09:29

    MAXQ1061/MAXQ1062用于嵌入式設(shè)備的DeepCover加密控制器技術(shù)手冊(cè)

    DeepCover?嵌入式安全方案采用多重先進(jìn)的物理安全機(jī)制保護(hù)敏感數(shù)據(jù),提供最高等級(jí)的密鑰存儲(chǔ)安全保護(hù)。 DeepCover加密控制器(MAXQ1061)保護(hù)軟件IP、通信和盈利模式的保密性、真實(shí)性和完整性。它是用于連接嵌入式
    的頭像 發(fā)表于 05-14 10:43 ?1097次閱讀

    嵌入式軟件行業(yè)增長(zhǎng)驅(qū)動(dòng)因素

    設(shè)備通信。同樣,在工業(yè)物聯(lián)網(wǎng)(IIoT)和新型智能系統(tǒng)中,嵌入式系統(tǒng)用于操作機(jī)器、收集傳感器數(shù)據(jù)和支持預(yù)測(cè)性維護(hù)以及邊緣人工智能,所有這些都需要可靠的軟件和實(shí)時(shí)決策。
    的頭像 發(fā)表于 05-09 11:26 ?919次閱讀
    万州区| 玛曲县| 玛多县| 莎车县| 浦县| 石台县| 英吉沙县| 赤水市| 青田县| 隆林| 大冶市| 武安市| 平舆县| 论坛| 开封县| 深水埗区| 苍溪县| 临漳县| 阜南县| 巫溪县| 海淀区| 芜湖县| 桑植县| 贡觉县| 汽车| 金山区| 遂平县| 灵山县| 甘德县| 兴和县| 武宁县| 中方县| 南部县| 阿合奇县| 崇文区| 涞水县| 铁岭市| 吉林省| 甘南县| 榆树市| 化德县|