嵌入式linux書籍???
《鳥哥的Linux私房菜 基礎(chǔ)學(xué)習(xí)篇(第三版)》,鳥哥著
主要講解Linux一些命令,Linux的實際操作及Linux基礎(chǔ)理論。很適合Linux初學(xué)者學(xué)習(xí)。
《嵌入式 Linux 應(yīng)用開發(fā)完全手冊》,韋東山著
這本書綜合了常見的嵌入式開發(fā)經(jīng)驗技巧,以及常見的嵌入式系統(tǒng)應(yīng)用,系統(tǒng)移植,調(diào)試及異常處理等,內(nèi)容非常豐富,是中文 Linux 領(lǐng)域難得的一本好書。嵌入式處理器種類繁多,韋老師著重講了目前國內(nèi)最常用的ARM系統(tǒng),實用性很強(qiáng),是國內(nèi)嵌入式程序員不容錯過的一本工具書。
《UNIX環(huán)境高級編程》(第2版),史蒂文斯著
《UNIX環(huán)境高級編程》是 Unix/ Linux 程序員案頭必備的一本書籍??梢哉f,Linux 程序員如果沒有讀過這本書,就好像基督教徒?jīng)]有讀過圣經(jīng)一樣,是很難讓人理解的。這本書概括了 Linux 編程所需的一切理論框架、主要系統(tǒng)函數(shù)、多進(jìn)程編程、乃至 Linux 網(wǎng)絡(luò)通信。
《Linux設(shè)備驅(qū)動開發(fā)詳解:基于最新的Linux 4.0內(nèi)核》,宋寶華著
隨著通信、電子行業(yè)的迅速發(fā)展,全世界每天都會生產(chǎn)大量芯片,設(shè)計大量新電路板,也因此,會有大量設(shè)備驅(qū)動需要開發(fā)。本書主要對驅(qū)動編程所涉及Linux內(nèi)核最底層機(jī)理的講解。也是即Linux設(shè)備驅(qū)動開發(fā)詳解第二版暢銷后,作者又進(jìn)行第三版的編著。
《Linux 設(shè)備驅(qū)動程序》,科波特著
《LINUX設(shè)備驅(qū)動程序》就是網(wǎng)上說的“LDD”,經(jīng)典之作,必備書籍。國產(chǎn)經(jīng)典《Linux驅(qū)動詳細(xì)解》也是一本非常不錯的書,很實用,書中源代碼分析比較多,基于2440的,對linux外圍驅(qū)動有很全面的講解。
《深入理解 Linux 內(nèi)核》(第三版) ,博韋等著
學(xué)習(xí) Linux ,就要學(xué)習(xí) Linux 的精華。而 Linux 的精華,則在于 Linux 的內(nèi)核。本書以 Linux 2.6 版架構(gòu)為基礎(chǔ),分門別類地向初學(xué)者介紹了 Linux 內(nèi)核的架構(gòu)、編程思想、以及功能模塊。在本書的指導(dǎo)下學(xué)習(xí),對于你讀懂 Linux 操作系統(tǒng)的精華部分,會取得事半功倍的效果。
學(xué)習(xí)嵌入式Linux怎么應(yīng)用開發(fā)?
提供一下幾種方案
一、還按照《嵌入死linux應(yīng)用開發(fā)完全手冊》(韋東山)的內(nèi)容來,但是嵌入式linux的開發(fā)環(huán)境自己搭建。當(dāng)時我是按照《鳥哥的私房菜-基礎(chǔ)篇》和《鳥哥的私房菜-服務(wù)器篇》兩篇,整出一套開發(fā)平臺,CentOS5.3 + samba/vsftpd + gcc / linux-gcc 。 window平臺上的工具、secureCRT。 注意:我使用了四個月學(xué)會linux操作。不知道你是否會先學(xué)這兩本書,再學(xué)習(xí)韋東山老師的嵌入式呢。學(xué)完之后看似學(xué)習(xí)了很多,出來外面之后,我又去在windows平臺開發(fā),而且現(xiàn)在用C#。囧?,F(xiàn)在看什么嵌入式系統(tǒng)都非常快,很容易理解架構(gòu),如何實現(xiàn)??上ё约禾贻p,沒有資本和人脈,不然可以實現(xiàn)很多有意思的東西?,F(xiàn)在正在嘗試創(chuàng)業(yè)。
二、尋找開發(fā)板,而不是書籍作為實驗的途徑。書籍只是輔助,輔助你實現(xiàn)某種功能??梢约衛(wèi)inux書籍、嵌入式開發(fā)書籍、單片機(jī)開發(fā)、編程語言。宋寶華的嵌入式書籍。開發(fā)板當(dāng)時用的是飛凌的,由國嵌負(fù)責(zé)技術(shù)講解和培訓(xùn)。講了不少有用的東西。現(xiàn)在網(wǎng)上的開發(fā)板多,可以淘,但是不用太貴,作用不大。找前衛(wèi)的技術(shù)開發(fā),中國看似不行。前衛(wèi)老師都沒搞出什么東西,我們在基本是0基礎(chǔ)的前提下,很難實現(xiàn)比較前衛(wèi)的技術(shù)。打好基礎(chǔ),看似是唯一的選擇。
三、單獨找臺PC機(jī),直接安裝ubuntu11,買本ubuntu相關(guān)的書,他會交你怎樣安裝使用工具的。其實和第一種解決方式是一樣的,書是別人在五(六)年前寫的,不符合摩爾定理。所以沒辦法,我們在嵌入式方面的教育還是欠缺啊,出的書都少,記那么基本,還全是個人。沒有什么教育機(jī)構(gòu)。
希望以上對你有用。
嵌入式Linux系統(tǒng)開發(fā)模式
嵌入式系統(tǒng)通常為一個資源受限的系統(tǒng)。直接在嵌入式系統(tǒng)的硬件平臺上編寫軟件比較困難,有時甚至是不可能的。目前,一般采用的辦法是,先在通用計算機(jī)上編寫程序,然后,通過交叉編譯,生成目標(biāo)平臺上可運行的二進(jìn)制代碼格式,最后下載到目標(biāo)平臺上的特定位置上運行,下面就由福州卓躍教育做具體步驟介紹?!?br> 第一步,建立嵌入式Linux應(yīng)用開發(fā)環(huán)境。目前,常用的交叉開發(fā)環(huán)境主要有開放和商業(yè)兩種類型。開放的交叉開發(fā)環(huán)境的典型代表是GNU工具鏈,目前已經(jīng)能夠支持x86、ARM、MIPS、PowerPC等多種處理器。商業(yè)的交叉開發(fā)環(huán)境主要有 、ARM Software Toolkit、SDS Cross compiler、WindRiver Tornado、Microsoft Embedded Visual C++等。交叉開發(fā)環(huán)境是指編譯、鏈接和調(diào)試嵌入式應(yīng)用軟件的環(huán)境。它與運行嵌入式應(yīng)用軟件的環(huán)境有所不同,通常采用宿主機(jī)/目標(biāo)機(jī)模式。
第二步,交叉編譯和鏈接。在完成嵌入式軟件的編碼之后,就是進(jìn)行編譯和鏈接,以生成可執(zhí)行代碼。由于開發(fā)過程大多是在Intel公司x86系列CPU的通用計算機(jī)上進(jìn)行的,而目標(biāo)環(huán)境的處理器芯片卻大多為ARM、MIPS、PowerPC、等系列的微處理器,這就要求在建立好的交叉開發(fā)環(huán)境中進(jìn)行交叉編譯和鏈接。
第三步,交叉調(diào)試。
①硬件調(diào)試。如果不采用在線仿真器,可以讓CPU直接在其內(nèi)部實現(xiàn)調(diào)試功能,并通過在開發(fā)板上引出的調(diào)試端口,發(fā)送調(diào)試命令和接收調(diào)試信息,完成調(diào)試過程。目前,Motorola公司提供的開發(fā)板上使用的是DBM調(diào)試端口,而ARM公司提供的開發(fā)板上使用的則是JTAG調(diào)試端口。使用合適的軟件工具與這些調(diào)試端口進(jìn)行連接,可以獲得與ICE類似的調(diào)試效果。
②軟件調(diào)試。在嵌入式Linux應(yīng)用開發(fā)系統(tǒng)中,Linux系統(tǒng)內(nèi)核調(diào)試,可以先在Linux內(nèi)核中設(shè)置一個調(diào)試樁(debug stub),用作調(diào)試過程中和宿主機(jī)之間的通信服務(wù)器。然后,可以在宿主機(jī)中通過調(diào)試器的串口與調(diào)試樁進(jìn)行通信,并通過調(diào)試器控制目標(biāo)機(jī)上Linux內(nèi)核的運行。
如何學(xué)習(xí)嵌入式Linux驅(qū)動
學(xué)習(xí)嵌入式Linux驅(qū)動,首先我們需要的是去了解整個嵌入式開發(fā)的整個流程分為四個層次:底層硬件設(shè)計、嵌入式驅(qū)動開發(fā)、內(nèi)核開發(fā)、應(yīng)用層開發(fā)。其中底層硬件設(shè)計必須要有一定的硬件功底,我建議你若不是科班出身(數(shù)電、模電、高頻學(xué)的比較好)的人不要去考慮。內(nèi)核開發(fā)需要你有很好的軟件功底(C語言、C++學(xué)的很好,有過一定的項目經(jīng)驗最好),這個事嵌入式驅(qū)動開發(fā)的人以后可以考慮發(fā)展的方向,不建議一開始就學(xué)。如果你是面臨著急需找工作的人并且你有一定的商業(yè)頭腦、創(chuàng)新思維,我認(rèn)為學(xué)習(xí)應(yīng)用層開發(fā)是最好不過的選擇,但是你別忘了因為簡單容易學(xué)所以學(xué)的人比較多。如果你把前面三個選擇都否定了,而且你C語言學(xué)的還可以,有學(xué)過C51或者STM32這些簡單的東西,你不妨看下去。如果你覺得這些對你沒用或者不感興趣,請就此打住不要再往下看不要再浪費你的時間了。親,去做你該做的事吧!
一、入門者:了解嵌入式
了解嵌入式開發(fā)我覺得最好的東西還是《嵌入式系統(tǒng)設(shè)計師教程》,這本書寫的很爛,無非是用來應(yīng)付考試的。但是我認(rèn)為對我們了解嵌入式開發(fā)需要學(xué)習(xí)些什么東西還是有一點用處的,可以在網(wǎng)上瀏覽一下,你就可以知道嵌入式大概要學(xué)的東西,不建議精讀。另外如果想大致了解一下嵌入式開發(fā)的四個層次,可以看下韋東山韋老師的《作為一個新人,怎樣學(xué)習(xí)嵌入式Linux》 Linux等操作,但是我們一般選擇Linux。原因有二:Linux代碼開源,可供學(xué)習(xí)免費使用。Linux學(xué)習(xí)的資料非常多,很容易找到小伙伴。學(xué)習(xí)嵌入式Linux驅(qū)動,就必須先學(xué)習(xí)使用Linux。但是我們對于Linux的使用其實不必學(xué)的太多,多了反而會在這浪費的時間。像大家都說可以的《鳥哥的linux私房菜》我不建議大家讀,我認(rèn)為像《Linux就該這么學(xué)》這樣范范而談的書籍反而更適合我們初學(xué)者。我們對Linux的定位是:基本命令會用,不懂再查。
自行查看。開發(fā)板的話我覺得可以自行選擇,最好選擇S3c2440或者S3c2410的芯片,因為ARM9的資料最多,隨便上網(wǎng)搜就是一大把。
四、大神們:研究Linux
毛德操/ 胡希明寫的《Linux內(nèi)核源代碼情景分析》、 趙炯《Linux內(nèi)核完全注釋》、《unix環(huán)境高級編程》還有更多的可以去看一看瞧一瞧了,我相信你學(xué)到這里就可以自找出路了,我也目前在前面階段,以后把這些學(xué)習(xí)完再做補(bǔ)充了。
我相信能夠?qū)W習(xí)嵌入式Linux驅(qū)動的人都能夠知道有好的學(xué)習(xí)資料學(xué)習(xí)能夠事半功倍的,本人也是學(xué)習(xí)驅(qū)動的菜鳥,歷經(jīng)了學(xué)習(xí)的滄桑,今天在這里分享一下自己學(xué)習(xí)嵌入式Linux驅(qū)動過程中自認(rèn)為好的資料,不好請勿噴。有興趣的可以轉(zhuǎn)載分享給你的朋友。以后有時間我會整理我在學(xué)習(xí)過程中的東西,加我關(guān)注以后一起學(xué)習(xí)叫流。