日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

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

有沒有想過為什么嵌入式開發(fā)要使用C語言呢?

GReq_mcu168 ? 來源:玩轉(zhuǎn)單片機 ? 2020-08-05 10:14 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

對于現(xiàn)在我們從事嵌入式開發(fā)的人員來說,C語言好像是必備的技能,也是最常見的開發(fā)語言.

但是我們有沒有想過為什么嵌入式開發(fā)要使用C語言呢?為什么不使用匯編呢?為什么不使用Java呢?我想從嵌入式開發(fā)->反向驗證->正面驗證來聊起.

什么是嵌入式開發(fā)?

百度百科說法如下:

嵌入式開發(fā)就是指在嵌入式操作系統(tǒng)下進行開發(fā),包括在系統(tǒng)化設計指導下的硬件和軟件以及綜合研發(fā)。除暫且分離硬件的EDA研發(fā)以外,側(cè)重的就是在一定硬件條件下的系統(tǒng)化設計和軟件研發(fā)。

在我們平時的接觸中,嵌入式開發(fā)一般常用的系統(tǒng)有WinCE,linux,android和一些實時操作系統(tǒng)等等

使用的語言有c,c++或匯編;用高級處理器,arm7,arm9,arm11,或者一些8bit,16bit,32bit單片機

主流的嵌入式平臺有三種:ARM平臺、DSP平臺和FPGA平臺。

嵌入式為什么不用匯編?

嚴格來說,不是不用,而是不建議用

匯編和C語言都可以直接訪問硬件,可以直接編譯生成硬件識別的機器碼文件,并且匯編的語法較為簡單,生成的可執(zhí)行文件更小

隨著硬件的發(fā)展,內(nèi)存也越來越大,匯編這些優(yōu)勢也不再是優(yōu)勢了,并且匯編難,普通的51用匯編還行,指令不多.

新型的單片機,寄存器成百上千,全靠記憶簡直天方夜譚,復雜的大型項目不是一個人能完成的,匯編的移植性和修改性以及可讀性太差.

當然能熟練掌握匯編,會對單片機的內(nèi)部結構、讀寫時序等有一個清楚的了解,然后接著學c語言,對整個系統(tǒng)的了解是有幫助的.

嵌入式為什么不用 java 語言寫?

在很多很多年前,java是為嵌入式打造的語言,Java語言設計的初衷就是針對嵌入式的,原來的U-SIM卡,現(xiàn)在新出來的SWP-SIM(NFC)卡里面的程序都是跑的java 代碼。

隨著發(fā)展,Java開始在通用平臺上普及開來,并且JAVA是面向?qū)ο?a target="_blank">編程,是編譯器在后面增加大量的東西的才變成機器語言,換而言之,這樣程序無法直接操作內(nèi)存

比如你定義一個類,最終在內(nèi)存中實現(xiàn)時,編譯器已經(jīng)加了大量附加東西。如父類數(shù)據(jù)結構,VT表指針之類等等。而底層程序主要是操作寄存器和內(nèi)存地址,必須要精確而直接操作它,所以難以達到

當然,Java需要經(jīng)過一層虛擬機,效率上不是很好。很多嵌入式項目資源有限,是養(yǎng)不起java虛擬機的。

嵌入式系統(tǒng)和C語言的聯(lián)系

操作系統(tǒng)包括內(nèi)核、驅(qū)動等都是使用C語言和匯編編寫的,只有小部分會使用匯編語言,其余絕大部分是C語言。

比如boot的時候會有一些切換處理器模式之類的指令,用匯編干這種活簡單粗暴,代碼量少,寫好了就不需要維護了.

C在操作系統(tǒng)中流行在1970年代Unix出現(xiàn)時就開始了,現(xiàn)在常用的操作系統(tǒng)內(nèi)核基本上都是由c語言編寫的,所以這是歷史的聯(lián)系,更是成千上萬程序員的聯(lián)系.

為什么選擇C,要從C語言的特點說起

C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產(chǎn)生少量的機器碼,并且不需要任何運行環(huán)境支持,便能運行的編程語言,其移植性好,能夠在多種不同體系結構的軟件或硬件平臺上運行;

相對來說,C語言在高級語言當中是最貼近物理層面的語言,經(jīng)過一系列的編譯轉(zhuǎn)換,最終它會成為0101的機械碼,可以操作硬件,并且具有簡介緊湊、使用靈活的語法機制.

C語言具有很高的運行效率。通過觀察C語言的背景可以看得出:匯編語言 - B語言 - C語言。在芯片上執(zhí)行的程序:寫匯編執(zhí)行效率最高,C語言其次,大概在80%左右

最后注意的點

C語言的缺點主要表現(xiàn)在數(shù)據(jù)的封裝性上,并且語法限制不太嚴格,變量的類型約束不嚴格,對數(shù)組下標越界不作檢查等,影響程序的安全性。

我們在嵌入式編程中,要取長補短,用最優(yōu)的方法,最少的時間,做最對的事情

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

    關注

    68

    文章

    20346

    瀏覽量

    255406
  • C語言
    +關注

    關注

    183

    文章

    7648

    瀏覽量

    146237
  • 嵌入式開發(fā)

    關注

    18

    文章

    1176

    瀏覽量

    50251

原文標題:嵌入式開發(fā)為什么不選擇匯編、Java而是C語言呢?

文章出處:【微信號:mcu168,微信公眾號:硬件攻城獅】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    低代碼可視化,破解嵌入式開發(fā)高門檻難題

    在工業(yè)控制、智能硬件、物聯(lián)網(wǎng)快速發(fā)展的今天,嵌入式開發(fā)作為核心支撐技術,其高門檻卻成為行業(yè)發(fā)展的絆腳石。專業(yè)編碼要求高、新人上手慢、項目迭代滯后等問題,制約著人才儲備與技術普及
    的頭像 發(fā)表于 03-25 14:13 ?243次閱讀
    低代碼可視化,破解<b class='flag-5'>嵌入式開發(fā)</b>高門檻難題

    2025嵌入式開發(fā)教程|遠航哥

    https://www.bilibili.com/opus/1178756596191199237 嵌入式通信協(xié)議三劍客:串口、I2C與SPI的深度解析 在嵌入式系統(tǒng)開發(fā)中,通信協(xié)議是
    的頭像 發(fā)表于 03-20 17:35 ?1385次閱讀
    2025<b class='flag-5'>嵌入式開發(fā)</b>教程|遠航哥

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

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

    什么是嵌入式應用開發(fā)

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

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

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

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

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

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

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

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

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

    2025年最佳的嵌入式編程語言有哪些?

    嵌入式系統(tǒng)是現(xiàn)代科技不可或缺的一部分。它們存在于家用電器、汽車、住宅、醫(yī)院、商店等各個領域。它們與我們的社會緊密相連。選擇合適的語言來構建嵌入式系統(tǒng)對于成功至關重要。那么,2025年最佳的嵌入
    的頭像 發(fā)表于 11-14 10:27 ?1839次閱讀
    2025年最佳的<b class='flag-5'>嵌入式</b>編程<b class='flag-5'>語言</b>有哪些<b class='flag-5'>呢</b>?

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

    嵌入式開發(fā)在現(xiàn)代科技中扮演著非常重要的角色。隨著物聯(lián)網(wǎng)的發(fā)展,嵌入式系統(tǒng)的需求也越來越大。嵌入式開發(fā)不僅需要開發(fā)人員具備深入的硬件知識和編程經(jīng)驗,還需要不斷學習新的技術和工具,以滿足不
    發(fā)表于 11-13 08:12

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

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

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

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

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

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

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

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

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

    特定功能的計算機系統(tǒng),廣泛應用于智能家居、工業(yè)控制、醫(yī)療設備、車載系統(tǒng)等領域。 2. 學習嵌入式開發(fā)的前置知識熟悉C語言編程掌握基本的數(shù)據(jù)結構與算法了解數(shù)字電路與微控制器原理熟悉Linux操作系統(tǒng)
    發(fā)表于 05-15 09:29
    德庆县| 广西| 鄯善县| 新野县| 老河口市| 五大连池市| 神池县| 德安县| 伊吾县| 郧西县| 鄂托克前旗| 河南省| 桐庐县| 县级市| 灌云县| 东台市| 哈尔滨市| 潜江市| 阳原县| 凤翔县| 错那县| 五河县| 曲靖市| 娄烦县| 巫溪县| 上栗县| 承德县| 临夏市| 泉州市| 大兴区| 海兴县| 包头市| 蒙阴县| 浠水县| 娄烦县| 聂荣县| 南郑县| 胶州市| 庆安县| 宁德市| 咸阳市|