合理的嵌入式開發學習路線!好好學習,天天向上

虎牙來了 發佈 2019-12-18T17:44:08+00:00

最近網上好多新手問我,怎麼樣學習嵌入式開發?其實這個問題很複雜,因為嵌入式開發是個非常複雜的領域,既有深度,也有廣度,是個軟硬結合的領域。

最近網上好多新手問我,怎麼樣學習嵌入式開發?其實這個問題很複雜,因為嵌入式開發是個非常複雜的領域,既有深度,也有廣度,是個軟硬結合的領域。

嵌入式工程師一般分兩種:

☀一類是學電子工程、通信工程等偏硬體專業出身的人,他們主要是搞硬體設計,有時要開發一些與硬體關係最密切的最底層軟體,如BootLoader、Board Support Package(像PC的BIOS一樣,往下驅動硬體,往上支持作業系統),最初級的硬體驅動程序等。他們的優勢是對硬體原理非常清楚,不足是他們更擅長定義各種硬體接口,但對複雜軟體系統往往力不從心(例如嵌入式作業系統原理和複雜應用軟體等)。

☀另一類是學軟體、計算機專業出身的人,主要從事嵌入式作業系統和應用軟體的開發。學軟體的人對硬體原理和接口通常難以有較好的掌握,最多也只能寫部分BSP和硬體驅動程序。嵌入式硬體設計完後,各種功能就全靠軟體來實現了,嵌入式設備的增值很大程度上取決於嵌入式軟體,這占了嵌入式系統的最主要工作,所以搞軟體的人完全不用擔心自己在嵌入式市場上的用武之地,越是智能設備越是複雜系統,軟體越起關鍵作用,而且這是目前的趨勢。

而隨著發展到現在大部分人都能包容第一類和第二類。 並且第一類和第二類其實是屬於一塊的。大部分時間是連接在一起的。這類開發人員具有很強的專業綜合知識,能很好的將軟硬體結合,一般測控類專業居多。

計算機專業出身的人,如果要從事嵌入式軟體的開發也需要非常複雜的學習路線。。。。我給出了比較科學的學習路線。。。當然我也不是所有都看過,因為實在太多了

1、基礎知識:

目的:能看懂硬體工作原理,但重點在嵌入式軟體,特別是作業系統級軟體。

科目:數字電路、計算機組成原理、嵌入式微處理器結構。

彙編語言、C/C++、編譯原理、離散數學。

數據結構和算法、作業系統、軟體工程、網絡、資料庫。

方法:雖科目眾多,但都是較簡單的基礎,且大部分已掌握。不一定全學,可根據需要選修。

主攻書籍:the c++ programming language、數據結構-C2。

2、學習linux:

目的:深入掌握linux系統。

方法:使用linux—〉linxu系統編程開發—〉驅動開發和分析linux內核。先看深,那主講原理。看幾遍後,看情景分析,對照深看,兩本交叉,深是綱,情是目。適合學習。最後深入代碼。

主攻書籍:linux內核完全剖析、unix環境高級編程、深入理解linux內核、情景分析和源代。

3、學習嵌入式linux:

目的:掌握嵌入式處理器其及系統。

方法:(1)嵌入式微處理器結構與應用:直接arm原理及彙編即可,不要重複x86。

(2)嵌入式作業系統類:ucOS/II簡單,開源,可供入門。而後深入研究uClinux。

(3)必須有塊開發板(arm9以上),有條件可參加培訓(進步快,能認識些朋友)。

主攻書籍:毛德操的《嵌入式系統》及其他arm9手冊與arm彙編指令等。

4、深入學習:

A、數字圖像壓縮技術:主要是應掌握MPEG、mp3等編解碼算法和技術。

B、通信協議及編程技術:TCP/IP協議、802.11,Bluetooth,GPRS、GSM、CDMA等。

C、網絡與信息安全技術:如加密技術,數字證書CA等。

D、DSP技術:Digital Signal Process,DSP處理器通過硬體實現數位訊號處理算法。

說明:太多細節未說明,可根據實際情況調整。重點在於1、3,不必完全按照順序作。對於學習c++,理由是c++不只是一種語言,一種工具,她還是一種藝術,一種文化,一種哲學理念、但不是拿來炫耀得東西。對於linux內核,學習編程,讀一些優秀代碼也是有必要的。

注意: 要學會舉一反多,有強大的基礎,很多東西簡單看看就能會。想成為合格的程式設計師,前提是必須熟練至少一種程式語言,並具有良好的邏輯思維。一定要理論結合實踐。

不要一味鑽研技術,雖然擠出時間是很難做到的,但還是要留點餘地去完善其他的愛好,比如宇宙,素描、機械、管理,心理學、遊戲、科幻電影。還有一些不願意做但必須要做的!

技術是通過編程編程在編程編出來的。永遠不要夢想一步登天,不要做浮躁的人,不要覺得路途漫上。而是要編程編程在編程,完了在編程,在編程!最後還有最重要的一點,那就是代碼量的積累很重要,很重要,很重要!

我是一名從事了10年開發在退休邊緣垂死掙扎的高齡程式設計師,最近我花了一些時間整理了一個完整的學習C語言、C++的路線,項目源碼和工具。對於想學習C/C++的小夥伴而言,學習的氛圍和志同道合的夥伴很重要,筆者這裡推薦一個C語言/C++編程愛好者的聚集地~

<C語言C++編程學習>!歡迎初學和進階中的小夥伴。希望你也能憑自己的努力,成為下一個優秀的程式設計師。工作需要、感興趣、為了入行、轉行需要學習C/C++的夥伴可以一起學習!」
關注我,帶你遨遊代碼世界!

下面這些是C/C++能做的 :

伺服器開發工程師、人工智慧、雲計算工程師、信息安全(黑客反黑客)、大數據 、數據平台、嵌入式工程師、流媒體伺服器、數據控解、圖像處理、音頻視頻開發工程師、遊戲伺服器、分布式系統、遊戲輔助等!

最後分享一張C/C++學習路線圖給愛學習的小夥伴們


關鍵字: