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

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

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

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

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

GReq_mcu168 ? 來源:玩轉(zhuǎn)單片機(jī) ? 2020-08-05 10:14 ? 次閱讀

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

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

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

百度百科說法如下:

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

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

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

主流的嵌入式平臺(tái)有三種:ARM平臺(tái)、DSP平臺(tái)和FPGA平臺(tái)。

嵌入式為什么不用匯編?

嚴(yán)格來說,不是不用,而是不建議用

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

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

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

當(dāng)然能熟練掌握匯編,會(huì)對(duì)單片機(jī)的內(nèi)部結(jié)構(gòu)、讀寫時(shí)序等有一個(gè)清楚的了解,然后接著學(xué)c語言,對(duì)整個(gè)系統(tǒng)的了解是有幫助的.

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

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

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

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

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

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

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

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

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

為什么選擇C,要從C語言的特點(diǎn)說起

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

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

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

最后注意的點(diǎn)

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

我們?cè)谇度胧骄幊讨?要取長補(bǔ)短,用最優(yōu)的方法,最少的時(shí)間,做最對(duì)的事情

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

    關(guān)注

    68

    文章

    19420

    瀏覽量

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

    關(guān)注

    180

    文章

    7614

    瀏覽量

    137746
  • 嵌入式開發(fā)
    +關(guān)注

    關(guān)注

    18

    文章

    1035

    瀏覽量

    47728

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

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    哪些專業(yè)適合學(xué)習(xí)嵌入式開發(fā)?

    哪些專業(yè)適合學(xué)習(xí)嵌入式開發(fā)? 在傳統(tǒng)行業(yè)不斷被取代的當(dāng)下,對(duì)于大學(xué)生、從業(yè)者而言,選擇一個(gè)熱門主流的職業(yè)方向,是未來發(fā)展的關(guān)鍵因素之一。 嵌入式作為當(dāng)下高薪崗位之一,轉(zhuǎn)行、轉(zhuǎn)專業(yè)的人群已經(jīng)占據(jù)求職
    發(fā)表于 01-03 13:44

    嵌入式開發(fā)必備-RK3562演示Linux常用系統(tǒng)查詢命令(上)觸覺智能出品

    實(shí)用干貨!嵌入式開發(fā)學(xué)習(xí)必備-RK3562演示Linux常用系統(tǒng)查詢命令(上)關(guān)注觸覺智能持續(xù)為大家?guī)砀?b class='flag-5'>嵌入式開發(fā)內(nèi)容
    的頭像 發(fā)表于 12-31 10:51 ?117次閱讀
    <b class='flag-5'>嵌入式開發(fā)</b>必備-RK3562演示Linux常用系統(tǒng)查詢命令(上)觸覺智能出品

    新手怎么學(xué)嵌入式?

    的運(yùn)行機(jī)制。例如,了解數(shù)據(jù)結(jié)構(gòu)中的鏈表、棧和隊(duì)列,對(duì)于在嵌入式編程中管理數(shù)據(jù)非常有幫助。 2. 選擇合適的編程語言 嵌入式開發(fā)中常用的編程語言
    發(fā)表于 12-12 10:51

    如何使用 RISC-V 進(jìn)行嵌入式開發(fā)

    RISC-V是一種開源的指令集架構(gòu)(ISA),它允許任何人設(shè)計(jì)、制造和銷售基于RISC-V的處理器,這為嵌入式開發(fā)提供了極大的靈活性和創(chuàng)新空間。以下是使用RISC-V進(jìn)行嵌入式開發(fā)的基本步驟: 一
    的頭像 發(fā)表于 12-11 17:32 ?745次閱讀

    一文了解嵌入式軟件開發(fā)的對(duì)象

    以前應(yīng)用場景很單一,嵌入式開發(fā)可能談不上面向?qū)ο?b class='flag-5'>開發(fā)。但現(xiàn)在,做嵌入式開發(fā),沒有面向?qū)ο?b class='flag-5'>開發(fā),你就有點(diǎn)落伍了。 本文結(jié)合個(gè)人經(jīng)驗(yàn)和周立
    的頭像 發(fā)表于 11-15 10:31 ?430次閱讀
    一文了解<b class='flag-5'>嵌入式</b>軟件<b class='flag-5'>開發(fā)</b>的對(duì)象

    零基礎(chǔ)嵌入式開發(fā)學(xué)習(xí)路線

    嵌入式開發(fā)沒有接觸過的同學(xué)可能會(huì)不明覺厲,但是只要你了解了,感興趣并且有一個(gè)正確的學(xué)習(xí)路線的話,零基礎(chǔ)也能入門。給大家介紹一個(gè)簡單易懂的學(xué)習(xí)路線,讓你能夠從零開始學(xué)習(xí)嵌入式開發(fā)。 第一步:掌握
    發(fā)表于 10-25 15:55

    嵌入式開發(fā)常見問題排查

    嵌入式開發(fā)問題排查很多人認(rèn)為嵌入式開發(fā)很難,主要是因?yàn)樵谶@個(gè)過程中常常會(huì)遇到各式各樣的問題。這些問題的復(fù)雜性和多樣性使得許多人感到困惑和無所適從。然而,如果將這些問題逐一拆解,實(shí)際上大部分都可以
    的頭像 發(fā)表于 09-22 08:04 ?413次閱讀
    <b class='flag-5'>嵌入式開發(fā)</b>常見問題排查

    AWFlow:內(nèi)置豐富的功能節(jié)點(diǎn),簡化嵌入式開發(fā)流程

    AWFlow突破傳統(tǒng)C語言限制的嵌入式開發(fā)框架,通過封裝硬件驅(qū)動(dòng)和系統(tǒng)平臺(tái),集成通用軟件功能與通信協(xié)議,助力開發(fā)者專注于核心業(yè)務(wù),提升效率,縮短周期,迅速適應(yīng)市場變化。在傳統(tǒng)的
    的頭像 發(fā)表于 08-09 08:25 ?341次閱讀
    AWFlow:內(nèi)置豐富的功能節(jié)點(diǎn),簡化<b class='flag-5'>嵌入式開發(fā)</b>流程

    聚焦嵌入式開發(fā)中的合規(guī)性工具、項(xiàng)目管理工具、版本迭代工具應(yīng)用

    日前,龍智攜嵌入式開發(fā)及管理解決方案亮相2024上海國際嵌入式展(embedded world China 2024)。展會(huì)期間,我們對(duì)話了多位龍智資深DevSecOps顧問及技術(shù)支持專家
    的頭像 發(fā)表于 07-29 15:15 ?649次閱讀

    嵌入式開發(fā)前景怎么樣?

    嵌入式開發(fā)前景非常廣闊,這主要得益于物聯(lián)網(wǎng)、人工智能、大數(shù)據(jù)等技術(shù)的快速發(fā)展,以及嵌入式系統(tǒng)在各個(gè)領(lǐng)域的廣泛應(yīng)用。以下是對(duì)嵌入式開發(fā)前景的詳細(xì)分析
    的頭像 發(fā)表于 07-10 09:00 ?2949次閱讀
    <b class='flag-5'>嵌入式開發(fā)</b>前景怎么樣?

    嵌入式開發(fā)就業(yè)前景怎么樣?

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

    C語言嵌入式開發(fā)中的關(guān)鍵編譯器角色

    嵌入式程序開發(fā)跟硬件密切相關(guān),需要使C語言來讀寫底層寄存器、存取數(shù)據(jù)、控制硬件等,C
    發(fā)表于 04-26 14:53 ?698次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>:<b class='flag-5'>嵌入式開發(fā)</b>中的關(guān)鍵編譯器角色

    如何成為一名嵌入式C語言高手?

    如何成為一名嵌入式C語言高手? 嵌入式系統(tǒng)是當(dāng)今科技領(lǐng)域的核心,而C語言則是
    發(fā)表于 04-07 16:03

    如何成為一名嵌入式C語言高手?

    如何成為一名嵌入式C語言高手? 嵌入式系統(tǒng)是當(dāng)今科技領(lǐng)域的核心,而C語言則是
    發(fā)表于 03-25 14:12

    fpga是嵌入式開發(fā)

    FPGA(現(xiàn)場可編程門陣列)與嵌入式開發(fā)之間確實(shí)存在一定的關(guān)聯(lián),但它們?cè)诒举|(zhì)上是兩個(gè)不同的領(lǐng)域。
    的頭像 發(fā)表于 03-15 14:18 ?1145次閱讀
    主站蜘蛛池模板: 午夜在线观看免费 | 五月婷婷色丁香 | 免费网站看av片 | 欧美电影一区二区 | 色婷婷色综合激情国产日韩 | 日韩免费精品一级毛片 | 婷婷网五月天天综合天天爱 | 美女网站黄在线看 | 五月六月婷婷 | 日韩大尺度视频 | 男女免费观看视频 | 免费看欧美一级片 | 国语自产自拍秒拍在线视频 | 日本免费人成在线网站 | 一级片视频播放 | 国产一二三区在线观看 | 91在线播放免费不卡无毒 | 在线观看视频播放 | 明日花绮罗在线观看 | 人人射人人干 | 免费的三及片 | 第四色激情| 在线免费亚洲 | 性夜影院爽黄a免费视频 | 欧美综合精品一区二区三区 | 国产免费一级在线观看 | 欧美成人伊人十综合色 | 手机看片日韩福利 | 新天堂| 午夜视频播放 | xxxx人成高清免费图片 | 午夜欧美在线 | 中文在线天堂网 | www成年人视频 | 一本高清在线视频 | 手机福利视频 | 日本免费网站观看 | 欧美午夜免费观看福利片 | 最新看片网址 | 三级免费观看 | 日本www色视频|