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