Linux? 開發路線:
使用 linux—〉linxu 系統編程開發---〉驅動開發和分析 linux 內核
開始學 linux 內核:最好有三件寶物:《深入理解 linux 內核》《LINUX內核源代碼情景分析》和源代碼。? 《深》是綱,《情》是目。最后深入代碼
Linux 內核原理:比較淺顯的《linux 內核設計與實現》;比較深入的《深入理解 linux 內核》;《Linux內核設計的藝術》
潛入時兩個要點:CPU和操作系統
進入Linux開發殿堂的兩個臺階:?
- 嵌入式基本C程序開發及調試方法?
- 基本驅動的概念和開發調試方法?
mount到開發板:(開發板可以多次mount多個宿主機的目錄)
假設宿主機的IP為192.168.1.12;在開發板上輸入以下命令,將宿主機器的根目錄mount到開發板上mnt目錄
mount -o nolock 192.168.1.12:/? /mnt
執行:
cd /mnt
./iSmartAlarm
ARMLINUX不同于uClinux,因為啟動了MMU,所以應用程序不能直接 讀寫物理地址(包括CPU寄存器<含GPIO端口、中斷等CPU內部資源>、 MEMORY、外設芯片內部寄存器等),而必須借助與驅動的形式,切入 內核用ioremap來實現對這些物理地址的訪問。
?
LINUX下的驅動有兩種形式:?
- MODULES形式的可動態加載的驅動(這是LINUX內核一個非常重要 的特點),我們測試用建議都用這種形式的,因為它調試就和普通應用程序一樣,可以通過NFS mount的方式來調試,非常方便。?
- 靜態編譯到內核里面的驅動