這篇文章讓小夥伴們久等了。算法
一年多以來,關於嵌入式開發學習路線、規劃、看什麼書等問題,被問得沒有一百,也有大幾十次了。可是無奈本身對這方面瞭解有限,因此每次都無法交代,搞得實在很差意思。編程
可是辦法總歸是有的,正如前篇文章《最近厚着臉皮聯繫了很多老同窗》所聊,雖然我本身不從事這些方向,但尋思了一下,個人同窗和朋友中,多少仍是有一些從事相關方向而且在一線(或曾在一線)工做過的,因此我就請他們幫忙一塊兒梳理這幾個我不熟悉領域的學習路線,此次嵌入式開發就是其中之一。後端
這篇文章之因此拖這麼久,由於溝通實在太費時間了,畢竟大佬們都挺忙,何況梳理總結這件事情自己就比較繁瑣,因此等到如今才發出來。網絡
通過此次和同窗的交流,我本身也學到了不少。由於嵌入式方面的不少東西我也不懂,我也算學習了。數據結構
站在我我的角度來看,結合之前的學習體驗。我以爲嵌入式開發比互聯網軟開(好比Java後端)仍是要難一些的,好比咱們搞Java開發的,再怎麼說,基本也都是用戶態的東西,但嵌入式不少東西都深刻到了內核態,因此難度確定是有的,表如今幾個方面吧:ide
整體來講,仍是能夠把嵌入式學習分爲三個大的階段:學習
首先基礎學習階段,這就包括通用編程基礎(C語言、數據結構/算法、操做系統、計網、計組、Linux系統基礎)和基本的硬件基礎,紮實地掌握這兩大基礎,是後續持續發展和不斷進步的動力源泉。操作系統
其次就是嵌入式應用編程階段,或者說系統平臺編程階段。由於通常會以特定的嵌入式平臺和特定的嵌入式操做系統爲依託,熟悉這個系統平臺上的編程方法和流程。以常見的ARM+Linux平臺爲例,須要掌握從內存管理到多任務編程、文件I/O、網絡編程,甚至圖形化界面編程等幾個大的方面。3d
最後就是深刻嵌入式底層開發階段,最多見的就是內核開發和驅動開發,這些統屬於內核態開發範疇,因此須要對操做系統內部機制有所涉獵和理解,在此基礎上須要掌握從系統移植到內核開發、驅動開發的各個細節,這是成神之路。blog
大致思路是這樣,接下來看一下詳細的學習路線和知識點梳理。
花了很長時間,就爲了整理這張詳細的知識路線腦圖。固然因爲時間有限、能力也都有限,畢竟嵌入式全體系實在太龐大了,包括我那作嵌入式的同窗,也不可能什麼都懂,有些東西可能沒覆蓋到,不足之處,還但願小夥伴們一塊兒交流補充,一塊兒完善進步。
注:圖片上傳後可能被壓縮,如需無損版高清大圖或PDF版文檔,可直接在本公衆號後臺回覆「嵌入式」三個字自取吧。
最後,按照總體的學習路線,再推薦一些對應的經典書籍:
此次就分享到這裏吧,下篇見。
天天進步一點點
慢一點才能更快