嵌入式現(xiàn)在發(fā)展這么好,很多人都加入了嵌入式的行業(yè),那么問題來了,對于新手來說,嵌入式開發(fā)學習成為了一個問題,總是覺得入不了門,學的很迷茫,老不會,那在這里我這只老鳥就來教你嵌入式開發(fā)要學什么
首先剛開始,我就先籠統(tǒng)的說一下:
一是操作系統(tǒng)知識:
新手學嵌入式需要什么基礎(chǔ)驅(qū)動分為兩種,一種是沒有操作系統(tǒng)的驅(qū)動程序,也就是直接用c語言來對硬件進行編程,那么另外一種就是有操作系統(tǒng)的驅(qū)動程序,需要集合操作系統(tǒng)的接口來編寫驅(qū)動程序才可正常使用,當然在兩種模式中,使用最多且就業(yè)需求最多的就是第二種有操作系統(tǒng)的驅(qū)動程序,所以想要寫驅(qū)動程序首先需要掌握操作系統(tǒng)的相關(guān)知識,而嵌入式的驅(qū)動程序大多是用linux系統(tǒng),所以應(yīng)該熟練掌握linux操作系統(tǒng)是成為開發(fā)嵌入式驅(qū)動的必要條件,但切記不是唯一的條件,因為還有wince等其他操作系統(tǒng)。
其次是c語言:
c語言也被稱為是上帝的語言,那么在嵌入式驅(qū)動當中是使用最廣泛的語言開發(fā),此外也有用匯編來開發(fā)驅(qū)動程序,但其效率可能稍微差點,從當前實際工作環(huán)境中看,我們現(xiàn)在開發(fā)驅(qū)動程序用的就是c語言,那么對于計算機專業(yè)的人來講,大部分人的第一種編程語言就是c語言,所以這門學科對于我們來講并不是什么難事。
還有就是驅(qū)動硬件知識了,大體的了解了一下。接下來詳細的從八大階段來看一下:
1、C語言
嵌入式Linux工程師的學習需要具備一定的C語言基礎(chǔ),C語言是嵌入式領(lǐng)域最重要也是最主要的編程語言,通過大量編程實例重點理解C語言的基礎(chǔ)編程以及高級編程知識。包括:基本數(shù)據(jù)類型、數(shù)組、指針、結(jié)構(gòu)體、鏈表、文件操作、隊列、棧等。
2、Linux基礎(chǔ)
Linux操作系統(tǒng)的概念、安裝方法,詳細了解Linux下的目錄結(jié)構(gòu)、基本命令、編輯器VI ,編譯器GCC,調(diào)試器GDB和 Make 項目管理工具, Shell Makefile腳本編寫等知識,嵌入式開發(fā)環(huán)境的搭建。
3、Linux系統(tǒng)編程
重點學習標準I/O庫,Linux多任務(wù)編程中的多進程和多線程,以及進程間通信(pipe、FIFO、消息隊列、共享內(nèi)存、signal、信號量等),同步與互斥對共享資源訪問控制等重要知識,主要提升對Linux應(yīng)用開發(fā)的理解和代碼調(diào)試的能力。
4、Linux網(wǎng)絡(luò)編程
計算機網(wǎng)絡(luò)在嵌入式Linux系統(tǒng)應(yīng)用開發(fā)過程中使用非常廣泛,通過Linux網(wǎng)絡(luò)發(fā)展、TCP/IP協(xié)議、socket編程、TCP網(wǎng)絡(luò)編程、UDP網(wǎng)絡(luò)編程、Web編程開發(fā)等方面入手,全面了解Linux網(wǎng)絡(luò)應(yīng)用程序開發(fā)。重點學習網(wǎng)絡(luò)編程相關(guān)API,熟練掌握TCP協(xié)議服務(wù)器的編程方法和并發(fā)服務(wù)器的實現(xiàn),了解HTTP協(xié)議及其實現(xiàn)方法,熟悉UDP廣播、多播的原理及編程方法,掌握混合C/S架構(gòu)網(wǎng)絡(luò)通信系統(tǒng)的設(shè)計,熟悉HTML,Javascript等Web編程技術(shù)及實現(xiàn)方法。
5、C++ 、QT
初學嵌入式開發(fā)要學什么C++是Linux應(yīng)用開發(fā)主要語言之一,本階段重點掌握面向?qū)ο缶幊痰幕舅枷胍约癈++的重要內(nèi)容。圖形界面編程是嵌入式開發(fā)中非常重要的一個環(huán)節(jié)。由于QT具有跨平臺、面向?qū)ο、豐富API、支持2D/3D渲染、支持XML、多國語等強大功能,在嵌入式領(lǐng)域的GUI開發(fā)中得到了廣范的應(yīng)用,在本階段通過基于QT圖形庫的學習使學員可以熟練編寫GUI程序,并移植QT應(yīng)用程序到Cortex-A8平臺。包括IDE使用、QT部件及布局管理器、信息與槽機制的應(yīng)用、鼠標、鍵盤及繪圖事件處理及文件處理的應(yīng)用。
6、數(shù)據(jù)結(jié)構(gòu)與算法
數(shù)據(jù)結(jié)構(gòu)及算法在嵌入式底層驅(qū)動、通信協(xié)議、及各種引擎開發(fā)中會得到大量應(yīng)用,對其掌握的好壞直接影響程序的效率、簡潔及健壯性。此階段的學習要重點理解數(shù)據(jù)結(jié)構(gòu)與算法的基礎(chǔ)內(nèi)容,包括順序表、鏈表、隊列、棧、樹、圖、哈希表、各種查找排序算法等應(yīng)用及其C語言實現(xiàn)過程。
7、Cortex A8 、Linux 平臺開發(fā)
通過基于ARM Cortex-A8處理s5pv210了解芯片手冊的基本閱讀技巧,掌握s5pv210系統(tǒng)資源、時鐘控制器、電源管理、異常中斷控制器、nand flash控制器等模塊,為底層平臺搭建做好準備。Linux平臺包括內(nèi)核裁減、內(nèi)核移植、交叉編譯、GNU工具使用、內(nèi)核調(diào)試、Bootloader介紹、制作與原理分析、根文件系統(tǒng)制作以及向內(nèi)核中添加自己的模塊,并在s5pv210實驗平臺上運行自己制作的Linux系統(tǒng),集成部署Linux系統(tǒng)整個流程。同時了解Android操作系統(tǒng)開發(fā)流程。Android系統(tǒng)是基于Linux平臺的開源操作系統(tǒng),該平臺由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成,是首個為移動終端打造的真正開放和完整的移動軟件,目前它的應(yīng)用不再局限于移動終端,還包括數(shù)據(jù)電視、機頂盒、PDA等消費類電子產(chǎn)品。
8、初學嵌入式開發(fā)要學什么驅(qū)動開發(fā)肯定是跑不了的
驅(qū)動程序設(shè)計是嵌入式Linux開發(fā)工作中重要的一部分,也是比較困難的一部分。本階段的學習要熟悉Linux的內(nèi)核機制、驅(qū)動程序與用戶級應(yīng)用程序的接口,掌握系統(tǒng)對設(shè)備的并發(fā)操作。熟悉所開發(fā)硬件的工作原理,具備ARM硬件接口的基礎(chǔ)知識,熟悉ARM Cortex-A8處理器s5pv210各資源、掌握Linux設(shè)備驅(qū)動原理框架,熟悉工程中常見Linux高級字符設(shè)備、塊設(shè)備、網(wǎng)絡(luò)設(shè)備、USB設(shè)備等驅(qū)動開發(fā),在工作中能獨立勝任底層驅(qū)動開發(fā)。
學嵌入式開發(fā),需要的是你掌握上面這些知識點,那么對你以后來說,嵌入式開發(fā)就不是難事了,所以好好學,這里提供給你一些學習資料,你可以慢慢學習。
嵌入式學習路線圖 想要更多的可以聯(lián)系客服哦