Skyeye+uclinux 网络

转载 2012年03月28日 16:29:36
  Skyeye简介
   
   以前直接利用来模拟uClinux.具体参见:http://www.uclinux.org/pub/uClinux/utilities/armulator/.感觉就是:简单,方便.但是要用到网络功能的话,GDB/ARMulator就表现的无能为力了.
  SkyEye配置选项
  SkyEye模拟的硬件配置和模拟执行行为由配置文件skyeye.conf中的选项确定。根据选项的功能,skyeye.conf的选项分为硬件配置选项和模拟执行选项。根据参数的个数,skyeye.conf的选项主要由两种组成:
  l 单参数选项行 
  格式为: 
  symbol: value 
  symbol可以是硬件定义,如cpu、mach等,也可以是执行控制定义,如log等。 
  value是symbol对应的值,可能是数字也可能是字符串。 
  l 多参数选项行 
  格式为: 
  symbol:opt1=value1,opt2=value2,...... 
  opt1是参数名,value1是opt1对应的值,可能是数字也可能是字符串。 
  目前skyeye.conf的配置定义如下:
  l 基本CPU核配置选项 
  目前存在的选项有:arm710、arm7tdmi、arm720t、arm920t、sa1100、sa1110、xscale 
  格式为 
  cpu: cpuname 
  注:cpuname表示一个代表cpu名字的字符串。 
  例如: 
  cpu: arm7tdmi 
  l 具体的开发板(包括CPU扩展)配置选项 
  目前存在的选项有:at91、ep7312、adsbitsy,pxa_Lubbock、lpc、s3c4510b、s3c44b0、cs89712、sa1100、at91rm92、sharp_lh7a400 
  格式为: 
  mach: machinename 
  注:cpuname表示一个代表基于特定CPU的开发板名字的字符串。 
  例如: 
  mach: at91 
  l 内存组配置选项 
  一个内存组内的地址是连续的,类型分为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 
  l 网络芯片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 
  l LCD的配置 
  格式为 lcd: state=on/off 
  state=on表示LCD处于接通状态; state=off 表示LCD处于关闭状态。 
  例如: 
  lcd: state=on 
  l 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 
  l 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目标模拟模块模拟的硬件逻辑结构图如图 0-1所示。
  
skyeye模拟uClinux

  
skyeye模拟uClinux

  
skyeye模拟uClinux

  
skyeye模拟uClinux

  
  目前,对于uClinux模拟走在前面的软件是Skyeye.你可以从www.skyeye.org来看到Skyeye的最新的资讯.上面可提供了最新稳定版本的Skyeye的下载.
  
  
  一:准备工作:
   还是首先检查一下自己的机器上有没有tun.o,或者tun.lo(FC内核)这个模块,如果没有使用insmod 命令插入试试看,如果还是不行,那就只有重新编译内核了,或者重装系统。
  l 下面就是模拟前的一些准备了:
  arm-elf-tools-20030314.sh,uClinux-dist-20041215.tar.gz。从以下网站来下载到源码:
http://www.uclinux.org/pub/uClinux/dist/
  skyeye-0.8.6.tar.bz2,skyeye-binary-testutils-1.1.0.tar.tar。可以从以下网站下载到:
http://www.skyeye.org/download.htm
  
  二. 安装使用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/tools
  # 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:arm-elf连接器和uClinux的安装
  sh –ivh arm-elf-tools-20030314.sh
  
  tar -zxvf uClinux-dist-20041215.tar.gz
  cd uClinux-dist
  
  3:配置uClinux
  
  
  1) Vendor/Product Selection—>
   --select the vendor you wish to target
  (GDB)vender
  --Select the produet you wish to target
  (skyeye)GDB produers
  kernel/llibrary/defaults selctionà
   (linux-2.4.x)kernel version
   (uClibc)Lib version
  ---
  ---
  
  2) Network device supportà
   --IMQneeds CONFIG_NETFILTER enabled
   [*]Universal TUN/TAP device driver support
   Ethernet(10 or 100Mbit)à
   [*]skyeye net2k ethernet support(for ArMulator)
  ---
  ---
  3) Network Applicationà
  [*]ifconfig
  [*]ping
  
  
  4: skyeye.conf的配置:
  下面是一些skyeye.conf的例子:
  FOR AT91 (0) special for ucosii
  -------------------------------------------
  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
  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
  
  FOR AT91 (1) special for μClinux
  -------------------------------------------
  #skyeye config file sample
  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=./boot.rom
  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
  #set nic info state=on/off mac=xx:xx:xx:xx:xx:xx ethmod=tuntap/vnet hostip=dd.dd.dd.dd
  net: state=on, mac=0:5:3:2:1:f, ethmod=tuntap, hostip=192.168.2.1
  
  FOR ep7312 (1) special for linux
  -------------------------------------------
  cpu: arm720t
  mach: ep7312
  mem_bank: map=I, type=RW, addr=0x80000000, size=0x00010000
  mem_bank: map=M, type=RW, addr=0xc0000000, size=0x00200000
  mem_bank: map=M, type=RW, addr=0xc0200000, size=0x00200000, file=./initrd.img
  mem_bank: map=M, type=RW, addr=0xc0400000, size=0x00c00000
  
  FOR StrongArm SA1100 (1) speciall for linux
  -------------------------------------------
  cpu: sa1100
  mach: sa1100
  mem_bank: map=I, type=RW, addr=0x80000000, size=0x40000000
  mem_bank: map=M, type=RW, addr=0xc0000000, size=0x00800000
  mem_bank: map=M, type=RW, addr=0xc0800000, size=0x00400000, file=./initrd.img
  mem_bank: map=M, type=RW, addr=0xc0c00000, size=0x01400000
  mem_bank: map=I, type=RW, addr=0xe0000000, size=0x08000000
  #0xe0000000 128M cache flush memory bank 
  
  配置skyeye.conf很重要,否则就不能成功的模拟。以下是我对uClinux的skyeye.conf的配置:
  #skyeye config file sample
  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=boot.rom
  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
  #set nic info state=on/off mac=xx:xx:xx:xx:xx:xx ethmod=tuntap/vnet hostip=dd.dd.dd.dd
  net: state=on, mac=0:4:3:2:1:f, ethmod=tuntap, hostip=192.168.0.172
  
  5:执行:
  >skyeye linux
  >target sim
  >load
  >run
  就会进去uClinux
  目前的问题是,进去uClinux显示的uClinux初始化的IP还是10.0.0.2而不是我的192.168.0.172,可以用ifconfig eth0 192.168.0.172 ;来设定。
  还有一个问题就是在uClinux ping 主机,总是ping不通;但是主机可以ping通开发板是可以ping通的。不知道为什么?请各位大虾指导一下。(王朝网络 wangchao.net.cn)

skyeye+uClinux配置成功

  • reng227
  • reng227
  • 2009年04月24日 13:47
  • 1174

RHEL5.2中架设skyeye+uClinux环境

刚开始学习linux嵌入式开发,经过2天的尝试,今天终于把skyeye+uClinux配置成功了,特记下我配置的过程,希望对你有用!!说下我的系统平台:我用的是在linux下的VMare+RHEL5....
  • ZatoNeedHelp
  • ZatoNeedHelp
  • 2009年04月06日 11:51
  • 1256

庆祝一下:配了2周终于把skyeye+uClinux配置成功!

        最近开始学习linux嵌入式开发,因为以前都是做windows下的开发的,对linux和嵌入式一无所知,经过2周的尝试和在网上找了无数多的资料,昨晚终于把skyeye+uClinux配...
  • tony329412
  • tony329412
  • 2006年09月25日 14:06
  • 5501

基础网络概念

摘自《鸟哥的 Linux 私房菜-网络篇》 局域网络 (Local Area Network, LAN) 广域网 (Wide Area Network, WAN) MAC (Media Ac...
  • breeze_life
  • breeze_life
  • 2013年08月07日 18:17
  • 1931

价值网络和策略网络的简单融合

最近alphazero都已经出来了,貌似比alphago zero更厉害,在alphazero和alphago zero中使用了比较新的策略,将价值网络和策略网络进行了融合,即同一个网络,产生两个不同...
  • LIYUAN123ZHOUHUI
  • LIYUAN123ZHOUHUI
  • 2017年12月07日 15:27
  • 289

网络编码究极入门贴

网络编码是近年来通信领域的重大突破, 其基本思想是网络节点不仅参与数据转发, 还参与数据处理,这样可以大幅提高网络性能。数据转发不用多涉及,因为在本科里的计算机网络等课程中已经涉及,分别是网络层的路由...
  • u010243513
  • u010243513
  • 2015年10月14日 14:57
  • 2477

网络基础知识整理

整理性文档,非原创,主摘自谢希仁先生的《计算机网络》,并参考了一些网络资料,在此不一一列举。 内容主要包括以下几个方面: 1.IP地址,分类的IP地址、子网掩码以及子网划分的概念。 2.网关的概念。 ...
  • baidu_21217995
  • baidu_21217995
  • 2016年07月28日 14:32
  • 15910

ResNet残差网络

前面我们对常用的经典网络进行了介绍,可以查看前面文章:浅入浅出TensorFlow 6 - 实现经典网络        随着网络越来越深,大家发现,仅仅靠 BN、ReLU、DropOut 等 Tric...
  • linolzhang
  • linolzhang
  • 2017年05月08日 00:25
  • 3795

Linux-CentOS版挂载网络磁盘方法

挂载网络磁盘 卸载磁盘 umount /tcdb --/tcdb为网盘挂载的目录 安装cifs插件 yum -y install cifs* 挂载磁盘 mount -t cifs -o u...
  • qq_26629277
  • qq_26629277
  • 2017年09月05日 22:48
  • 310

vmware samba“无法映射网络驱动器,找不到网络路径”(device cannot be mapped because no network is found)

问题描述:提示“无法映射射网络驱动器,找不到网络路径”device cannot be mapped because no network is found。 但打开 开始---->运行--->(输...
  • acs713
  • acs713
  • 2013年04月07日 10:06
  • 4908
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Skyeye+uclinux 网络
举报原因:
原因补充:

(最多只允许输入30个字)