女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

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

學習嵌入式系統(tǒng)C語言編程的關(guān)鍵點

單片機匠人 ? 來源:張飛實戰(zhàn)電子 ? 作者:黃忠老師 ? 2021-09-29 15:48 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1、真正深刻地認識存儲器

馮.諾伊曼說過“程序等于算法加數(shù)據(jù)結(jié)構(gòu)”。首先,算法是什么?算法是通過存儲在存儲器中的程序代碼實現(xiàn)的。其次,數(shù)據(jù)結(jié)構(gòu)又是什么?數(shù)據(jù)結(jié)構(gòu)是存放在存儲器中的各種類型的數(shù)據(jù)。程序本質(zhì)上就是處理器通過執(zhí)行存放在存儲器中的程序代碼對存放在存儲器中的數(shù)據(jù)進行操作和變換的過程。在這個過程中除了處理器本身外,最核心的環(huán)節(jié)就是存儲器。因為不管是程序的可執(zhí)行代碼還是數(shù)據(jù)都是存放在存儲器中的。撇開代碼、變量、數(shù)組、指針、結(jié)構(gòu)、堆棧等這些軟件中的各個元素的表象,剩下的本質(zhì)就是存儲器!因此,理解C語言的關(guān)鍵是真正理解存儲器。

每一個存儲單元都有兩個屬性:一是存儲器里面存放的內(nèi)容,二是存儲器的地址。這個內(nèi)容可以是代碼,也可以是數(shù)據(jù),甚至是另一個存儲單元的地址(這個時候往往我們稱這個存儲單元放的是一個指針)。

2、認識和理解嵌入式C編程環(huán)境

嵌入式軟件開發(fā)的 一個非常重要的特點就是交叉編譯,也就是開發(fā)工具運行的環(huán)境和被調(diào)試的程序不是運行在同一個硬件平臺(處理器)上的。一般而言編譯器、匯編器、鏈接器等工具鏈軟件以及調(diào)試工具都運行在通用的PC機平臺上;調(diào)試工具通過一定的通信手段將鏈接器輸出的可執(zhí)行文件下載到嵌入式系統(tǒng)開發(fā)板(一般稱為目標系統(tǒng))的存儲器中,并通過一定的機制控制和觀測目標系統(tǒng)的寄存器、存儲器等。這個開發(fā)過程往往需要使用多種不同的工具,對此初學者很容易感到困惑。只有真正理解開發(fā)過程中各個環(huán)節(jié)的作用,才能對嵌入式系統(tǒng)C編程有深入的認識。

另一個問題是,雖然C語言是一門高級語言,但是想真正用好C語言,程序員必須對編程過程中所使用的工具非常了解,清楚地知道每個工具的作用以及這些工具與硬件平臺的相互關(guān)系。比如:編譯器是如何處理全局變量和全局數(shù)組的?對于全局變量的處理與局部變量有什么不同?編譯器是如何利用堆棧進行傳遞參數(shù)的?又比如:C語言的編譯器、鏈接器是如何處理一個項目中多個C文件之間的相互依賴關(guān)系的?鏈接器最終是如何生成可執(zhí)行文件的?可執(zhí)行文件的內(nèi)存映像又是如何安排的?這些問題初看起來似乎與C編程本身沒有什么關(guān)系,但因為在嵌入式軟件的開發(fā)過程中程序員要經(jīng)常直接和底層的設(shè)備與工具打交道,所以一個嵌入式軟件的程序員應(yīng)該對這些問題了如指掌。

3、認識和掌握C語言中的常見陷阱

C語言不是一門面向初學者的編程語言,C語言發(fā)明者的初衷是希望設(shè)計一種面向編譯器和操作系統(tǒng)設(shè)計的高級語言,因此C語言中充滿了各種各樣對于初學者而言的陷阱。這些陷阱一方面來自于C語法本身的靈活性,另一方面來自于C對存儲器邊界的不檢查,因此非常容易在代碼中造成存儲器越界訪問的問題。在C語言中,最容易出錯的地方是與存儲器相關(guān)的內(nèi)存訪問越界以及內(nèi)存泄漏的問題,C語言的使用者必須非常小心地規(guī)避這些陷阱。

4、掌握C語言程序設(shè)計過程中的調(diào)試方法

任何程序在編寫的過程中都需要調(diào)試,尤其對于比較復(fù)雜的系統(tǒng)更是如此。面對程序編寫過程中出現(xiàn)的問題,比較現(xiàn)實的問題應(yīng)該是如何在最短的時間內(nèi)發(fā)現(xiàn)程序錯誤的根源,修改這個錯誤,并且吸取教訓(xùn)爭取在以后的程序中不再犯同樣的錯誤。在這個環(huán)節(jié)中最重要也是最需要技巧的工作就是找到問題的根源。雖然很少有相關(guān)的參考書介紹這方面的內(nèi)容,但事實上,程序的調(diào)試是有一定的方法和技巧的。

責任編輯:haq

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

    關(guān)注

    5152

    文章

    19670

    瀏覽量

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

    關(guān)注

    180

    文章

    7632

    瀏覽量

    141717
  • 編程
    +關(guān)注

    關(guān)注

    88

    文章

    3689

    瀏覽量

    95247

原文標題:如何學好嵌入式系統(tǒng)中的C語言編程

文章出處:【微信號:gh_e7f294a514ca,微信公眾號:單片機匠人】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

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

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

    特定功能的計算機系統(tǒng),廣泛應(yīng)用于智能家居、工業(yè)控制、醫(yī)療設(shè)備、車載系統(tǒng)等領(lǐng)域。 2. 學習嵌入式開發(fā)的前置知識熟悉C
    發(fā)表于 05-15 09:29

    嵌入式適合自學嗎?

    基礎(chǔ)。對于初學者來說,很難在短時間內(nèi)建立起完整的知識體系。 2)學習曲線陡峭:嵌入式開發(fā)需要掌握多種編程語言、硬件知識、操作系統(tǒng)原理等,
    發(fā)表于 04-27 09:54

    入行嵌入式難度大不大?

    入行嵌入式難度大不大?根據(jù)不同的情況來分析下。 (一)零基礎(chǔ)入行 對于零基礎(chǔ)的初學者來說,嵌入式領(lǐng)域可能會有一定的門檻。需要從基礎(chǔ)的電子電路知識、編程語言(如
    發(fā)表于 04-17 10:14

    嵌入式編程設(shè)計模式

    嵌入式編程設(shè)計模式,介紹如何使用設(shè)計模式為嵌入式系統(tǒng)創(chuàng)建高效且優(yōu)化的C語言設(shè)計。 純分享貼,
    發(fā)表于 04-15 14:47

    Python在嵌入式系統(tǒng)中的應(yīng)用場景

    你想把你的職業(yè)生涯提升到一個新的水平?Python在嵌入式系統(tǒng)中正在成為一股不可缺少的新力量。盡管傳統(tǒng)上嵌入式開發(fā)更多地依賴于CC++
    的頭像 發(fā)表于 03-19 14:10 ?714次閱讀

    如何成為嵌入式開發(fā)工程師?

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

    嵌入式機器學習的應(yīng)用特性與軟件開發(fā)環(huán)境

    作者:DigiKey Editor 在許多嵌入式系統(tǒng)中,必須采用嵌入式機器學習(Embedded Machine Learning)技術(shù),這是指將機器
    的頭像 發(fā)表于 01-25 17:05 ?660次閱讀
    <b class='flag-5'>嵌入式</b>機器<b class='flag-5'>學習</b>的應(yīng)用特性與軟件開發(fā)環(huán)境

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

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

    新手怎么學嵌入式?

    操作系統(tǒng)示例。 學習嵌入式技術(shù)是一個充滿挑戰(zhàn)但又極具樂趣的過程。對于新手來說,只要有耐心和恒心,按照上述步驟逐步學習,從基礎(chǔ)知識到編程
    發(fā)表于 12-12 10:51

    嵌入式系統(tǒng)開發(fā)與硬件的關(guān)系 嵌入式系統(tǒng)開發(fā)常見問題解決

    系統(tǒng)開發(fā)與硬件關(guān)系的幾個關(guān)鍵: 硬件依賴性 :嵌入式系統(tǒng)的軟件必須能夠在特定的硬件上運行,這包括處理器、內(nèi)存、輸入/輸出接口等。軟件必須能
    的頭像 發(fā)表于 12-09 09:38 ?964次閱讀

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

    微控制器單元(Microcontroller Unit,簡稱MCU)是嵌入式系統(tǒng)的核心,廣泛應(yīng)用于各種電子產(chǎn)品中。隨著技術(shù)的發(fā)展,MCU編程語言和開發(fā)環(huán)境也在不斷進步,以適應(yīng)不同的應(yīng)用
    的頭像 發(fā)表于 11-01 11:51 ?2194次閱讀

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

    底層崗位方向比如:嵌入式硬件工程師、驅(qū)動開發(fā)工程師等崗位投簡歷啦!當然,這只是一個大致的路線,并不涵蓋所有的細節(jié)和知識。如果你想深入學習,還需要仔細研究一些書籍和資料,也可以參考多做一些實踐項目。
    發(fā)表于 10-25 15:55

    嵌入式學習建議

    原理的嵌入式操作系統(tǒng)進行學習。不要一開始就學習幾種操作系統(tǒng),理解了基本原理,實踐中確有實際需要再學習
    發(fā)表于 10-22 11:41

    嵌入式系統(tǒng)的未來趨勢有哪些?

    嵌入式系統(tǒng)是指將我們的操作系統(tǒng)和功能軟件集成于計算機硬件系統(tǒng)之中,形成一個專用的計算機系統(tǒng)。那么嵌入式
    發(fā)表于 09-12 15:42

    嵌入式C編程常用的異常錯誤處理

    嵌入式C編程中,異常錯誤處理是確保系統(tǒng)穩(wěn)定性和可靠性的重要部分。以下是一些常見的異常錯誤處理方法及其詳細說明和示例: 1. 斷言 (Assertions) 斷言用于在開發(fā)階段捕獲程
    發(fā)表于 08-06 14:32