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




  . 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、adsbitsypxa_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 表示内存组起始物理地址(32bit16进制)
  size =0xXXXXXX 表示内存组大小(32bit16进制)
  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表示模拟nicmac地址
  ethmod表示skyeye所处主机上网络模拟方式, 目前有tuptap和vnet两种模式tuntap是 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
  skyeyeUART控制选项
  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
  
  skyeyelog控制选项
  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
  
  
>

  
   2. 安装使用SkyEye
  1. SkyEye安装
  目前SkyEye在Linux操作系统下运行得很好 SkyEye通过MingW或cywgin软件Software也可以在环境中运行
  
  下面我们以在RedHat 9.0环境SkyEye安装为例:
  
  首先需要从解开skyeye-x.x.x.src.tar.bz2软件Software包(x.x.x代表SkyEye版本号)开始按照软件Software包中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软件Software)
  
  # make
  # make
  
  在编译安装过程中须注意以下几点:
  
  如果你使用是Mandrake Linux那么有可能你在编译SkyEye时会出现有关readline, ncurse, termcap等库那么你需要运行下面命令:
  ln -s /usr//ncurses/termcap.h /usr/local//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开发板并运行μC为例来讲解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(假定该软件Software包放在本机根目录下)解开比如解开在/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/ARMulatorkernel版本选择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
Tags:  linux安装与使用 虚拟机安装与使用 打印机的安装与使用 虚拟机的安装与使用

延伸阅读

最新评论

发表评论