|
SkyEye-嵌入式开发板仿真软件 整理时间:2008/01/26 整理人:张绍言 1.SkyEye不需要实际的嵌入式硬件设备,即可进行ARM嵌入式软件的开发;可以用来研究嵌入式OS,嵌入式GUI等. 2.SkyEye的使用 (1)准备系统镜像文件 (2)配置skyeye.conf (3)运行SkyEye skyeye linuxkernelname (skyeye)target sim (skyeye)load (skyeye)run 3.SkyEye配置描述 SkyEye仿真的硬件配置和模拟执行行为由配置文件skyeye.conf决定. 单参数选项行: symbol:value symbol硬件定义,如cpu,mach等 value是对应的值 多参数选项行: symbol:opt1=value1,opt2=value2,... optN是参数名 valueN是对应的值 3.具体配置: CPU配置 开发板配置 内存组配置 网络配置 串口(UART)配置 log配置 (1)基本CPU核配置选项 cpu:cpuname 例如: cpu:arm7tdmi 目录支持的有arm7tdmi、arm720t、arm920t、strongarm、xscale (2)具体的开发板配置选项 mach:machinename 注:machinename表示一个代表基于特定CPU的开发板名字的字符串 例如: mach:at91 目录支持的有at91,s3c4510b,ep7312,sa1100,pxa_lubbock 不完善的支持有S3c44b0,at91rm92,sharp_lh7a400,lpc2249 (3)内存组配置选项 一个内存组内的地址是连接的,类型分为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=0xXXXXXXXX表示内存组的起始物理地址(32位,16进制) size=0xXXXXXXXX表示内存组的大小(32位,16进制) file=imagefilename表示一个文件一般为一个可执行binary image文件或OS内核或是根文件系统,如果存在该文件SkyEye会把文件内容直接写到对应的仿真内存组空间中. boot=yes/no 如果为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 (4)网络芯片8019as的配置 net: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所处主机上的网络仿真方式.tuntap是linuxkernel支持的一个点到点的虚拟网络实现,vnet是SkyEye实现的一个功能更多的一个基于虚拟Hub的网络. hostip表示主机方与SkyEye交互用的IP地址 例: net:state=on,mac=0:4:3:2:1:f,ethmod=tuntap,hostip=10.0.0.1 (5)UART控制配置 UART可以控制SkyEye在另一个与某个串口连续的终端上输入/输出字符 uart:fd_in=indevname,fd_out=outdevname 说明:fd_in=indevname表示用于输入的设备文件名,其值为实际的串口设备文件/dev/ttySx fd_out=outdevname表示用于输出的设备文件名,其值为实际的串口设备文件/dev/ttySx 例: uart:fd_in=/dev/ttyS0,fd_out=/dev/ttyS0 (6)log控制配置 log选项用于控制SkyEye输出硬件系统的执行状态信息,包括每次执行指令时的执行指令值,寄存器值,各种硬件状态等. log:logon=0|1,logfile=filename,start=number1,end=number2 说明: logon=0|1如果为0则不进行记录,如果为1则进行记录 logfile=filename表示用于记录信息的文件名 start=number1其值为一个>=0的十进制整数表示系统执行到第number1条指令时开始进行记录 end=number2其值为一个>=0的十进制整数表示系统执行到第number2条指令时停止记录 例: log:logon=0,logfile=/tmp/sk1.log,start=100000,end=200000
|