分享
 
 
 

SkyEye硬件模拟平台,第二部分:安装与使用

王朝other·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

一. SkyEye配置选项

SkyEye模拟的硬件配置和模拟执行行为由配置文件skyeye.conf中的选项确定。根据选项的功能,skyeye.conf的选项分为硬件配置选项和模拟执行选项。根据参数的个数,skyeye.conf的选项主要由两种组成:

单参数选项行

格式为:

symbol: value

symbol可以是硬件定义,如cpu、mach等,也可以是执行控制定义,如log等。

value是symbol对应的值,可能是数字也可能是字符串。

多参数选项行

格式为:

symbol:opt1=value1,opt2=value2,......

opt1是参数名,value1是opt1对应的值,可能是数字也可能是字符串。

目前skyeye.conf的配置定义如下:

基本CPU核配置选项

目前存在的选项有:arm710、arm7tdmi、arm720t、arm920t、sa1100、sa1110、xscale

格式为

cpu: cpuname

注:cpuname表示一个代表cpu名字的字符串。

例如:

cpu: arm7tdmi

具体的开发板(包括CPU扩展)配置选项

目前存在的选项有:at91、ep7312、adsbitsy,pxa_Lubbock、lpc、s3c4510b、s3c44b0、cs89712、sa1100、at91rm92、sharp_lh7a400

格式为:

mach: machinename

注:cpuname表示一个代表基于特定CPU的开发板名字的字符串。

例如:

mach: at91

内存组配置选项

一个内存组内的地址是连续的,类型分为RAM SPACE, ROM SPACE, mapped IO SPACE

格式为:

mem_bank: map=M|I, type=RW|R, addr=0xXXXXXXXX, size=0xXXXXXXXX,file=imagefilename,boot=yes|no

map=M 表示 RAM/ROM SPACE, map=I 表示 mapped IO SPACE。

type=RW ,且如果map=M则表示RAM SPACE, type=R,且如果map=M则表示ROM SPACE。

addr=0xXXXXXX 表示内存组的起始物理地址(32bit,16进制)。

size =0xXXXXXX 表示内存组的大小(32bit,16进制) 。

file =imagefilename

file的值imagefilename是一个字符串,实际上表示了一个文件,一般是一个可以执行的binary image格式的可执行程序或OS内核文件或是一个binary image格式的根文件系统。如果存在这个文件,SkyEye会把文件的内容直接写到对应的模拟内存组地址空间中。

boot=yes/no,如果boot=yes,则SkyEye会把模拟硬件启动后的第一条指令的地址定位到对应的内存组的起始地址。

例如:

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

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

mem_bank: map=M, type=RW, addr=0x10000000, size=0x00000800, file=./loader.bin,boot=yes

网络芯片8019AS的配置

格式为 nic: state=on/off mac=xx:xx:xx:xx:xx:xx ethmod=tuntap/vnet hostip=dd.dd.dd.dd

注:xx表示两位16进制数,dd表示两位10进制数

state表示模拟开始后,网络芯片是否开始工作

mac表示模拟的nic的mac地址

ethmod表示skyeye所处主机上的网络模拟方式, 目前有tuptap和vnet两种模式。tuntap是linux kernel支持的一个点到点虚拟网络实现,vnet是skyeye实现的一个功能更多的一个基于虚拟HUB的网络。

hostip表示主机方与skyeye交互用的ip地址

例如:

net: state=on, mac=0:4:3:2:1:f, ethmod=tuntap, hostip=10.0.0.1

LCD的配置

格式为 lcd: state=on/off

state=on表示LCD处于接通状态; state=off 表示LCD处于关闭状态。

例如:

lcd: state=on

skyeye的UART控制选项

uart选项可以控制skyeye在另一个与某个串口连接的终端上输入/输出字符

格式:

uart: fd_in=indevname, fd_out=outdevname

fd_in=indevname indevname表示用于输入的设备文件名,其值为实际的串口设备文件/dev/ttySx

fd_out=outdevname outdevname表示用于输出的设备文件名,其值为实际的串口设备文件/dev/ttySx

例如:

uart: fd_in=/dev/ttyS0, fd_out=/dev/ttyS0

skyeye的log控制选项

log选项用于控制skyeye输出硬件系统的执行状态信息,包括每次执行指令时的执行指令值、寄存器值、各种硬件状态等。

格式:

log: logon=0|1, logfile=filename, start=number1, end=number2, length=number3

logon=0|1|2|3,如果值等于0表示不进行记录,如果值等于1表示记录指令和指令地址流,如果值等于2表示记录指令和指令地址和主要寄存器内容,如果值等于3表示记录指令和指令地址和所有的寄存器内容。

logfile=filename 其值是一个字符串,表示用于记录信息的文件名

start=number1 其值是一个=0的十进制整数,表示系统执行到第number1条指令时开始进行记录

end =number2其值是一个=0的十进制整数,表示系统执行到第number2条指令时停止记录

length =number3其值是一个=0的十进制整数,表示只记录系统最近执行的number3条指令时的信息

格式:

log: logon=0, logfile=/tmp/sk1.log, start=100000, end=200000, length=100

二. 安装使用SkyEye

1. SkyEye的安装

目前SkyEye在Linux操作系统下运行得很好, SkyEye通过MingW或cywgin软件也可以在Windows环境中运行。

下面我们以在RedHat 9.0环境的SkyEye安装为例:

首先需要从解开skyeye-x.x.x.src.tar.bz2软件包(x.x.x代表SkyEye的版本号)开始,按照软件包中的SkyEye.README或README文件中介绍的步骤进行(下面命令中的"#"是shell提示符,用户不用输入):

(1) 解压源码包(假定skyeye-x.x.x.src.tar.bz2放在本机的"/usr/src"目录下),会在当前目录生成一个skyeye的目录

#cd /usr/src

# tar xjvf skyeye-x.x.x.src.tar.bz2

(2) 进入解压SkyEye目录,配置SkyEye

#cd skyeye

如果是SkyEye 0.6.0以前的版本,运行下面的命令进行配置:

# ./configure --target=arm-elf --prefix=/usr/local --without-gtk-prefix --without-gtk-exec-prefix --disable-gtktest

如果你的SkyEye版本大于0.6.0,则带有LCD仿真支持。为了增加对LCD仿真的支持,则运行如下命令:

# ./configure --target=arm-elf --prefix=/usr/local

(3) 然后是编译和安装(正确执行完下面的指令且命令正常结束后,系统中的/usr/local/bin/skyeye 执行程序就是安装好的SkyEye软件。)

# make

# make install

在编译安装过程中,须注意以下几点:

如果你使用的是Mandrake Linux,那么有可能你在编译SkyEye时会出现有关readline, ncurse, termcap等库的一些错误,那么你需要运行下面的命令:

ln -s /usr/include/ncurses/termcap.h /usr/local/include/termcap.h

然后再重新编译

如果你使用的是Debian Linux, 不要用gcc 2.95 或 gcc 3.0, 要使用gcc 3.2或更高版本。

在你系统中所使用的gcc 版本号应该要大于或等于2.96

如果SkyEye版本号大于0.6.0, 那么你需要在你的系统中安装GTK (LCD模拟要用到) 。

2. SkyEye的使用

下面我们以SkyEye模拟基于Atmel AT91X40的开发板,并运行μClinux为例来讲解SkyEye的具体使用。

第1步

安装交叉编译环境并配置μClinux

先安装交叉编译器。注意这里最好用root用户来执行如下操作。将arm-elf-tools-20011219.tar.gz(20011219是该工具的产生时间,也可以选择更新的arm-elf-tools。)在本机的根目录下用tar命令解开(假定arm-elf-tools-20011219.tar.gz放在本机的根目录"/"下)。具体命令(下面命令中的"#"是shell提示符,用户不用输入)如下:

#cd /

# tar /zxvf arm-elf-tools-20011219.tar.gz

然后将uClinux-dist-20020927.tar.gz(假定该软件包放在本机的根目录下)解开,比如解开在/usr/src/uClinux-dist/下,需要执行如下命令:

# cd /usr/src

# tar zxvf /uClinux-dist-20020927.tar.gz

然后在/usr/src/uClinux-dist/目录下执行如下命令:

在图形方式下可用命令

# make xconfig

在命令行方式下可用命令

# make menuconfig

在这两种界面下,在vendor/product选项中选择GDB/ARMulator,kernel版本选择2.4.x,其它选项不变,然后保存配置退出,即选择save and exit选项。

第2步 编译生成μClinux和包含应用程序的文件系统

方案A

如果要生成带调试信息的linux kernel执行文件,在第一步执行完后,继续执行如下命令:

# make dep; make linux

这时在/usr/src/uClinux-dist/linux-2.4.x目录下生成具有ELF执行文件格式的linux内核文件。到这一步还没有生成文件系统,为了生成文件系统,还需要执行如下命令:

# make romfs; make image

如果在/usr/src/uClinux-dist/images/下存在文件 romfs.img,表示文件系统生成成功。

方案B

如果想一步生成带调试信息的linux kernel执行文件和linux kenel 执行文件映像和磁盘映像文件romfs.img,可简单地运行命令:

# make dep; make

就行了。可查看/usr/src/uClinux-dist/images/下是否有文件 romfs.img等在/us

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有