91在线观看视频-91在线观看视频-91在线观看免费视频-91在线观看免费-欧美第二页-欧美第1页

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

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

3天內不再提示

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

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

掃碼添加小助手

加入工程師交流群

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

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

什么是嵌入式開發?

百度百科說法如下:

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

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

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

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

嵌入式為什么不用匯編?

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

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

隨著硬件的發展,內存也越來越大,匯編這些優勢也不再是優勢了,并且匯編難,普通的51用匯編還行,指令不多.

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

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

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

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

隨著發展,Java開始在通用平臺上普及開來,并且JAVA是面向對象編程,是編譯器在后面增加大量的東西的才變成機器語言,換而言之,這樣程序無法直接操作內存

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

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

嵌入式系統和C語言的聯系

操作系統包括內核、驅動等都是使用C語言和匯編編寫的,只有小部分會使用匯編語言,其余絕大部分是C語言。

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

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

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

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

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

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

最后注意的點

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

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

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

    關注

    68

    文章

    19896

    瀏覽量

    235209
  • C語言
    +關注

    關注

    180

    文章

    7632

    瀏覽量

    141740
  • 嵌入式開發
    +關注

    關注

    18

    文章

    1077

    瀏覽量

    48874

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

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    嵌入式開發就業還有前景嗎?

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

    嵌入式開發入門指南:從零開始學習嵌入式

    特定功能的計算機系統,廣泛應用于智能家居、工業控制、醫療設備、車載系統等領域。 2. 學習嵌入式開發的前置知識熟悉C語言編程掌握基本的數據結構與算法了解數字電路與微控制器原理熟悉Linux操作系統
    發表于 05-15 09:29

    嵌入式開發:高門檻的系統性工程與 996 的行業困局

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

    BlackBerry QNX推出通用嵌入式開發平臺

    BlackBerry有限公司(紐交所代碼:BB;多倫多證券交易所代碼:BB)旗下部門QNX今日宣布推出QNX 通用嵌入式開發平臺(General Embedded Development
    的頭像 發表于 03-11 16:04 ?634次閱讀

    代碼+案例+生態:武漢芯源半導體CW32嵌入式開發實戰正式出版

    尊敬的各位電子工程師、嵌入式開發愛好者們:大家好!今天,我們懷著無比激動與自豪的心情,向大家宣布一個重大喜訊——武漢芯源半導體的單片機CW32正式出書啦!《基于ARMCortex-M0+的CW32
    的頭像 發表于 03-03 15:15 ?688次閱讀
    代碼+案例+生態:武漢芯源半導體CW32<b class='flag-5'>嵌入式開發</b>實戰正式出版

    如何成為嵌入式開發工程師?

    和使用方法。- 掌握接口標準和總線協議,如UART、SPI、I2C、CAN等。 3. 編程能力:- 精通至少一種編程語言,尤其是C/C++,因為它們是
    發表于 02-19 10:39

    哪些專業適合學習嵌入式開發?

    哪些專業適合學習嵌入式開發? 在傳統行業不斷被取代的當下,對于大學生、從業者而言,選擇一個熱門主流的職業方向,是未來發展的關鍵因素之一。 嵌入式作為當下高薪崗位之一,轉行、轉專業的人群已經占據求職
    發表于 01-03 13:44

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

    實用干貨!嵌入式開發學習必備-RK3562演示Linux常用系統查詢命令(上)關注觸覺智能持續為大家帶來更多嵌入式開發內容
    的頭像 發表于 12-31 10:51 ?117次閱讀
    <b class='flag-5'>嵌入式開發</b>必備-RK3562演示Linux常用系統查詢命令(上)觸覺智能出品

    新手怎么學嵌入式?

    的運行機制。例如,了解數據結構中的鏈表、棧和隊列,對于在嵌入式編程中管理數據非常有幫助。 2. 選擇合適的編程語言 嵌入式開發中常用的編程語言
    發表于 12-12 10:51

    如何使用 RISC-V 進行嵌入式開發

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

    一文了解嵌入式軟件開發的對象

    以前應用場景很單一,嵌入式開發可能談不上面向對象開發。但現在,做嵌入式開發沒有面向對象開發,你就有點落伍了。 本文結合個人經驗和周立
    的頭像 發表于 11-15 10:31 ?846次閱讀
    一文了解<b class='flag-5'>嵌入式</b>軟件<b class='flag-5'>開發</b>的對象

    零基礎嵌入式開發學習路線

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

    嵌入式開發常見問題排查

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

    AWFlow:內置豐富的功能節點,簡化嵌入式開發流程

    AWFlow突破傳統C語言限制的嵌入式開發框架,通過封裝硬件驅動和系統平臺,集成通用軟件功能與通信協議,助力開發者專注于核心業務,提升效率,縮短周期,迅速適應市場變化。在傳統的
    的頭像 發表于 08-09 08:25 ?531次閱讀
    AWFlow:內置豐富的功能節點,簡化<b class='flag-5'>嵌入式開發</b>流程

    聚焦嵌入式開發中的合規性工具、項目管理工具、版本迭代工具應用

    日前,龍智攜嵌入式開發及管理解決方案亮相2024上海國際嵌入式展(embedded world China 2024)。展會期間,我們對話了多位龍智資深DevSecOps顧問及技術支持專家
    的頭像 發表于 07-29 15:15 ?1084次閱讀
    主站蜘蛛池模板: 欧洲成品大片在线播放 | 国产一区二区三区在线观看影院 | 生活片一级性 | 手机看片日韩高清1024 | 五月激情综合婷婷 | 国内精品免费视频自在线 | 久久精品亚洲精品国产欧美 | 色多多免费视频观看区一区 | 亚洲国产一区二区在线 | 午夜国产视频 | 五月激情啪啪网 | 高清视频在线播放 | 美女免费视频一区二区三区 | 男人天堂网在线观看 | 色综合99| 天天操夜夜操夜夜操 | 色秀视频免费高清网站 | 日日夜夜天天干 | 手机看片午夜 | 中文字幕一区在线播放 | 欧美综合一区二区三区 | 久久久噜噜噜久久久 | 日本一区二区三区四区不卡 | 四虎影午夜成年免费精品 | 俺去鲁婷婷六月色综合 | 久久精品国产清自在天天线 | 亚洲国产成+人+综合 | 美女牲交视频一级毛片 | 手机看片久久青草福利盒子 | 免费伦费一区二区三区四区 | 天天干b | 美女网站在线观看视频18 | 亚洲深夜在线 | 日本三级网站在线线观看 | 国产色婷婷免费视频 | 日本三级a | 丁香五月欧美成人 | 日韩一区二区视频在线观看 | 国产一区二区三区 韩国女主播 | 日本亚洲精品成人 | 人人干夜夜操 |