配置虛擬嵌入式環境

早就飽受沒有開發板之苦而沒有涉入這個領域,偶然間發現了skyeye這個開源項目,瞭解了下可以模擬嵌入式開發環境。他可以模擬多種主流嵌入式處理器 ARM7, ARM9, ARM10 等,與uclinux 就可以擁有一個交叉編譯的環境。

 

查了下資料,轉載一位老兄的帖子。

 

 

一、uClinux編譯環境的配置和編譯

1、下載arm-elf-toolsuClinux

 

http://www.uclinux.org/pub/uClinux/arm-elf-tools/arm-elf-tools-20030314.sh

 

http://www.uclinux.org/pub/uClinux/dist/uClinux-dist-20030305.tar.gz

 

2、安裝

1)先切換到root

     sudo -s -H

 

2)安裝arm-elf-tools

export _POSIX2_VERSION=199209

 


sudo cp arm-elf-tools-20030314.sh /  須要是根目錄,我安裝的這步發生了錯誤,用了下面這條命令。

 

sudo tail -n +'43' arm-elf-tools-20030314.sh | gunzip | tar xvf -

 

 

3uClinux配置並編譯:

更新軟件包信息:

 

apt-get update

 

安裝一些必備軟件包:

 

apt-get install ncurses-dev

 

apt-get install tcl

 

apt-get install tk

 

解壓 uClinux

 

tar zxvf  uClinux-dist-20030305.tar.gz

 

切換到uClinux的解壓目錄,運行下以下命令之一進行配置:

 

make menuconfig  make xconfig

 

編譯:

make dep

make

make image

images目錄下生成romfs.img,linux.data,

說明:

apt-get update 爲可選命令,作用是更新軟件包信息,如果執行apt-get install命令出錯,那必須先執行這個命令。

ncurses make menuconfig 時所需的安裝包

tcl tk make xconfig所需的安裝包

make menuconfig make xconfig爲用菜單方式或圖形界面方式配置uClinux,如何配置可以參考網上的其它資料,因爲是用skyey仿真,所以只要將Vendor/Product選爲GDB/ARMulator,其它的可用默認選項,當然在實際的配置和裁減中還是有許多其它選項要改的。

 

二、skyeye的安裝

ubuntu下安裝skyeye相當簡單,只要執行以下命令:

 

apt-get install skyeye

 

如果出錯先執行apt-get update

 

三、用skyeye仿真uClinux

1、先寫一個測試程序,保存爲hello.c

//---------------------------------hello.c----------------------------------------------------

 

#include <stdio.h>

 

int main(void)

{

    printf("hello,world/n");

    return 0;

}

//-----------------------------------------------------------------------------------------------

 

 

編譯生成flat文件格式的可執行文件hello

arm-elf-gcc -Wl,-elf2flt -o hello hello.c


 

2、製作romfs.img

在編譯uClinux時已經生成了romfs.img,但是我們要將我們的hello程序加入romfs中,可以按下面步驟來做(以下假設當前目錄爲uClinux所在目錄)

1)首先,掛載romfs.img

切換到uClinux目錄下的images目錄並建一個romfs目錄:

 

 cd images

 

 mkdir romfs

 

創建掛載點:

 

 mkdir /mnt/romfs

      

掛載:

 

mount -o loop romfs.img /mnt/romfs

 

生成的 hello ,flat 格式的可執行文件要拷入 /images/romfs/bin/中,才能在uclinux 中看見 


2)製作romfs.img

 

/mnt/romfs目錄下的所有文件拷貝到images/romfs目錄下:

 

cp -r /mnt/romfs/* romfs

 

製作新的romfs.img

 

genromfs -f romfs.img -d romfs

 

3skyeye仿真

1)先寫一個config文件skyeye.conf,保存到images目錄下,以下爲全部內容:

cpu: arm7tdmi

 

mach: at91

 

mem_bank: map=M, type=RW, addr=0x00000000, size=0x00004000

mem_bank: map=M, type=RW, addr=0x01000000, size=0x00400000

mem_bank: map=M, type=R,  addr=0x01400000, size=0x00400000, file=./romfs.img

mem_bank: map=M, type=RW, addr=0x02000000, size=0x00400000

mem_bank: map=M, type=RW, addr=0x02400000, size=0x00008000

mem_bank: map=M, type=RW, addr=0x04000000, size=0x00400000

mem_bank: map=I, type=RW, addr=0xf0000000, size=0x10000000

 

2)仿真

轉到images目錄,執行以下命令:

 

skyeye -e ../linux-2.4.x/linux

 

熟悉的界面出現了,cd bin目錄,執行以下命令

 

./hello

 

出現了經典的hello,world

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章