http://www.gd-emb.org/subject/topic2.html
第一個話題,嵌入式學習的路徑有哪些...
這是一個初學者常問的問題,也是初學者問嵌入式該如何入門的根源..我感覺有兩個方面,偏硬和偏軟.我不認為嵌入式開發軟體占絕對比重,相反,軟硬體都懂,才是嵌入式高手所應該追求的,也是高手的必由之路.
硬體道路:
第一步: pcb設計,一般為開發板的電路裁減和擴充,由開發板原理圖為基礎,畫出PCB和封裝庫,設計自己的電路.
第二步: SOPC技術,一般為FPGA,CPLD開發,利用VHDL等硬體描述語言做專用晶片開發,寫出自己的邏輯電路,基於ALTER或XILINUX的FPGA做開發.
第三步: SOC設計,分前端,後端實現,這是硬體設計的核心技術:晶片設計.能做到這步,已經不屬於平凡的技術人員.
軟體道路:
第一步:bootloader的編寫,修改, 通過這步熟悉ARM硬體結構,學習ARM組合語言,閱讀ARM的晶片手冊,感覺就是像操作51單片機一樣操作ARM晶片.這一步最好的兩個參考資料就是:晶片手冊和bootloader原始碼.
第二步:系統移植, 驅動開發, 我只做過linux方向,所以也推薦學習嵌入式linux系統,作為標準體系,他開源而且可以獲得大量學習資料.作業系統是整個電腦科學的核心,熟悉kernel實屬不易,kernel, 驅動開發的學習,沒有什麼捷徑,只有多讀代碼,多寫代碼,熟悉系統API.. understanding linux kernel , linux device driver 都是不可多得的好書,值得一看.
第三步:應用程式的編寫,各種GUI的移植,qt , minigui都被大量採用,兩種思想都類似,熟悉一種就可以.
軟體道路中,驅動,系統應該是最深入的部分,不是短時間可以掌握的,需要有勇氣和耐心..
嵌入式開發,軟硬結合,因為硬體條件比PC差很多,所以肯定會遇見不少問題,因此實踐的勇氣更加重要.有問題就解決問題,無數次的實驗,也許是解決問題的必由之路..