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

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

3天內不再提示

今天,已經到MCU開發(fā)人員拿起C語言利器的時候了

GReq_mcu168 ? 來源:玩轉單片機 ? 作者:玩轉單片機 ? 2020-10-17 10:59 ? 次閱讀

將C向MCU(俗稱單片機)8051上的移植始于80年代的中后期??陀^上講,C向8051 MCU移植的難點不少。如:

8051的非馮·諾依慢結構(程序與數據存儲器空間分立),再加上片上又多了位尋址存儲空間;

片上的數據和程序存儲器空間過小和同時存在著向片外擴展它們的可能;

片上集成外圍設備的被寄存器化(即SFR),而并不采用慣用的I/O地址空間;

8051芯片的派生門類特別多(達到了上百種之多),而C語言對于它們的每一個硬件資源又無一例外地要能進行操作。

這些都是過去以MPU為基礎的C語言所沒有的。經過Keil/Franklin、Archmeades、IAR、BSO/Tasking等公司艱若不懈的努力,終于于90年代開始而趨成熟,成為專業(yè)化的MCU高級語言了。過去長期困擾人們的所謂“高級語言產生代碼太長,運行速度太慢,因此不適合單片機使用”的致使缺點已被大幅度地克服。目前,8051上的C語言的代碼長度,已經做到了匯編水平的1.2~1.5倍。4K字節(jié)以上的程度,C語言的優(yōu)勢更能得到發(fā)揮。至于執(zhí)行速度的問題,只要有好的仿真器的幫助,找出關鍵代碼,進一步用人工優(yōu)化,就可很簡單地達到十分美滿的程度。如果談到開發(fā)速度、軟件質量、結構嚴謹、程序堅固等方面的話,則C語言的完美絕非匯編語言編程所可比擬的。今天,確實已經到MCU開發(fā)人員拿起C語言利器的時候了。下面結合8051介紹單片機C語言的優(yōu)越性:

不懂得單片機的指令集,也能夠編寫完美的單片機程序;

無須懂得單片機的具體硬件,也能夠編出符合硬件實際的專業(yè)水平的程序;

不同函數的數據實行覆蓋,有效利用片上有限的RAM空間;

程序具有堅固性:數據被破壞是導致程序運行異常的重要因素。C語言對數據進行了許多專業(yè)性的處理,避免了運行中間非異步的破壞;

C語言提供復雜的數據類型(數組、結構、聯合、枚舉、指針等),極大地增強了程序處理能力和靈活性;

提供auto、static、const等存儲類型和專門針對8051單片機的data、idata、pdata、xdata、code等存儲類型,自動為變量合理地分配地址;

提供small、compact、large等編譯模式,以適應片上存儲器的大小;

中斷服務程序的現場保護和恢復,中斷向量表的填寫,是直接與單片機相關的,都由C編譯器代辦;

提供常用的標準函數庫,以供用戶直接使用;

頭文件中定義宏、說明復雜數據類型和函數原型,有利于程序的移植和支持單片機的系列化產品的開發(fā);

有嚴格的句法檢查,錯誤很少,可容易地在高級語言的水平上迅速地被排掉;

可方便地接受多種實用程序的服務:如片上資源的初始化有專門的實用程序自動生成;再如,有實時多任務操作系統可調度多道任務,簡化用戶編程,提高運行的安全性等等。

責任編輯:xj

原文標題:單片機為什么要使用C語言?

文章出處:【微信公眾號:玩轉單片機】歡迎添加關注!文章轉載請注明出處。

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

    關注

    6040

    文章

    44592

    瀏覽量

    636903
  • mcu
    mcu
    +關注

    關注

    146

    文章

    17199

    瀏覽量

    351927
  • C語言
    +關注

    關注

    180

    文章

    7613

    瀏覽量

    137247

原文標題:單片機為什么要使用C語言?

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

收藏 人收藏

    評論

    相關推薦

    擁有低功耗低成本的Open開發(fā)應用,開發(fā)人員必看!

    Open開發(fā)應用需求,有沒有低功耗、低成本方案? 今天我們一起來聊聊Air780EP模組。 一、Air780EP實網功耗數據 4G-Cat.1模組支持三種功耗模式:常規(guī)模式、低功耗模式、PSM+模式
    的頭像 發(fā)表于 12-26 11:50 ?148次閱讀
    擁有低功耗低成本的Open<b class='flag-5'>開發(fā)</b>應用,<b class='flag-5'>開發(fā)人員</b>必看!

    MSPDebugStack開發(fā)人員指南

    電子發(fā)燒友網站提供《MSPDebugStack開發(fā)人員指南.pdf》資料免費下載
    發(fā)表于 12-05 14:49 ?0次下載
    MSPDebugStack<b class='flag-5'>開發(fā)人員</b>指南

    MCU編程語言開發(fā)環(huán)境介紹

    MCU編程語言 MCU編程語言是用于編寫MCU程序的高級編程語言,它們使得
    的頭像 發(fā)表于 11-01 11:51 ?925次閱讀

    MCU前沿市場趨勢:8位單片機和32位單片機

    程度越來越高。這些功能豐富的設備適合一系列不同的應用程序,這解釋為什么許多嵌入式開發(fā)人員選擇它們進行下一步設計。設計師意識,這種復雜的設備可以提供原始計算能力,豐富的外圍設備以及輕松訪問各種
    發(fā)表于 09-24 17:47

    嵌入式開發(fā)常用軟件有哪些?

    開發(fā)人員更穩(wěn)定,更有生產力,更易于使用Debug調試功能。 3.SourceInsight source insight Mac 最新版支持多種開發(fā)語言(比如說Java,c,
    發(fā)表于 09-09 15:22

    C2000 ePWM開發(fā)人員指南

    電子發(fā)燒友網站提供《C2000 ePWM開發(fā)人員指南.pdf》資料免費下載
    發(fā)表于 09-07 09:45 ?0次下載
    <b class='flag-5'>C</b>2000 ePWM<b class='flag-5'>開發(fā)人員</b>指南

    CKS32F107xx系列MCU的中斷和事件

    本章節(jié)首先將以MCU開發(fā)人員常接觸到的“中斷”、“事件”和“中斷事件”三個名詞的概念展開,然后去闡述彼此的主要區(qū)別,最后借助MCU的GPIO外部中斷/事件控制器(EXTI)的傳輸路徑來加深對上述概念的理解。
    的頭像 發(fā)表于 07-22 09:29 ?600次閱讀
    CKS32F107xx系列<b class='flag-5'>MCU</b>的中斷和事件

    谷歌發(fā)布新型大語言模型Gemma 2

    在人工智能領域,大語言模型一直是研究的熱點。近日,全球科技巨頭谷歌宣布,面向全球研究人員開發(fā)人員,正式發(fā)布其最新研發(fā)的大語言模型——Ge
    的頭像 發(fā)表于 06-29 09:48 ?456次閱讀

    芯海 32 位 MCU 開發(fā)調試 ,基于 VS Code 插件實現芯海 32 位 MCU 開發(fā)調試

    由于某些客戶受到 Keil/IAR 的使用限制,可能需要提供 GNU ARM GCC 開發(fā)調試支持,開發(fā)人員需要自己搭建 GCC 編譯開發(fā)環(huán)境,需要學習 MakeFile/CMake 語法、GCC
    發(fā)表于 05-16 10:46

    三星停止自動駕駛研究,開發(fā)人員轉到機器人領域

    近日,三星電子宣布一項重要的研發(fā)戰(zhàn)略調整。據業(yè)內人士透露,三星先進技術研究院(SAIT)已決定停止自動駕駛汽車的研究,并將這一領域的開發(fā)人員轉移到機器人領域。
    的頭像 發(fā)表于 05-13 09:21 ?450次閱讀

    美國政府呼吁開發(fā)人員使用內存安全編程語言

    所謂內存安全,即是防止程序在處理內存時產生如緩沖區(qū)溢出以及懸停指針等潛在漏洞。因此,盡管Java憑借其內存安全模式,不受此類問題影響,但C及其變異體C++擁有直接操作內存地址,且缺乏邊界檢查,因此在內存安全性方面常常陷入困境。
    的頭像 發(fā)表于 02-29 14:40 ?821次閱讀

    MWC2024亮點 愛立信旗下Vonage攜手AWS加速向數百萬開發(fā)人員提供新的解決方案

    開發(fā)人員提供新的解決方案。 推動跨行業(yè)新應用 近日,AWS工業(yè)副總裁Kathrin Renz表示:“AWS和Vonage在幫助客戶實現創(chuàng)新和價值方面有著共同的熱情。 我們與Vonage合作的目標是推動
    的頭像 發(fā)表于 02-29 09:42 ?1.2w次閱讀

    瑞薩RA8T1高性能電機控制新品解讀(下)應用與開發(fā)

    在上一篇文章中,我們介紹高性能RA8T1 MCU的整體概況和性能配置解析。最后我們進入開發(fā)人員最為關心的部分,關于目標應用及開發(fā)支持。
    的頭像 發(fā)表于 02-21 12:17 ?970次閱讀
    瑞薩RA8T1高性能電機控制新品解讀(下)應用與<b class='flag-5'>開發(fā)</b>篇

    現在學鴻蒙有前途嗎?能找到工作?

    。發(fā)布會中表示,已有200家頭部企業(yè)加入原生開發(fā)當中,并且一直有高薪搶人的局面。 做為Android開發(fā)人員,對于現在的互聯網行業(yè)來說。鴻蒙就是近幾年最大的風口,而不僅Android開發(fā)
    發(fā)表于 02-18 21:32

    求助,如何將C++代碼從GNU移植Tasking編譯器?

    我是一名軟件開發(fā)人員,正在研究自動駕駛的應用,并已將目標設備入圍為 Aurix TC399,作為原型階段的第一步。 一旦原型按要求運行,我們想訂購多個硬件進行批量生產。 在此過程中,我們幾乎沒有遇到
    發(fā)表于 01-31 07:29