基于ARM9內核和嵌入式Linux的網(wǎng)絡投影機系統(tǒng)設計
3 嵌入式投影機應用系統(tǒng)架構詳細設計
3.1 硬件平臺的選擇
基于嵌入式微處理器在嵌入式系統(tǒng)中的核心地位,選擇一款恰當?shù)奶幚砥鞣浅V匾D壳笆袌鲋髁鞯?2位微處理器主要有Power PC、68K、MIPS 和ARM 等。通常在選擇微處理器時, 需要考慮很多因素, 如性能、功耗、價格、配套的開發(fā)工具以及市場的供貨情況, 而ARM 在這些方面都具有優(yōu)勢。同時ARM 還具有業(yè)界領先的RISC 體系架構, 所以, 選擇基于ARM 核的處理器是最理想的。
本設計采用S3C2410 開發(fā)板為硬件平臺。該平臺在盡可能小的電路板面積上集成了64 M SDRAM、64 MNand Flash 、1 M Nor Flash 、RJ -45 網(wǎng)卡、音頻輸入與輸出、USB Host 、USB Slave 、標準串口、SD 卡插座、, 用戶按鍵和一些用戶燈等設備接口, 并且引出CPU 的大部分信號引腳。通過這個平臺可以針對S3C2410 進行系統(tǒng)級的硬件和軟件設計, 并且能夠很方便地在該平臺上進行相關的功能擴展, 并進行所需的產(chǎn)品設計。
3.2 系統(tǒng)的軟件實現(xiàn)
3.2.1 開發(fā)平臺宿主機的配置
本系統(tǒng)的開發(fā)平臺選擇ubuntu 8.04 LTS 。首先從網(wǎng)絡上下載vmware workstation 的體驗版, 在Windows XP環(huán)境下安裝配置好。從網(wǎng)絡下載ubuntu 8.04 LTS 版本的ISO 鏡像文件, 在vmware workstation 虛擬機環(huán)境下安裝配置好ubuntu 8.04 LTS 系統(tǒng), 設置虛擬機中ubuntu 系統(tǒng)的網(wǎng)絡連接方式為Bridged , 通過apt 軟件包管理程序可以方便地安裝配置虛擬機中的ubuntu 開發(fā)環(huán)境, 安裝系統(tǒng)開發(fā)所必須的程序庫, 如build-essential,samba 以及openssh-server 等。
3.2.2 開發(fā)過程
(1) 搭建交叉編譯環(huán)境
當開發(fā)嵌入式Linux 軟件時, 一般都要經(jīng)過交叉編譯。如果是開發(fā)PC 機上的軟件, 只要用Linux 本身提供的強大的編譯器(如GCC) 直接編譯即可。而一般的嵌入式設備所用的CPU 和PC 機上的CPU 有著不同的架構,這樣就要求在PC 機上編譯出適用于嵌入式設備CPU 架構的軟件,這就是交叉編譯的概念。圖2 是交叉編譯環(huán)境圖示。
(2)U-boot 的移植
嵌入式的軟件系統(tǒng)主要由Bootloader 、Kernel 、嵌入式文件系統(tǒng)以及應用程序等組成。其中,Bootloader 是介于硬件和操作系統(tǒng)之間的一層, 其作用就好像PC 機中的BIOS 。系統(tǒng)加電運行后, 由系統(tǒng)自動加載, 通過這段程序, 可以初始化硬件設備, 建立內存空間的映射圖, 從而將系統(tǒng)的硬件環(huán)境引導到一個合適的狀態(tài), 以便為最終調用操作系統(tǒng)內核準備好環(huán)境。本系統(tǒng)對于bootloader的選擇采用Das U-boot, 由于U-boot 的使用范圍相當廣, 因此很容易找到關于U-boot 移植的相關資料。Uboot引導程序分為stage1 和stage 2 兩大部分,stage1 中主要包括設備初始化、中斷設置、時鐘的設置以及存儲器初始化等工作, 并且采用匯編語言實現(xiàn), 而一些通用功能大多采用C 語言實現(xiàn), 放在stage 2 階段執(zhí)行。
修改cpu/arm920t/start.s 文件,start.s 文件是采用匯編語言編寫的U-boot 程序入口代碼, 完成對底層硬件的初始化。
修改board/smdk2410/nand_read.c 中的nand_read_11函數(shù)將stage 2 階段的代碼復制到ram 中。
修改U-boot 根目錄下的makefile 文件完成以后, 依次在終端中執(zhí)行:
Make distclean // 清除生成的鏈接
Make smdk2410_config
Make CROSS -COMPILE=arm-linux - 編譯成功后, 將生成三個文件, 其中需要燒到開發(fā)板中的文件是二進制的u-boot.bin 文件。
(3) 裁剪Linux 內核
修改根目錄下的makefile 文件, 指定目標平臺為ARM,ARCH:=arm, 指定交叉編譯器,CROSS_COMPILE=/usr/local/3.3.2/bin/arm-linux-gcc 內核移植完成后, 可以對內核進行配置, 一般用“make menuconfig ” 命令即可,具體的配置要根據(jù)自己的軟件平臺以及應用程序的使用情況來確定, 內核要盡可能小, 以滿足嵌入式系統(tǒng)資源少的特點。
linux相關文章:linux教程
評論