linuxarm驅動開發
1. 嵌入式linux驅動程序開發學習路線
關於這個方向,我認為大概分3個階段:
1、嵌入式linux上層應用,包括QT的GUI開發
2、嵌入式linux系統開發
3、嵌入式linux驅動開發
嵌入式目前主要面向的幾個操作系統是,LINUX,WINCE、VxWorks等等
Linux是開源免費的,而且其源代碼是開放的,更加適合我們學習嵌入式。
所以你可以嘗試以下路線:
(1)C語言是所有編程語言中的強者,單片機、DSP、類似ARM的種種晶元的編程都可以用C語言搞定)神數,因此必須非常熟練的掌握。
推薦書籍:《TheCProgrammingLanguage》這本經典的教材是老外寫的,也有中譯版本。
(2)操作系統原理,是必需的,如果你是計算機專業畢業那也就無所謂了,如果是非計算機專業的就必須找一本比較淺顯的計算機原理書籍看一看,把啥叫「進程」「線程」「系統調度」等等基本問題搞清楚。
(3)Linux操作系統就是用C語言編寫的,所以你也應該先學習下Linux方面的編程,只有你會應用了,才能近一步去了解其內核的精髓。
推薦書籍:《UNIX環境高級編程》(第2版)
(4)了解ARM的架構,原理,以及其匯編指令,我們在嵌入式開發中,一般很少去寫匯編,但是最起碼的要求是能夠看懂arm匯編。
(5)系統移植的時候,就需要你從最下層的bootloader開始,然後內核移植,文件系統移植等。而移植這部分對硬體的依賴是非常大的,其配置步驟也相對復雜,也沒有太多詳細資料。
(6)驅動開發
linux驅動程序設計既是個極富有挑戰性的領域,又是一個博大精深的內容。
linux驅動程序設計本質是屬於linux內核編程范疇的,因而是對linux內核和內核編程是有要求的。在學習前你要想了解linux內核的組成,因為每一部分要詳細研究的話足夠可以擴展成一本厚書。
以上只不過是大概的框架,在實際的開發中還會涉及很多東西,比如:交叉編譯、makefile、shell腳本等等,所以說學習嵌入式的周期較長,門檻較高,自學的話更是需要較強的學習能力和專業功底。只要能堅持下來一定會取得成功!
嵌入式非常難,看書的話比較晦澀難懂,不容易入門,我個人比較偏向於看視頻教程,因為有老師帶著比較容易入門。給看看一篇文章是關於一位專科生怎麼自學嵌入式的。
做個自我介紹,我07年考上一所很爛專科民辦的學校,學的是生物專業,具體的學校名稱我就不說出來獻丑了。09年我就輟學了,我在那樣的學校,一年學費要1萬多,但是根本沒有人學習,我實在看不到希望,我就退學了。
退學後我也迷茫,大專都沒有畢業,我真的不知道我能幹什麼,我在糾結著我能做什麼。所以輟學後我一段時間,我想去找工作,因為我比較沉默寡言,不是很會說話,我不適合去應聘做業務。我想應聘做技術的,可是處處碰壁。
一次偶然的機會,我才聽到嵌入式這個行業。那天我去新華書店,在計算機分類那邊想找本書學習。後來有個女孩子走過來,問我是不是讀計算機的,有沒有興趣學習嵌入式,然後給我介紹了一下嵌入式現在的火熱情況,告訴我學嵌入式多麼的有前景,給我了一份傳單,嵌入式培訓的廣告。聽了她的介紹,我心裡癢癢的,確實我很想去學會一門自己的技術,靠自己的雙手吃飯。
回家後,我就上網查了下嵌入式,確實是當今比較熱門的行業,也是比較好找工作的,工資也是相對比較高。我就下決心想學嵌入式了。於是我去找嵌入式培訓的相關信息,說真的,我也很迷茫,我不知道培訓是否真的能像他們宣傳的那樣好,所以我就想了解一段時間再做打算。
後來,我在網路知道看到一篇讓我很鼓舞的游兆首文章,是一個嵌入式猜姿高手介紹沒有基礎的朋友怎麼自學入門學嵌入式,文章寫的很好,包含了如何學習,該怎麼學習。他提到一個方法就是看視頻,因為看書實在太枯燥和費解的,很多我們也看不懂。這點我真的很認同,我自己看書往往看不了幾頁。
我在想,為什麼別人都能自學成才,我也可以的!我要相信自己,所以我就想自學,如果實在學不會我再去培訓。
主意一定,我就去搜索嵌入式的視頻,雖然零星找到一些嵌入式的視頻,但是都不系統,我是想找一個能夠告訴我該怎麼學的視頻,一套從入門到精通的視頻,一個比較完整的資料,最好能有老師教,不懂可以請教的。
後來我又找到一份很好的視頻,是在IT學習聯盟網站推出的一份視頻《零基礎嵌入式就業班》(喜歡《零基礎嵌入式就業班》的可以復制sina.lt/qKh粘貼瀏覽器按回車鍵即打開)。裡面的教程還不錯,很完整,可以讓我從基礎的開始學起。視頻比較便宜。
下面介紹下我的學習流程,希望對和我一樣完全沒有基礎的朋友有所幫助。
收到他們寄過來的光碟後,我就開始學習了,由於我沒有什麼基礎,我就從最簡單的C語言視頻教程學起,話說簡單,其實我還是很多不懂的,我只好請教他們,他們還是很熱心的,都幫我解決了。C語言我差不多學了一個禮拜,接下來我就學了linux的基本命令,我在他們提供linux虛擬機上都有做練習,敲linux的基本命令,寫簡單的C語言代碼,差不多也就三個禮拜。我每天都在不停的寫一些簡單的代碼,這樣一月後我基本掌握了C和linux的基本操作。
接下來我就去學習了人家的視頻的培訓教程,是整套的,和去參加培訓沒有多大的區別,這一看就是兩個月,學習了ARM的基本原理,學習嵌入式系統的概念,也掌握了嵌入式的環境的一些搭建,對linux也有更深層次的理解了,明白了嵌入式應用到底是怎麼做的,但是驅動我只是有一點點的了解,這個相對難一點,我想以後再慢慢啃。
這兩個月,除了吃飯睡覺,我幾乎都在學習。因為我知道幾乎沒有基礎,比別人差勁,我只能堅持努力著,我不能放棄,我必要要靠自己來養活自己,必須學好這門技術,然後我就把不懂的問題總結記下來,這樣慢慢積累了一段時間,我發現自己真的有點入門了。
最後的一個月,我就去看關於實踐部分的內容,了解嵌入式項目具體的開發流程,需要什麼樣的知識,我就開始准備這方面的知識,也就是學習這方面的視頻,同時他們建議我去找了找一些嵌入式面試的題目,為自己以後找工作做准備。我就到網上找了很多嵌入式的題目,把他們理解的記下來,這樣差不多准備了20天左右
我覺得自己差不多入門了,會做一些簡單的東西了。我就想去找工作看看,於是我就到51job瘋狂的投簡歷,因為我學歷的問題,專科沒有畢業,說真的,大公司沒有人會要我,所以我投的都是民營的小公司,我希望自己的努力有所回報。沒有想過幾天過後,就有面試了,但是第一次面試我失敗了,雖然我自認為筆試很好,因為我之前做了准備,但是他們的要求比較嚴格,需要有一年的項目經驗,所以我沒有被選中。
後來陸續面試了幾家公司,終於功夫不負有心人。我終於面試上的,是在閔行的一家民營的企業,公司規模比較小,我的職務是嵌入式linux應用開發,做安防產品的應用的。我想我也比較幸運,經理很看重我的努力,就決定錄用我,開的工資是3500一個月,雖然我知道在上海3500隻能過溫飽的生活,但是我想我足夠了。我至少不用每天都要靠父母養,我自己也能養活自己的。我想只要我繼續努力,我工資一定會翻倍的。
把本文寫出來,希望能讓和我一樣的沒有基礎的朋友有信心,其實我們沒有必要自卑,我們不比別人笨,只要我們肯努力,我們一樣會成功。
2. 我想學嵌入式LINUX驅動開發,很糾結到底選ARM9,ARM11還是CORTEX-A8的開發板
首先我沒用過cortex-A8,不做討論。
我最開始學的是ARM7,然後用到arm9、arm11、cortex-M4。
1、arm9和arm11區別不大,只是性能上的提高,然後arm11增加了圖形處理的能力。
2、arm7都還不過時。外面找工作,我是剛好是應屆生,這個對我來說實際的經驗要求不高。但你用AR9\ARM11肯定不是過時的。
3、只要你學透了arm架構的任何一款處理器的驅動開發,上手其他arm架構估計不超過1天(8小時),因為驅動開發很多地方時相通的。驅動開發對硬體架構先不說,難度在於linux系統,尤其是內核。
4、你說對了,這是相當重要的一部分,如果這些都不熟悉,那麼對於這個arm架構你是沒有掌握的,尤其是驅動工程師!
從你問的問題來看,我不建議你使用cortexA8的處理器。A系列面向的是應用,如手持設備等,復雜度很高。
這兒建議你選用培訓機構使用過的板子,我推薦基於ARM11的OK6410板子。有培訓機構的配套資料,很多很全,遇到問題網上搜也能很快解決。樓上提到ARM9也是相當不錯的選擇,尤其是mini2440,LINUX內核直接支持。最近我有幾個同學也去華清遠見培訓,他們使用的是款A8處理器的板子。不過這個東西出來的學習資料很少,非常不適合你入手。除非你也去培訓,那是題外話,修行靠個人。
總的來說,不要糾結使用哪個處理器,他們都是相通的,先買一個板子來用起,那才是王道。對了,OK6410能跑android。
3. 我想學嵌入式LINUX驅動開發,很糾結到底選ARM9,ARM11還是CORTEX-A8的開發板
區別的地方很多,我不給你羅列了,這里只給你講一些關鍵的和我認為你想知道的,希望對薯鉛你有所幫助。
首先,你說的對,好一點的arm9是v5架構,而arm11是v6架構,架構上改變使得性能上有了很大的提高,特別是多媒體處理和低功耗方面,另外主頻也得到提高。a8的話毫無疑問最好的了,效率很高,而且相應的指令集也做了修改,當然難度也更高了。
感覺越說越多,還是直接回答你的問題吧
1、arm9和arm11差不多,arm9實驗化,arm11商業化,a8差別很大,指令集也不同,所以在編程上會有所不同,但只要掌握了一個,不會有太攔伍誇張的差別。
2、不過時,其實能用上a8
的公司不佔多數,絕大多數還是arm7、9、11,其中7還是主力簡手或軍
3、學透??那完全沒問題了,不過沒幾個人敢說學透。
4、對的,很重要。
4. linux移植到arm上後,接著驅動程序該如何開發
推薦
linux嵌入式教程視頻
42-如何編寫嵌入式Linux的設備驅動(一)
43-如何編寫嵌入式Linux的設備驅動(二)
44-如何編寫嵌入式Linux的設備驅動(三)
5. arm嵌入式linux系統開發詳解怎麼樣
嵌入式系統是目前最流行的計算機應用技碰橡術之一。《ARM嵌入式Linux系統開發詳解》由淺入深地講解基於ARM體系結構的嵌入式
Linux系統開發,內容包括嵌入式系統的基本概念、應用領域等基礎知識;ARM處理器的體系結構和功能特點;Linux系統內核結構和移植方法、
Bootloader功能和移笑並旁植;Linux應用程序開發,包括如何操作文件、管理內存、訪問串口、多線程和多進程技術,並且剖析了應用程序的結構和工作
流程;Linux系統設備驅動程序開發,包括如何編寫內核模塊、驅動程序分類和功能特點,並且給出了網路設備驅動、Flash設備驅動和USB設備驅動的
實例分析。
《ARM嵌入式Linux系統開發詳解》附帶1張DVD光碟,內容為專門為《ARM嵌入式Linux系統開發詳解》錄制的9小時視頻、《ARM嵌入式Linux系統開發詳解》涉及的源代碼、Ubuntu安裝光碟的鏡像文件和另外贈送的35小時Linux專題學習視頻。
《ARM嵌入式Linux系統開發詳解》適合廣大從事嵌入式Linux系統開發人員、對嵌入式Linux系統開發有興趣的計算蔽清機愛好者,以及大中專院校學生閱讀。
6. 如何配置Eclipse開發環境用來開發arm9-linux下的驅動程序
一、安裝JDK首先下載JDK5.0,並運行安裝,安裝過程中所有選項保持默認,最後配置JDK的環境變數:在「我的電腦」上點右鍵—>「屬性」—>「高級」—>「環境變數(N)」。新建系統變數JAVA_HOME:C:\ProgramFiles\Java\jdk1.5.0_06;新建系統變數CLASSPATH:.;%JAVA_HOME%\lib;(注意:點號表示當前目錄,不能省略)在系統變數Path的值的前面加入以下內容:%JAVA_HOME%\bin;(注意:這里的分號不能省略)到這里,JDK安裝完畢。下面方法我們測試一下JDK是否安裝成功:開始菜單--運行--CMD,在MS-DOS中輸入JAVA或JAVAC,此時可以看到很多參數的提示;注意:如果以後要安裝諸如Eclipse、BorlandJBuilder、JCreator、IntelliJIDEA等集成開發環境(IDE,),應該在IDE中編譯運行一個簡單的HelloWorld程序,以保證IDE可以識別出JDK的位置。二、安裝TomcatTomcat有安裝版和免安裝版兩種,我用的是安裝版,直接安裝後好像也不用進行環境變數的設置,所以也沒有進行這方面的設置,其實我也不是很清楚Tomcat究竟需不需要設置環境變數。下面是原文作者免安裝版本的安裝。首先下載jakarta-tomcat-5.0.30.zip,之所以下載免安裝版的好處是可以使用多個然後將jakarta-tomcat-5.0.30.zip直接解壓到D盤根目錄:最後配置Tomcat的環境變數:在「我的電腦」上點右鍵—>「屬性」—>「高級」—>「環境變數(N)」。新建系統變數CATALINA_HOME:D:\jakarta-tomcat-5.0.30在系統變數CLASSPATH的值的後面加入:%CATALINA_HOME%\common\lib;在系統變數Path的值中"%JAVA_HOME%\bin;"的後面加入以下內容:%CATALINA_HOME%\bin;到這里,Tomcat安裝完畢。進行完一、二兩步的設置以後,各系統變數的值如下:JAVA_HOME:C:\ProgramFiles\Java\jdk1.5.0_06CATALINA_HOME:D:\jakarta-tomcat-5.0.30CLASSPATH:.;%JAVA_HOME%\lib;%CATALINA_HOME%\common\lib;Path:%JAVA_HOME%\bin;%CATALINA_HOME%\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem三、安裝Eclipse首先下載eclipse-SDK-3.1.2-win32.zip然後將eclipse-SDK-3.1.2-win32.zip直接解壓到D盤根目錄:到這里,Eclipse安裝完畢。四、安裝MyEclipse首先下載EnterpriseWorkbenchInstaller_4.1.1GA_E3.1.exe,這里使用的是插件版本。然後安裝EnterpriseWorkbenchInstaller_4.1.1GA_E3.1.exe。安裝完畢之後,將MyEclipse安裝目錄下的features和plugins這2個目錄覆蓋到Eclipse的安裝目錄下。最後將剛才安裝的MyEclipse卸載。解釋一下上面這樣做的原因:因為MyEclipse是Eclipse的插件,所以只要把features和plugins這2個目錄覆蓋到Eclipse的安裝目錄,Eclipse就會自動認出這些插件。到這里,MyEclipse安裝完畢。五、破解MyEclipse運行MyEclipse4.1.1注冊機MyEclipseKeyGen.exe,選擇MyEclipse的版本號,輸入注冊名,生成序列號。運行eclipse.exe(首次運行要求指定Workspace),依次點擊Window---->Preferences---->MyEclipse---->Subscription---->EnterSubscription,輸入注冊名以及注冊機生成的注冊碼。到這里,MyEclipse破解完畢。六、指定Eclipse+MyEclipse的JRE和Tomcat伺服器1.設定Eclipse+MyEclipse的JRE一般情況下,Eclipse可以自動找到JRE,我們不用進行過多的設置。2.設定Eclipse+MyEclipse的Tomcat伺服器只需設置圖中所標注的兩處即可,圖中其餘部分是自動生成的。到這里,我們的Eclipse+MyEclipse開發環境就搭建完畢了!七、新建一個項目來測試一下Eclipse+MyEclipse開發環境是否搭建成功1.在Eclipse中依次點擊「File---->New---->Project」,在彈出的「NewProject」對話框中依次點擊「WebProject---->MyEclipse---->J2EEProjects---->WebProject」,再點「Next」,在「ProjectName」中輸入項目的名字「test」,最後點「Finish」。2.在Eclipse左邊PackageExplorer列表中點擊「test」,將項目test。右鍵點擊WebRoot---->New---->JSP,新建一個名為hello.jsp的JSP頁面。3.再用同樣的方法,新建一個叫hello_result.jsp的JSP文件4.deploy(部署)項目。點擊deploy按鈕(用紅線畫了的按鈕就是deploy按鈕),在彈出的窗口中點擊Add,部署test項目5.啟動Tomcat伺服器。6.項目test的運行結果:我們可以去Eclipse的Workspace目錄下看看test項目的代碼,也可以去Tomcat的webapps目錄下,看看部署之後的test項目的結構。