嵌入式軟體開發需要學習的知識點

2021-10-06 14:29:02 字數 1464 閱讀 5442

本來對於嵌入式開發的要求就比較高,學員選擇嵌入式軟體開發應該也是深思熟慮的結果,那麼在這裡如果你在掌握了嵌入式軟體開發的知識點的話,你就真的事半功倍了,下面一起來了解下嵌入式軟體開發需要學習的知識點吧。

嵌入式開發的門檻相對較高,對程式設計師的要求一般都是對底層感興趣,學習能力、動手能力要強,對問題能夠從全域性和細節去把握,有很強的系統分析和設計能力。從工程師起步,一般有幾個發展方向,乙個是成為技術方面的核心,領域內的專家;另乙個是從專案中鍛鍊起來,成為專案主管或是管理型人才;再有就是利用自己的技術及行業經驗去創業。

雖然說搞嵌入式軟體更多時候是在實際的工作中學習的,但一些重要的基礎知識不可或缺。

1. 計算機組成/微機原理

主要是為了了解微型計算機的硬體工作原理,明白cpu、匯流排、i/o、儲存器等一些關鍵結構是怎麼工作的,雖然是很枯燥的知識,但是對熟悉外圍裝置硬體工作方式,及作業系統,軟體架構的設計及優化相當關鍵。

2. 作業系統

嵌入式產品應用比較廣泛的是linux和wince。但作業系統的內部設計原理都是殊途同歸。首先要去學習的是作業系統原理,去了解程序通訊、記憶體管理、檔案系統等幾個重要的部分,因為這些在軟體開發尤其是核心驅動開發時會用到。接下來可以去熟悉至少一種主流的作業系統,linux是乙個很好的選擇,去了解它的核心架構,裝置驅動架構,如何去編譯,裁剪,編寫應用程式,以及如何使用在具體的嵌入式產品上。

3. 數位電路

學習這方面的知識主要是了解一些基本的電路知識,如閘電路、邏輯電路、儲存器、暫存器,為了更好的理解嵌入式晶元,儲存器,外圍裝置等硬體的設計,但往往在軟體開發中未必能用的到。因為大部分硬體都提供了很完整的軟體介面。

4. 程式語言:c語言和彙編

對於c語言本身的基礎來說,無非是把結構化,函式,陣列,指標弄熟,但是嵌入式開發對c語言應用的要求會更高。要對記憶體分配,檔案訪問,暫存器訪問,預處理指令,中斷處理程式等等相當熟悉,這些都是在使用中要注意的細節問題。c語言對程式的優化也很重要,而這些往往是需要從全域性去考慮。彙編一般是和處理器的指令集相關的,可以更好的去理解處理器的工作原理,往往是用在一些需要效率的地方,如系統的初始化。

5. 資料結構和演算法

資料結構在嵌入式開發中也很重要,比如說作業系統裡的很多實現都用到了具體的演算法。基本的資料結構需要掌握,如各種鍊錶,樹,圖等等;而演算法的學習需要數學知識作為鋪墊,用計算機語言去實現。對於軟體從業人員來說,演算法終究是乙個工具,在實際應用時再深入挖掘也可。

6. 軟體工程/軟體測試/專案管理基礎

這些是軟體開發人員的必備知識。

7. 開發平台

嵌入式的開發平台不侷限於一種作業系統,因此要熟悉各種作業系統下的命令、編輯器及開發工具,這一點往往被很多人忽視。舉個例子,linux下的程式設計師開發環境往往是按自己的習慣搭建,熟練掌握一種編輯器如vim/emacs可以大幅度提高工作效率。磨刀不誤砍柴工。

以上介紹的就是嵌入式軟體開發需要掌握的知識點了,只要你有去了解過嵌入式開發,那麼就會知道這裡是分為硬體開發還有嵌入式軟體開發的,具體的內容上面已經都給大家介紹了,還有什麼問題可以隨時諮詢哦。

嵌入式軟體開發 必須掌握的知識點(二)

1 嵌入式系統的主要組成部分 1 硬體裝置 2 嵌入式作業系統 3 應用軟體 2 一條語句實現 判斷乙個數x為2的 n 次冪 if x x 1 0 3 linux系統的裝置分類 1 字元裝置 2 塊裝置 3 網路裝置 4 c語言運算子優先順序 同一優先順序的運算子,運算次序由結合方向所決定。優先順序...

嵌入式軟體開發 必須掌握的知識點(三)

1 arm處理器中的浮點運算 浮點運算是指浮點數參與的運算,這種運算通常伴隨著因為無法精確表示而進行的近似或捨入。乙個浮點數a由兩個數m和e來表示 a m b e。在任意乙個這樣的系統中,我們選擇乙個基數b 記數系統的基 和精度p 即使用多少位來儲存 m 即尾數 是形如 d.ddd.ddd的p位數 ...

嵌入式Linux開發知識點

1.阻塞和非阻塞的區別 阻塞的定義 對於read,block指當串列埠輸入緩衝區沒有資料的時候,read函式將會阻塞在這裡,移植到串列埠輸入緩衝區中有資料可讀取,read讀到了需要的位元組數之後,返回值為讀到的位元組數 對於write,block指當串列埠輸出緩衝區滿,或剩下的空間小於將要寫入的位元...