新聞中心
如何自學(xué)linux驅(qū)動開發(fā),做驅(qū)動開發(fā)需要哪些方面的知識?
做嵌入式應(yīng)用的話一般的編程就可以了。那么嵌入式驅(qū)動開發(fā)與內(nèi)核開發(fā)的話就需要學(xué)習(xí)多個方面的知識。我就把這方面的要求給你交流一下:(一家之言啊,自己多年從事嵌入式開發(fā)的一點感悟)嵌入式驅(qū)動開發(fā)需要了解的知識大概有以下幾類:

1 嵌入式操作系統(tǒng)驅(qū)動框架。
每一個操作系統(tǒng)都有自己的構(gòu)架,應(yīng)該了解驅(qū)動在整個系統(tǒng)中的具體位置與構(gòu)建驅(qū)動程序的主要事項2 總線知識,比如PCI、USB總線。
3 芯片知識。
驅(qū)動其實就是對設(shè)備上一些寄存器的配置、CPU與設(shè)備本身的通訊以及對不同命令的處理4 要做好驅(qū)動,必須對所使用的CPU體系結(jié)構(gòu)有一個比較深刻的認(rèn)識5 C++基本用不上,主要是C和匯編。
6 做驅(qū)動最好要懂內(nèi)核調(diào)試(比如說linux)
linux驅(qū)動開發(fā)前景?
Linux驅(qū)動開發(fā)在當(dāng)前和未來都有很好的前景。隨著Linux操作系統(tǒng)的廣泛應(yīng)用和不斷發(fā)展,對各類設(shè)備和外設(shè)的支持需求也在不斷增加。因此,對于Linux驅(qū)動開發(fā)人員的需求也會隨之增加。
此外,隨著物聯(lián)網(wǎng)、云計算等新興技術(shù)的快速發(fā)展,越來越多的設(shè)備將與Linux系統(tǒng)進(jìn)行連接和通信,這也將為Linux驅(qū)動開發(fā)提供更多的機(jī)會和挑戰(zhàn)。
另外,開源社區(qū)對于Linux驅(qū)動的重視度也非常高,有很多開源項目和社區(qū)致力于開發(fā)和維護(hù)各類Linux驅(qū)動。因此,對于愿意參與開源社區(qū)以及有良好驅(qū)動開發(fā)知識和技能的人來說,Linux驅(qū)動開發(fā)的職業(yè)前景也非常廣闊。
Linux內(nèi)核和驅(qū)動開發(fā)工程師的發(fā)展前景怎么樣?
我親身體驗,我之前是做數(shù)控系統(tǒng)開發(fā)的,做了有七八年,有x86的產(chǎn)品也有arm的產(chǎn)品,x86的linux相對開發(fā)驅(qū)動的地方不多,arm上比較多,存儲,顯示的,usb的 ,各種總線的,音頻的,網(wǎng)絡(luò)的,很多地方只要有訂制需求都要改。驅(qū)動開門檻比較高,主要會軟件還得了解些硬件知識,硬件的原理圖,設(shè)備的數(shù)據(jù)手冊,工作特性都要會,入門難 但是一旦入門了就跟其他的一樣做多了就熟悉了。之前公司是linux+qt,今年離職了進(jìn)了一家安卓開發(fā)的公司,現(xiàn)在還在做安卓的驅(qū)動開發(fā),感覺大同小異,只是硬件平臺變了,開發(fā)的內(nèi)容仍是沒變。驅(qū)動這一塊,人比較少,相對待遇也會好一些,現(xiàn)在我也不知道未來會不會隨著年齡越大,會被淘汰掉,但是linux本身的應(yīng)用范圍是挺廣的,而且作為一個成功的開源項目,只要社會有需求,后面應(yīng)該還是會被廣泛應(yīng)用,至于個人就看自己的能力和精力了!
嵌入式是一個做硬件產(chǎn)品為主的行業(yè),通俗講就是工業(yè)電子和消費電子量大產(chǎn)業(yè). 消費以手機(jī),智能音箱,家用物聯(lián)網(wǎng)設(shè)備等為代表;工業(yè)控制如機(jī)床,交通,廣告牌等各種非消費類電子產(chǎn)品. 做嵌入式可以先看行業(yè),再看職位. 因為行業(yè)決定了薪資的高低. 這點和互聯(lián)網(wǎng)區(qū)別很大.
其次具體到職位,嵌入式,這是對操作系統(tǒng)內(nèi)核源碼,基礎(chǔ)語言C/C++/匯編,硬件電路知識,開發(fā)系統(tǒng)環(huán)境,編譯Makefile原理,代碼編輯VIM,這些都需要熟悉,開發(fā)軟件是和硬件打交道的,懂硬件會看原理圖是必備的. 另外對外部硬件通信協(xié)議USB,SDIO/EMMC,PCIE等要熟悉,這些是調(diào)試和開發(fā)驅(qū)動的基礎(chǔ),如果涉及無線通信Wi-Fi,藍(lán)牙,可能要閱讀相關(guān)802.11協(xié)議和SIG協(xié)議. 以太網(wǎng)部分TCP/IP要熟悉.
嵌入式還有音頻系統(tǒng)也要調(diào)試,camera接口要會調(diào)試,LCD接口要會調(diào)試.
總的來說入門嵌入式對基礎(chǔ)知識要求很高,3-5年入門到基礎(chǔ)調(diào)試沒有問題. 但是如果要編寫Linux內(nèi)核驅(qū)動或是開發(fā)協(xié)議有關(guān)的驅(qū)動,這些需要5-10年的錘煉,對協(xié)議和內(nèi)核機(jī)制需要更深層次的理解.
如果只是做Linux應(yīng)用層開發(fā)來說,需要掌握的知識要淺一點,只要了解libC庫函數(shù)和內(nèi)核SYSCALL如何用即可,但是進(jìn)程間通信,線程操作,文件系統(tǒng)操作等必須融會貫通,這樣才能開發(fā)好應(yīng)用程序.
UI就是QT,基于安卓那叫APP開發(fā)了,不是嵌入式范疇. 但是安卓設(shè)備底層調(diào)試屬于潛入式開發(fā).
供參考
到此,以上就是小編對于的問題就介紹到這了,希望這3點解答對大家有用。
本文題目:實踐Linux驅(qū)動開發(fā)入門實踐:指引你走上成功之路(linux驅(qū)動開發(fā)入門)
轉(zhuǎn)載源于:http://m.5511xx.com/article/djspidh.html


咨詢
建站咨詢
