91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

不是只有C語言可以用來搞嵌入式開發(fā)嗎?

MCU開發(fā)加油站 ? 來源:恩智浦MCU加油站 ? 作者:恩智浦MCU加油站 ? 2021-03-04 10:03 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

背景介紹

“你的下一個項目準(zhǔn)備選用什么語言?”如果誰這樣去問一個嵌入式工程師,可能會顯得有點多余。不是只有C語言可以用來搞嵌入式開發(fā)嗎?

差不多十多年前,情況的確是這樣。那時候還沒有一個像ARM Cortex-M這樣能占據(jù)半壁江山的統(tǒng)一核心,嵌入式處理器碎片化極為嚴(yán)重。絕大多數(shù)MCU本身性能不高,各種資源都比較有限,業(yè)務(wù)模型通常也比較簡單,連RTOS都用不上,直接裸奔即可解決大部分業(yè)務(wù)邏輯,嵌入式工程師絕大多數(shù)時間都在跟原廠的底層驅(qū)動作斗爭。也只有C這樣接近底層,各種編譯鏈極其完善的語言才能得到所有人的認(rèn)可。

隨著ARM Cortex-M核的MCU逐漸占據(jù)市場主導(dǎo)地位, MCU的性能逐漸追上了90年代中后期的通用CPU,使用原廠提供的API來進行開發(fā),逐漸取代了寄存器開發(fā)方式,而底層硬件的操作變得大同小異。

最近幾年,隨著物聯(lián)網(wǎng)、IOTAI這些概念越來越火熱,MCU的業(yè)務(wù)模型也開始變得越來越復(fù)雜,各種通信協(xié)議棧被塞了進去,各種復(fù)雜算法被塞了進去,越來越多非EE出身的程序員、DIY愛好者也開始進入嵌入式開發(fā)領(lǐng)域。

市場需求

有需求就有市場,Arduino就是在這樣的背景下誕生的。 一些新的開發(fā)者對MCU底層硬件細(xì)節(jié)并不關(guān)心,只想快速實現(xiàn)自己的想法和創(chuàng)意,Arduino通過C++對底層硬件進行層層包裝,給最終用戶提供了一套極為簡潔的API。簡潔到什么程度?只要稍微學(xué)習(xí),中小學(xué)生都可以做出像模像樣的作品。 盡管Arduino這種將硬件API化的開發(fā)方式讓資深嵌入式工程師頗為“瞧不上”,它卻實實在在地掀起了一陣變革的風(fēng)向。無論業(yè)界巨頭還是創(chuàng)新者,都開始幻想著能有一套較為統(tǒng)一的嵌入式開發(fā)方法。 Arm基于C++做了一套mbed框架,采用類似Arduino的簡潔API,為多種Arm平臺做了適配移植。 這都是一些較為傳統(tǒng)的嘗試,還有一些更為激進的極客開發(fā)者,覺得既然硬件操作都已經(jīng)抽象為標(biāo)準(zhǔn)API了,我為什么還要受限于偏底層的C和讓人無比困惑的C++?為什么不可以用我熟悉的語言去操作MCU?事實證明,這些想法并不是天方夜譚,以下僅列出部分現(xiàn)代語言的MCU操作框架:

Python: MicroPython

JavaScript: Espruino

Golang: TinyGo

Swift語言介紹

既然已經(jīng)有各種新的嘗試了,為什么又要多一個Swift?而且聽到Swift,大家第一反應(yīng)可能是“那不是Mac和iOS的專用語言嗎?” 其實不然,Swift的創(chuàng)始人Chris Lattner對Swift愿景便是“統(tǒng)治世界” 它從最開始的設(shè)計就是要成為一門系統(tǒng)級編程語言,源代碼全部開放,由社區(qū)主導(dǎo)開發(fā)進化。

以下僅列出一些Swift的特性:

Swift公布于2014年,極為年輕,無歷史包袱,廣泛吸收了近年各種編程語言的優(yōu)勢

純編譯型靜態(tài)語言,無GC機制,這是實時系統(tǒng)的必要條件

支持系統(tǒng)級開發(fā),直接生成對應(yīng)機器碼,使用ARC機制來實現(xiàn)內(nèi)存管理,通過一個較小的開銷來降低開發(fā)者的心智負(fù)擔(dān)

代碼范式多樣,支持面向?qū)ο?,面向協(xié)議,函數(shù)式編程

學(xué)習(xí)曲線平滑,可作為初學(xué)者的第一門編程語言

語法優(yōu)雅,適合各種挑剔的程序員

背景雄厚,發(fā)展前景無限

綜合以上特性,可以說Swift是為數(shù)不多的極其適合MCU設(shè)備的現(xiàn)代化語言。 另外還有一個Rust,但Rust的學(xué)習(xí)曲線極為陡峭,喜歡嚴(yán)厲地“虐待”開發(fā)者來保證代碼的正確性,這又有悖于我們簡化MCU應(yīng)用層編程的初衷。 其余絕大多數(shù)現(xiàn)代化語言中,要么帶有嵌入式中絕對不能接受的GC機制,要么為解釋性語言,效率極低(即便如此,MicroPython的應(yīng)用場景還是越來越豐富,說明大家對易用性的需求越來越強烈)。 相信隨著時間的推移,Swift在嵌入式上的可用性會逐漸完善。

責(zé)任編輯:lq

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

    關(guān)注

    147

    文章

    18949

    瀏覽量

    398883
  • 嵌入式
    +關(guān)注

    關(guān)注

    5200

    文章

    20476

    瀏覽量

    334481
  • C語言
    +關(guān)注

    關(guān)注

    183

    文章

    7644

    瀏覽量

    145678

原文標(biāo)題:將Swift語言應(yīng)用到MCU開發(fā)中(上)

文章出處:【微信號:mcugeek,微信公眾號:MCU開發(fā)加油站】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

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

    嵌入式單片機開發(fā)學(xué)習(xí)路徑

    學(xué)習(xí)C語言 C語言嵌入式開發(fā)的基礎(chǔ)。掌握C語言
    發(fā)表于 02-09 15:42

    嵌入式開發(fā)常用函數(shù)速查表

    嵌入式開發(fā)中,掌握常用函數(shù)的用法可以大大提高開發(fā)效率。無論是單片機初學(xué)者還是有一定經(jīng)驗的工程師,熟悉函數(shù)庫和調(diào)用方式都是必備技能。今天,我們?yōu)榇蠹艺硪环?b class='flag-5'>嵌入式開發(fā)常用函數(shù)速查表,覆
    的頭像 發(fā)表于 01-19 09:06 ?320次閱讀
    <b class='flag-5'>嵌入式開發(fā)</b>常用函數(shù)速查表

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

    。 · ?醫(yī)療設(shè)備?:如心電圖儀、血壓計等。 開發(fā)工具和技術(shù) 嵌入式開發(fā)過程中常用的工具包括: · ?集成開發(fā)環(huán)境(IDE)?:用于編寫、編譯和調(diào)試代碼。 · ?編譯器?:將高級語言
    發(fā)表于 01-12 16:13

    性能與性價比兼得!迅為RK3562開發(fā)板開啟嵌入式開發(fā)新選擇

    性能與性價比兼得!迅為RK3562開發(fā)板開啟嵌入式開發(fā)新選擇
    的頭像 發(fā)表于 12-23 16:10 ?1345次閱讀
    性能與性價比兼得!迅為RK3562<b class='flag-5'>開發(fā)</b>板開啟<b class='flag-5'>嵌入式開發(fā)</b>新選擇

    C語言單元測試在嵌入式軟件開發(fā)中的作用及專業(yè)工具的應(yīng)用

    一、C語言嵌入式開發(fā)中的現(xiàn)狀與重要性 C語言嵌入式開發(fā)領(lǐng)域仍然占據(jù)主導(dǎo)地位,根據(jù)Barr集團
    發(fā)表于 12-18 11:46

    一個面向單片機、事件驅(qū)動的嵌入式開發(fā)平臺介紹

    EventOS,是一個面向單片機、事件驅(qū)動的嵌入式開發(fā)平臺。它主要有兩大技術(shù)特色:一是事件驅(qū)動,二是超輕量。EventOS以及其母項目EventOS,目標(biāo)是開發(fā)一個企業(yè)級的嵌入式開發(fā)平臺,以事件總線
    發(fā)表于 12-05 06:26

    分享一個嵌入式開發(fā)學(xué)習(xí)路線

    如果你想要學(xué)習(xí)嵌入式開發(fā),我建議按照這個學(xué)習(xí)路線準(zhǔn)備: 1. 基礎(chǔ)鋪墊期(1-2個月) 理解嵌入式系統(tǒng)的“硬件基礎(chǔ)”和“編程入門”,能看懂簡單電路,寫出基礎(chǔ)C語言代碼。這一階段的學(xué)習(xí)
    發(fā)表于 12-04 11:01

    C語言嵌入式開發(fā)中的應(yīng)用

    C 語言在汽車電子控制系統(tǒng)開發(fā)中的主導(dǎo)地位。 2、設(shè)備驅(qū)動程序 設(shè)備驅(qū)動程序是嵌入式系統(tǒng)中連接硬件和軟件的橋梁,它負(fù)責(zé)實現(xiàn)嵌入式系統(tǒng)與
    發(fā)表于 11-21 08:09

    嵌入式開發(fā)的關(guān)鍵點介紹

    。 嵌入式系統(tǒng)的應(yīng)用非常廣泛,例如:智能家居、智能手表、智能手機、智能汽車等等。嵌入式開發(fā)需要開發(fā)人員具備深入的硬件知識和編程經(jīng)驗,但是也有一些嵌入式開發(fā)工具
    發(fā)表于 11-13 08:12

    恩智浦如何攻克兩大嵌入式開發(fā)難題

    在我們的身邊,嵌入式系統(tǒng)無處不在。而隨著技術(shù)的進步和應(yīng)用的拓展,今天的嵌入式開發(fā)也面臨著諸多新課題、新挑戰(zhàn)。
    的頭像 發(fā)表于 10-27 09:28 ?1810次閱讀

    C語言入門(硬件嵌入式那種不是APP開發(fā)的)

    C語言入門(硬件嵌入式那種不是APP開發(fā)的),有沒有對初學(xué)者很友好的書籍、視頻等資料推薦一下,一直以來看了正dian原子、野火等的視頻、文檔
    發(fā)表于 09-27 12:03

    新一代嵌入式開發(fā)平臺 AMD嵌入式軟件和工具2025.1版現(xiàn)已推出

    AMD 2025.1 版嵌入式軟件和工具是面向新一代嵌入式系統(tǒng)開發(fā)而打造的綜合平臺,全面加速概念構(gòu)想到部署落地。 2025.1 版嵌入式軟件和工具的新 增功能 AMD
    的頭像 發(fā)表于 08-20 09:15 ?4004次閱讀

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

    嵌入式的發(fā)展前景如何呢?隨著科技的飛速發(fā)展,嵌入式開發(fā)在各個領(lǐng)域的應(yīng)用越來越廣泛,因此嵌入式開發(fā)的就業(yè)前景也備受關(guān)注。以下將從智能家居、醫(yī)療設(shè)備、工業(yè)控制、汽車電子、航空航天等方面,探討嵌入式
    發(fā)表于 07-16 10:47

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

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

    嵌入式開發(fā):高門檻的系統(tǒng)性工程與 996 的行業(yè)困局

    嵌入式開發(fā)的門檻,往往被培訓(xùn)機構(gòu)和表象所掩蓋。許多人誤以為 “用 C 語言寫個跑在 ARM 上的程序” 就是嵌入式,實則連皮毛都未觸及。真正的嵌入式
    的頭像 發(fā)表于 04-09 11:06 ?1014次閱讀
    <b class='flag-5'>嵌入式開發(fā)</b>:高門檻的系統(tǒng)性工程與 996 的行業(yè)困局