從去年做嵌入式項目到今天,已經(jīng)快一年時間了,,經(jīng)歷了從PCB設(shè)計,, bootloader修改,核心移植,, 文件系統(tǒng)移植,,驅(qū)動開發(fā),QT開發(fā),,幾乎嵌入式開發(fā)的全過程,。 回想起一年前,對嵌入式的感受大不一樣,,只慶幸是在學(xué)校,,才能經(jīng)歷如此完整的項目流程??吹絘dmin如此認(rèn)真的寫帖,,感慨萬千,,將自己的很多想法寫出來,希望對后來者有些幫助. ..如此,,心足慰也,。
第一個話題,嵌入式學(xué)習(xí)的路徑有哪些... 這是一個初學(xué)者常問的問題,也是初學(xué)者問嵌入式該如何入門的根源,。我感覺有兩個方面,,偏硬和偏軟。我不認(rèn)為嵌入式開發(fā)軟件占絕對比重,,相反,,軟硬件都懂,才是嵌入式高手所應(yīng)該追求的,,也是高手的必由之路,。 硬件道路: 第一步: pcb設(shè)計,一般為開發(fā)板的電路裁減和擴(kuò)充,,由開發(fā)板原理圖為基礎(chǔ),,畫出PCB和封裝庫,設(shè)計自己的電路,。 第二步: SOPC技術(shù),,一般為FPGA,CPLD開發(fā),,利用VHDL等硬件描述語言做專用芯片開發(fā),,寫出自己的邏輯電路,基于ALTER或XILINUX的FPGA做開發(fā),。 第三步: SOC設(shè)計,,分前端,后端實現(xiàn),,這是硬件設(shè)計的核心技術(shù):芯片設(shè)計。能做到這步,,已經(jīng)不屬于平凡的技術(shù)人員,。 軟件道路: 第一步:bootloader的編寫,修改,, 通過這步熟悉ARM硬件結(jié)構(gòu),,學(xué)習(xí)ARM匯編語言,閱讀ARM的芯片手冊,,感覺就是像操作51單片機(jī)一樣操作ARM芯片,。這一步最好的兩個參考資料就是:芯片手冊和bootloader源代碼。 第二步:系統(tǒng)移植,, 驅(qū)動開發(fā),。我只做過linux方向,,所以也推薦學(xué)習(xí)嵌入式linux系統(tǒng)作為標(biāo)準(zhǔn)體系。其他開源而且可以獲得大量學(xué)習(xí)資料,。操作系統(tǒng)是整個計算機(jī)科學(xué)的核心,,熟悉kernel實屬不易,kernel,, 驅(qū)動開發(fā)的學(xué)習(xí),,沒有什么捷徑,只有多讀代碼,,多寫代碼,,熟悉系統(tǒng)API.. understanding linux kernel , linux device driver 都是不可多得的好書,值得一看,。 第三步:應(yīng)用程序的編寫,,各種GUI的移植,qt ,, minigui都被大量采用,,兩種思想都類似,熟悉一種就可以,。軟件道路中,,驅(qū)動,系統(tǒng)應(yīng)該是最深入的部分,,不是短時間可以掌握的,需要有勇氣和耐心..嵌入式開發(fā),,軟硬結(jié)合,因為硬件條件比PC差很多,,所以肯定會遇見不少問題,,因此實踐的勇氣更加重要。有問題就解決問題,,無數(shù)次的實驗,,也許是解決問題的必由之路.. 前路甚遠(yuǎn),吾將前行不已,。 |
|