第一篇:1嵌入式linux學習書籍推薦
嵌入式Linux學習書籍推薦
C語言基礎
(最好具有單片機c語言基礎,能夠用c語言做一些單片機工程項目你能區分開指針數組和數組指針嗎?你知道函數指針嗎?你能區分開定義一個變量時系統給它分配的空間與用malloc()函數給一個變量分配的空間有什么不一樣嗎?)
1《C語言》第二版 譚浩強
2《實用C++程序設計》
3《C Primer Plus,5th Edition》Stephen Prata著
4《The C Programming Language》Brian W.Kernighan David M.Rithie(K & R)著
《數據結構》理論基礎(你能合上書本,用C語言實現書中的單鏈表、雙鏈表數據結構嗎?)
1《數據結構(C語言版)》 朱站立
2《算法導論》
3《計算機組織與體系結構/性能分析》
4《深入理解計算機系統》Randal E.Bryant David O'Hallaron著
5《操作系統:精髓與設計原理》
6《編譯原理》
7《數據通信與計算機網絡》
8《數據壓縮原理與應用》
Linux基礎
1《Linux命令詳解詞典》施威銘研究室
2《鳥哥的linux私房菜》
3《嵌入式Linux應用程序開發詳解》
4《國嵌視頻課件PPT 01-05全》
4《Linux與Unix Shell 編程指南》
5《GNU Make 使用手冊》
系統教程
1《嵌入式Linux應用開發完全手冊》韋山東
2《嵌入式系統―體系結構、編程與設計》
3《嵌入式系統―采用公開源代碼和StrongARM / Xscale處理器》毛德操 胡希明著
4《嵌入式ARM系統原理與實例開發》 楊宗德著
5《Building Embedded Linux Systems》
硬件基礎(最好先學好單片機,懂匯編和c語言推薦 銳志c51單片機,有單片機基礎后對嵌入式裸機開發更 清楚。)《十天教你學會單片機》 郭天翔
2《ARM體系結構與編程》杜春雷著
3《ARM微控制器基礎與實戰》周立功
4S3C2410 Datasheet
5S3C6410 Datasheet
UCOS!操作系統。(你能把uCOS!移植到自己的平臺上嗎?)
1《嵌入式實時操作系統uC/OS-!》第二版 召貝貝譯
Linux內核《Linux Kernel Development》 Robert Love中文版《Linux內核設計與實現》《深入理解Linux內核》(第三版)
3《Linux內核源代碼情景分析》毛德操 胡希明著
4《Linux內核完全注釋》
5《Understanding the Linux Kernel 》
6《Linux內核編程》
7《Advanced Programming in the UNIX Environment》《UNIX環境高級編程》
8《UNIX Network Programming》
9《TCP/IP詳解》
驅動方向
1《Linux device driver》中文版《Linux設備驅動開發》
2《Linux設備驅動開發詳解_宋寶華》
QT圖形界面編程
1《QT編程寶典》
你得有堅韌不拔之志和一顆平常之心!嵌入式門檻雖然較高,但也跟其他事物一樣,并不是牢不可破。只要我們用心去對待,東雪終將化去,春風定會吹來。你已學完嵌入式的整流程!但謹記:一個有思想的人才真是一個力量無邊的人;有容乃大,能予方強!
第二篇:學習嵌入式書籍推薦
十年研發經驗工程師的嵌入式學習書籍大推薦
從事嵌入式研發行業十年,認為學習就是要不斷的吸納知識,在研發過程中,經常會遇到一些問題,這種發現問題并解決問題的過程就是進步。為什么選擇學習嵌入式?
嵌入式系統無疑是當前最熱門最有發展前途的IT應用領域之一,同時也是當今IT領域僅存的幾個金領職位之一。當前的中國IT人才面臨嚴重的“后繼乏人”,而且這種缺口由于培訓缺乏、教育模式等原因造成的,而缺口最大的,就是高級IT人才。如果你從事的IT培訓不專業,面對競爭越來越激烈的職場,基本找不到 工作。據專家預測,嵌入式每年人才缺口在30萬左右。
嵌入式行業平均薪資分布
工欲善其事,必先利其器,除了推薦的書籍外,也推薦一下我用的開發板,我學習用的是飛凌的OK6410,感覺算是入門不錯的板子,剛剛看到他們官方微博貌似A8的210和ARM9的2416準備促銷呢,有50元的京東購物卡送,想入手的可以關注下。
ARM+Linux嵌入式底層內核驅動方向學習總體路線圖
附上ARM學習路徑圖,希望對學習者能有所啟發。
基礎學習Ⅰ---Linux入門
目前嵌入式主要開發環境有 Linux、Wince等;Linux因其開源、開發操作便利而被廣泛采用。而Linux操作系統也只是一個簡單的操作系統,簡單的使用對于嵌入式開發人 員來說價值并不很高,真正有價值的是掌握Linux的基本服務和Linux的設計理念、思想,這對于嵌入式開發人員的長期發展是很極其重要的。Linux 系統有很多發行版,RedHat、Ubuntu、Fedora等。作為嵌入式開發人員,我們沒有必要把精力放到使用哪個Linux發行版上,而是盡快把 Linux系統盡快安裝好。如果打算堅持長期學習,那么建議您把自己的電腦做成雙系統,而不要在虛擬機上安裝。Ubuntu系統下載地址:http://www.tmdps.cn/ A)經典書籍推薦:
B)經典學習視頻推薦:Linux操作系統入門 基礎學習Ⅱ---C語言
C語言是嵌入式開發必備的基礎知識。在Linux下從事C語言的開發,你會覺得更為順暢、更為自然,因為C語言是因unix的出現而誕生的,Linux內 核幾乎完全是由C語言編寫完成的。學習C語言,如果不會用指針,那么就稱不上會C語言。做嵌入式開發指針更顯得尤為重要,所以做嵌入式開發除了掌握位操 作、限定詞等,對指針的掌握是不可或缺的。而且要掌握多級指針、函數指針等等。涉及到指針,那么就會講到內存分配。在大學中,學習C語言一般的學習很少講 到內存分配,但是如果期望從事嵌入式開發,那么就必須懂得C語言是怎么做內存分配管理的。指針之外,還要學習模塊化編譯處理、指針與數組、gcc、Makefile、GDB、遞歸、結構體、宏定義使用等。C語言是整棟嵌入式大廈的基礎,所以在學習嵌入式時,必須把C語言重視起來,多敲代碼,多練。一名優秀的程序員必定是通過“體力勞動”再轉向“腦力勞動的”,這也是為什么我們要有“寫不出代碼=0”思想的原因所在。
如 果說C語言相當于文字,那么數據結構就相當于在造句、寫文章。代碼質量有一部分取決于對數據結構的掌握程度。在數據結構部分我們要把鏈表、樹、排序作 為學習重點。而且我們也可以查看一些比較常見的函數(如strcopy、strcat、printf等)在內核中是如何實現的,以及編寫代碼模擬堆棧,這 不僅有利于編寫代碼質量的提高,而且還可以初步了解Linux內核精髓,為今后工作打下堅實的基礎。
C++、QT在嵌入式開發領域,是用來開發圖形界面的,希望從事上層應用開發及圖形界面,那么在C++、QT方面需要比較深入的學習。A)經典書籍推薦:
B)經典學習視頻推薦:C語言入門 C)經典學習案例:
1、學員成績管理系統
2、計算器
3、電子詞典
4、文件壓縮器 基礎進階---Linux應用程序設計
Linux的思想源于Unix。Linux繼承了Unix的優點,但 是沒有用UNIX的代碼,所有程序都是重新編寫的,而且Linux與Unix的源碼級兼容。Linux是類Unix操作系統。Linux 不僅符合 POSIX 標準,而且還包括其它 UNIX 標準的多種特性,例如,UNIX 的 System V 接口文檔(System V Interface Document,SVID)和伯克利軟件發布(Berkeley Software Distribution,BSD)版本。Linux 采用了折衷的策略,包含了 UNIX 幾個典型特性當中最實用的一些功能: Linux 采用了 SVR4 的進程間通信(IPC)機制:共享內存、消息隊列、信號。Linux 支持 BSD Socket 網絡編程接口。
許多 Linux 發行版采用 SysV init 機制,支持運行級別。
此階段的學習是從事嵌入式上層應用開發以及底層開發人員的必修課程。進程、線程、信號、文件鎖、socket是這部分內容的重點。要把這些內容學的透徹非 要下些苦功夫不可。而且函數是系統提供給我們的,難免要對計算機系統深入理解一番。TCP/IP協議也是要涉及到的。有問題建議用Google搜索及登陸 chinaunix論壇。通過這個階段的學習,我們就可以初步實現一些應用程序的開發了,如做自己的shell命令解析器、簡單的聊天軟件、視頻多播等。
A)經典書籍推薦:
B)經典學習視頻推薦:Linux環境高級編程 C)經典學習案例:
1、串口監聽程序
2、圖片瀏覽器
3、MP3播放器
4、聊天程序
5、ftp程序
6、音頻廣播程序
7、ping的實現
8、DDos攻擊程序
9、ARP攻擊程序 嵌入式入門---ARM體系結構
從這部分開始,我們將真正進入嵌入式開發學習階段。首先我們要知道采用哪種處理器。目前通用嵌入式處理器有ARM、MIPS、PowerPC、X86等。從市場產品占有率上看,ARM處理器遠遠領先于同類其它處理器,并逐步掠奪傳統51單片機和英特爾市場份額。據招聘網站統計,目前用人單位在技術水平上要 求開發人員掌握ARM9及以上平臺的開發技術。ARM公司在發布ARM11產品后,更改以往的數字標記更新方式,轉為發布ARM Cortex。但是Cortex并不是更高端,而是全新系列的處理器,比如Cortex M3,它主要應用于機械加工、工控領域,目的是取代以前的ARM7處理器。
在開始學習前,建議有一塊自己的開發板,目前ARM9 2440的開發板價格在400-600元之間,ARM11 6410的開發板價格要高一些,最便宜的也要1200元以上。在此,提醒大家盡量不要買mini開發板,雖然mini開發板的價格要便宜些,但是與正常開 發板相比,mini板功能是不完善的。嵌入式匯編有別于X86匯編,所以如果以前沒有接觸過匯編語言,那么沒有必要先去學X86匯編再學嵌入式匯編,可以 直接學習嵌入式匯編。除了匯編我們還要學習ARM指令集。有了開發板,我們要下載相對應處理器的DataSheet及開發板電路原理圖。ARM體系結構的 學習我們是不能完全照抄別人代碼的,因為我們自己手中的開發板及處理器與別人是不同的,除非所用的代碼是根據你手中的開發板來編寫的。所以,我們要先去看 書、看視頻資料理解原理及工作方式等,然后根據自己開發板的電路原理圖和DataSheet來編寫代碼,達到理解外圍設備工作原理和操作硬件的目的。
B)經典學習視頻推薦:
1)嵌入式掃盲篇——十問嵌入式 2)ARM體系結構與Bootloader開發 3)嵌入式ARM Linux開發——ARM匯編 C)經典學習案例:
1.ARM模擬器開發 2.Watchdog控制程序 3.RTC時鐘控制程序
4.Uart控制程序 5.LCD控制程序 6.觸摸屏控制程序 7.DMA控制程序 8.音頻控制程序 9.網卡控制程序 10.文件系統制作 11.ARM-Linux移植 嵌入式提升---Linux內核、驅動
眾所周知嵌入式開發包含至少兩個級別,一個是嵌入式內核驅動級別,另外一個是嵌入式應用層開發,而薪酬高的、最具價值的無疑是嵌入式內核驅動級別的開發 者。真正的嵌入式高手或者企業中的核心開發人員,一定是嵌入式底層的內核驅動開發工程師,這些工程師成長比較緩慢,造成對內核驅動人才的大量需求,所以這 些人才是真正企業需要的香餑餑。掌握驅動開發會讓自己的核心能力有極大的飛躍,真正實現嵌入式最有價值的就業。
由于Linux內核更新速度很快,書籍和視頻不可能及時更新,所以我們再看書和視頻后,要自己動手下載內核源碼包,去看內核中的代碼,在這里可以充分檢驗 C語言、數據結構等基礎知識的掌握程度。而驅動的編寫還是要借助外設硬件電路原理圖和芯片手冊。內核和驅動的知識是讓我們根據不同的硬件,編寫對應的驅 動、合理剪裁內核、制作文件系統,并移植到硬件開發板上。如果手里有ARM11 6410及以上的開發板,可以試試在裸板上編寫驅動并移植Android系統到開發板上吧。
B)經典學習案例:
1.GPIO驅動 2.RTC時鐘驅動 3.WatchDog驅動 4.Udev移植 5.觸摸屏輸入設備驅動 6.LCD顯示設備驅動 7.DMA驅動 8.音頻設備驅動 9.Nand Flash塊設備驅動 10.網絡設備驅動 硬件工程師的書籍(等等)
第三篇:嵌入式linu學習心得
嵌入式Linux學習心得
1、Linux命令
ls:查看目錄-l以列表方式查看;ls –l 與ll的功能一樣 pwd: 查看當前的目錄
cd:改變當前操作目錄cd /直接跳到根目錄 cd..回到上一級目錄 cat: 打印顯示當前文件的內容信息
mkdir:創建目錄
fdisk: 查看硬盤分區信息,-l以列表方式查看
->代表是鏈接文件,類似window下的快捷方式。
cp: 復制命令,例子cp 文件名 /home/dir/
mv: 移動或改名,如mv sonf.confsonf.txt(改名)移動:mv sonf.conf / rm:刪除命令,如rm –f test.c;如刪除目錄rm –fr d
man:查看某個命令的幫助,man 命令
2、各系統目錄的功能
drw—r—w--:d代表是目錄,drw代表當前用戶的權限,r代表組用戶的權限,w代表其它用戶的權限。x代表有執行權限。
/boot/gruff.conf: 啟動引導程序
/dev:brw—rw--:b代表是塊設備。Linux設備有三種,塊設備(b開頭)、字符設備(c開頭)、網絡設備。had代表第一個硬盤,hdb代表第二個硬盤。Hdb2代表第二塊硬盤的第二個分區。3,67代表主設備為3,從設備為67./etc:存放的是系統的配置文件。Inittab文件存放不同啟動方式下必須啟動的進程。Inittab文件中有6個啟動level,wait中對應著6個level的目錄,respawn代表當一個進程被意外終止了,但會自動啟動的進程,如守護進程。rc.d目錄中存放了一個rc.sysinit文件,里面存放系統初始化配置信息。/etc還有一個vsftpd里面存放tcp、ftp的配置。
/home : 用戶目錄,存放用戶的文件,/lib:存放庫文件,后綴為so的文件代表動態鏈接庫。
/lost+found:系統意外終止,存放一些可以找回的文件。
/mnt:掛載外部設備,如掛載光驅:mount –t /dev/cdrom/mnt/cdrom,如
果在雙系統中,要查看windows中D盤的文件,首先應該將D盤的文件映射過來,mount –t /dev/hda2/mnt/windows/d
/opt:用戶安裝的應用程序
/proc:是系統運行的映射,比較重要。里面的文件數字代表進程號。每個進程號目錄下包含進程的基本信息。還有其他信息,如cpuinfo等,內核支持的文件系統filesystem等。系統支持的中斷interrupts,iomen代表內存分配情況。ioport存放IO端口號。還有分區信息,modole信息,狀態信息,版本信息
對于Linux的設備驅動程序,有兩種加載模式,一種是直接加載進linux內核,一種是以模塊的方式加載到內核。
/sbin: 系統管理的一些工具。如poweroff關機工具。
/usr: 安裝系統時很多文件放在此目錄下面,包含一些更新等,include包含的頭文件,lib 是Linux的庫文件,src包含Linux2.4的內核源碼
/var:存放是臨時變量
3、
第四篇:學習嵌入式Linux開發有哪些好的書籍?
很多的嵌入式Linux新手,對自己的學習過程十分迷茫,不知道從何學習?學習過程中需要看哪些相關書籍?接下來就為嵌入式Linux新手們推薦一些關于嵌入式Linux學習的核心書籍:
Linux基礎
1、《Linux與Unix Shell 編程指南》
C語言基礎
1、《C Primer Plus,5th Edition》【美】Stephen Prata著
2、《The C Programming Language, 2nd Edition》【美】Brian W.Kernighan David M.Rithie(K & R)著
3、《Advanced Programming in the UNIX Environment,2nd Edition》(APUE)
4、《嵌入式Linux應用程序開發詳解》
Linux內核
1、《深入理解Linux內核》(第三版)
2、《Linux內核源代碼情景分析》毛德操 胡希明著
研發方向
1、《UNIX Network Programming》(UNP)
2、《TCP/IP詳解》
3、《Linux內核編程》
4、《Linux設備驅動開發》(LDD)
硬件基礎
1、《ARM體系結構與編程》杜春雷著
2、S3C2410 Datasheet
英語基礎
1、《計算機與通信專業英語》
系統教程
1、《嵌入式系統――體系結構、編程與設計》
2、《嵌入式系統――采用公開源代碼和StrongARM/Xscale處理器》毛德操 胡希明著
3、《Building Embedded Linux Systems》
理論基礎
1、《算法導論》
2、《數據結構(C語言版)》
3、《計算機組織與體系結構?性能分析》
4、《深入理解計算機系統》【美】Randal E.Bryant David O"Hallaron著
5、《操作系統:精髓與設計原理》
6、《編譯原理》
7、《數據通信與計算機網絡》
8、《數據壓縮原理與應用》
由于嵌入式行業入門門檻比較高的,大家=在學習之前要有充分的心里準備,進培訓機構學習也是十分有必要的。
第五篇:嵌入式學習路線
語言基礎 1.C 與 C++ A.《c reference》 B.《c++ 編程思想》 C.《effective c++》 D.《more effective c++》 E.《effective c++ stl》 2.軟件設計 A.《UML 2.0 Reference》 B.《設計模式-可復用的面向對象軟件的基礎》 C.《重構》 D.《修改代碼的藝術》 E.《面向模式的軟件體系結構》卷 1,卷 2,卷 3,卷 4,卷 5 3.Linux 開發基礎 A.《鳥哥的 linux 私房菜》 B.《GNU make reference》 C.《Shell 編程》 D.《unix 高級環境編程》 E.《linux kernel development》 F.《深入理解 Linux 內核》 G.《Linux 驅動程序開發》 H.《Unix 網絡編程》 I.《Linux 進程間通信》 4.嵌入式開發基礎 A.《ARM 體系結構》 B.《ARM 程序分析與設計》 C.《ARM 嵌入式系統基礎教材》周立功 D.《嵌入式操作系統μC/OS》 E.《嵌入式 Linux 基礎教材》 F.《嵌入式系統設計》 G.《嵌入式硬件設計》 H.《Qt4 圖形設計與嵌入式系統開發》 I.《嵌入式系統中的實時概念》 J.《實時設計模式》 5.專業選看 A.FPGA 設計 B.《高性能嵌入式計算》 C.數字圖像處理,視頻編解碼基礎 MPEG4,H.264,AVS D.Android,iphone,symbian 開發。