在嵌入式開發中,通常要製做內核映像和文件系統,同時須將可執行程序放置到文件系統中,並配置好相應的環境變。最後將內核和文件系統一塊兒燒寫到開發板上。linux
嵌入式系統的概念:編程
以應用爲中心,以計算機技術爲基礎,且軟硬件可裁減,適應應用系統對功能、可靠性、成本、體積、功耗有嚴格要求的專用計算機系統。網絡
嵌入式系統與普通PC機的對比:工具
軟件上的對比:spa
名稱操作系統 |
嵌入式系統調試 |
PCblog |
引導代碼接口 |
Bootloader引導,針對不一樣電路進行移植內存 |
主板的BIOS引導,無須改動 |
操做系統 |
Linux、WinCE、VxWorks等,須要移植 |
Windows、Linux等,無需移植 |
驅動程序 |
每一個設備驅動針對電路板進行開發或移植,通常不能直接下載使用 |
操做系統含有大多數驅動程序,或下載直接使用 |
開發環境 |
交叉編譯 |
本機編譯 |
仿真器 |
須要 |
不須要 |
協議棧 |
須要移植 |
操做系統或第三方提供 |
硬件上的對比:
設備名稱 |
嵌入式系統 |
PC |
CPU |
嵌入式處理器(ARM,MIPS,Score+) |
CPU(Intel、AMD等) |
內存 |
SDRAM芯片 |
SDRAM或DDR內存條 |
存儲設備 |
Flash芯片 |
硬盤 |
輸入設備 |
觸摸屏,按鍵 |
鼠標、鍵盤、麥克等 |
輸出設備 |
LCD |
顯示器 |
接口 |
MAX232等芯片 |
主板集成 |
其它設備 |
音頻芯片、USB芯片、網卡芯片等 |
主板集成或外接卡 |
嵌入式系統的開機順序:
Bootloader----kernel----rootfs
PC機的開機順序:
BIOS----GRUB---kernel----rootfs
嵌入式系統的開發流程:
一、 開發目標硬件系統
選擇微處理器、Flash等。
二、 創建交叉開發環境
安裝交叉編譯工具鏈(如arm-linux-gcc)、設置好環境變量、配置串口通訊工具(如超級終端、SecureCRT等)、配置網絡通訊工具(如NFS)等
三、 開發Bootloader:
移植Bootloader,如vivi
四、 移植Linux內核
如Linux2.4.18內核的移植
五、 開發根文件系統
如cramfs文件系統的製做
六、 開發相關的硬件驅動程序
如LCD、網卡、GPIO等
七、 開發上層的應用程序
如網絡、GUI開發
在第7步中,通常如今PC機上進行開發調試,而後經過交叉編譯將代碼編程成目標開發板可執行的程序。
接下來咱們先不直接燒寫內核和根文件系統,而是將內核和文件系統放在PC中,在uboot中分別設置TFTP和NFS,
這樣uboot在運行時即可以經過TFTP將內核從PC機讀入開發板ROM中,同時經過NFS訪問PC機上設置的根文件系統。
當程序運行無誤時,再將內核和文件系統燒寫到目標開發板。