目前嵌入式主要開發環境有 Linux、Wince等;Linux因其開源、開發操作便利而被廣泛採用。而Linux操作系統也只是一個簡單的操作系統,簡單的使用對於嵌入式開發人 員來說價值並不很高,真正有價值的是掌握Linux的基本服務和Linux的設計理念、思想,這對於嵌入式開發人員的長期發展是很極其重要的。Linux 系統有很多發行版,RedHat、Ubuntu、Fedora等。作爲嵌入式開發人員,我們沒有必要把精力放到使用哪個Linux發行版上,而是儘快把 Linux系統儘快安裝好。如果打算堅持長期學習,那麼建議您把自己的電腦做成雙系統,而不要在虛擬機上安裝。
Ubuntu系統下載地址:http://www.ubuntu.org.cn/
如 果說C語言相當於文字,那麼數據結構就相當於在造句、寫文章。代碼質量有一部分取決於對數據結構的掌握程度。在數據結構部分我們要把鏈表、樹、排序作 爲學習重點。而且我們也可以查看一些比較常見的函數(如strcopy、strcat、printf等)在內核中是如何實現的,以及編寫代碼模擬堆棧,這 不僅有利於編寫代碼質量的提高,而且還可以初步瞭解Linux內核精髓,爲今後工作打下堅實的基礎。
C++、QT在嵌入式開發領域,是用來開發圖形界面的,希望從事上層應用開發及圖形界面,那麼在C++、QT方面需要比較深入的學習。
1、學員成績管理系統2、計算器3、電子詞典4、文件壓縮器
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)經典書籍推薦:
1、串口監聽程序 2、圖片瀏覽器 3、MP3播放器 4、聊天程序 5、 ftp程序
6、音頻廣播程序 7、ping的實現 8、DDos攻擊程序 9、ARP攻擊程序
從這部分開始,我們將真正進入嵌入式開發學習階段。首先我們要知道採用哪種處理器。目前通用嵌入式處理器有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來編寫代碼,達到理解外圍設備工作原理和操作硬件的目的。
1) 嵌入式掃盲篇——十問嵌入式
1. ARM模擬器開發 2. Watchdog控制程序 3. RTC時鐘控制程序
4. Uart控制程序 5. LCD控制程序 6. 觸摸屏控制程序
7. DMA控制程序 8. 音頻控制程序 9. 網卡控制程序
10. 文件系統製作 11. ARM-Linux移植
衆所周知嵌入式開發包含至少兩個級別,一個是嵌入式內核驅動級別,另外一個是嵌入式應用層開發,而薪酬高的、最具價值的無疑是嵌入式內核驅動級別的開發 者。真正的嵌入式高手或者企業中的核心開發人員,一定是嵌入式底層的內核驅動開發工程師,這些工程師成長比較緩慢,造成對內核驅動人才的大量需求,所以這 些人才是真正企業需要的香餑餑。掌握驅動開發會讓自己的核心能力有極大的飛躍,真正實現嵌入式最有價值的就業。
由於Linux內核更新速度很快,書籍和視頻不可能及時更新,所以我們再看書和視頻後,要自己動手下載內核源碼包,去看內核中的代碼,在這裏可以充分檢驗 C語言、數據結構等基礎知識的掌握程度。而驅動的編寫還是要藉助外設硬件電路原理圖和芯片手冊。內核和驅動的知識是讓我們根據不同的硬件,編寫對應的驅 動、合理剪裁內核、製作文件系統,並移植到硬件開發板上。如果手裏有ARM11 6410及以上的開發板,可以試試在裸板上編寫驅動並移植Android系統到開發板上吧。
1. GPIO驅動 2. RTC時鐘驅動 3. WatchDog驅動 4. Udev移植 5. 觸摸屏輸入設備驅動
6. LCD顯示設備驅動 7. DMA驅動 8. 音頻設備驅動 9. Nand Flash塊設備驅動 10. 網絡設備驅動
目前嵌入式主要開發環境有 Linux、Wince等;Linux因其開源、開發操作便利而被廣泛採用。而Linux操作系統也只是一個簡單的操作系統,簡單的使用對於嵌入式開發人 員來說價值並不很高,真正有價值的是掌握Linux的基本服務和Linux的設計理念、思想,這對於嵌入式開發人員的長期發展是很極其重要的。Linux 系統有很多發行版,RedHat、Ubuntu、Fedora等。作爲嵌入式開發人員,我們沒有必要把精力放到使用哪個Linux發行版上,而是儘快把 Linux系統儘快安裝好。如果打算堅持長期學習,那麼建議您把自己的電腦做成雙系統,而不要在虛擬機上安裝。
Ubuntu系統下載地址:http://www.ubuntu.org.cn/
如 果說C語言相當於文字,那麼數據結構就相當於在造句、寫文章。代碼質量有一部分取決於對數據結構的掌握程度。在數據結構部分我們要把鏈表、樹、排序作 爲學習重點。而且我們也可以查看一些比較常見的函數(如strcopy、strcat、printf等)在內核中是如何實現的,以及編寫代碼模擬堆棧,這 不僅有利於編寫代碼質量的提高,而且還可以初步瞭解Linux內核精髓,爲今後工作打下堅實的基礎。
C++、QT在嵌入式開發領域,是用來開發圖形界面的,希望從事上層應用開發及圖形界面,那麼在C++、QT方面需要比較深入的學習。
1、學員成績管理系統2、計算器3、電子詞典4、文件壓縮器
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)經典書籍推薦:
1、串口監聽程序 2、圖片瀏覽器 3、MP3播放器 4、聊天程序 5、 ftp程序
6、音頻廣播程序 7、ping的實現 8、DDos攻擊程序 9、ARP攻擊程序
從這部分開始,我們將真正進入嵌入式開發學習階段。首先我們要知道採用哪種處理器。目前通用嵌入式處理器有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來編寫代碼,達到理解外圍設備工作原理和操作硬件的目的。
1) 嵌入式掃盲篇——十問嵌入式
1. ARM模擬器開發 2. Watchdog控制程序 3. RTC時鐘控制程序
4. Uart控制程序 5. LCD控制程序 6. 觸摸屏控制程序
7. DMA控制程序 8. 音頻控制程序 9. 網卡控制程序
10. 文件系統製作 11. ARM-Linux移植
衆所周知嵌入式開發包含至少兩個級別,一個是嵌入式內核驅動級別,另外一個是嵌入式應用層開發,而薪酬高的、最具價值的無疑是嵌入式內核驅動級別的開發 者。真正的嵌入式高手或者企業中的核心開發人員,一定是嵌入式底層的內核驅動開發工程師,這些工程師成長比較緩慢,造成對內核驅動人才的大量需求,所以這 些人才是真正企業需要的香餑餑。掌握驅動開發會讓自己的核心能力有極大的飛躍,真正實現嵌入式最有價值的就業。
由於Linux內核更新速度很快,書籍和視頻不可能及時更新,所以我們再看書和視頻後,要自己動手下載內核源碼包,去看內核中的代碼,在這裏可以充分檢驗 C語言、數據結構等基礎知識的掌握程度。而驅動的編寫還是要藉助外設硬件電路原理圖和芯片手冊。內核和驅動的知識是讓我們根據不同的硬件,編寫對應的驅 動、合理剪裁內核、製作文件系統,並移植到硬件開發板上。如果手裏有ARM11 6410及以上的開發板,可以試試在裸板上編寫驅動並移植Android系統到開發板上吧。
1. GPIO驅動 2. RTC時鐘驅動 3. WatchDog驅動 4. Udev移植 5. 觸摸屏輸入設備驅動
6. LCD顯示設備驅動 7. DMA驅動 8. 音頻設備驅動 9. Nand Flash塊設備驅動 10. 網絡設備驅動