使用skyeye模拟嵌入式环境

鉴于最近正在学习Linux嵌入式,顺便之前有用过skyeye这个模拟器,所以决定在Fedora13上安装skyeye并将其用来模拟自己裁减和编译过的ARM嵌入式Linux内核。模拟成功之后再将内核烧写至开发板做进一步的测试。

 

一、环境

 

系统:Fedora13 skyeye版本:1.2.8

之所以选择1.2.8这个版本,是因为该版本相对而言较为稳定。虽然编译时也有错误,但最新的1.3.1版本有几个错误暂时还未找到合适的解决方案,下面会提到两个版本的不同错误。

 

 

二、准备工作

 

首先当然得有一个Linux系统,当然window也可以,不过需要安装Cygwin,这里不做讨论。发行版其实没什么限制,适合自己就行。以前喜欢折腾,用的Arch。现在还是觉得Fedora的环境比较全,图个方便。

然后,从http://sourceforge.net/projects/skyeye/files/上下载1.2.8版本的skyeye,testsuite依据个人需要(建议下载,刚开始使用的时候可以从里面的示例出发,了解skyeye的基本用法)

 

 

三、安装

 

将skyeye-1.2.8_rc1.tar.gz解压:tar zxvf skyeye-1.2.8_rc1.tar.gz

定位到目录下:cd skyeye-1.2.8_rc1

执行: ./configure  (--perfix=/your_dir 可以指定你的安装目录,1.2.8默认安装在/usr/bin下,其lib和头文件都在/usr的响应文件夹下。具体的配置这里就不做详细介绍了)

开始编译: make

检查环境 :make check (这里检查会出错,不用管它,继续)

安装: sudo make install (这里需要用管理员权限,因为其是写到/usr目录下)

过一段时间后会提示错误,类似: /bin/sh: ../mkinstalldirs: not found。这是因为1.2.8在其third-party缺少mkinstalldirs文件,这个文件在1.2.9极其以后的版本中有提供,可以直接复制过来用。当然也可以自己新建一个文件

vim skyeye-1.2.8_rc1/third-party/mkinstalldirs

 

 

编辑完成后保存并退出(:wq)

然后再次执行sudo make install

skyeye安装完成。

 

 

四、测试

 

解压skyeye-testsuite-1.3.1_rc1.tar.gz,这里选择1.3.1的测试套件,因为其支持的处理器有所增加

可以找一个带LCD的测试实例来验证skyeye的安装。

找到套件下的/linux/ep7312/ep7312_with_framebuffer_touchscreen_minigui目录

执行: skyeye -e vmlinux -c skyeye.conf (-e为加载内核,-c为加载配置文件)

闪过一堆信息之后,可以看到ArmLinux的标志。

然后在模拟终端下输入: /bin/same/same

一段时间后可以看见一个模拟的LCD。到此skyeye安装模拟成功!

 

五、其他版本安装

对于1.3.1的版本,在./configure的时候一定要使用root权限,不然之后无法make lib。具体安装过程可以看其目录下的INSTALL文件。还有对于该版本在fedora13下make时的错误,暂时的解决办法是将utils/uart_console目录下的uart_console.c文件以下几行注释掉:

 

否则会出现错误(具体的错误信息暂时忘记了)。因为1.2.8以后的版本中模拟终端都是用的xterm,这个文件就是跟这个模拟终端有关,具体注释掉之后会有什么问题,暂时还没发现,有待于后面继续研究。

 

 

六、用skyeye.conf配置文档简介

 

skyeye.con觉定了你想模拟的具体嵌入式环境

 

cpu: 指定CPU类型,如arm7tdmi,arm720t等
mach: 开发板类型,如at91, ep7312
mem_bank: 内存块
map=M 指定为rom/ram, map=I 指定为IO空间
type=RW 可读写,type=R 只读
addr=0x00000000 内存块开始地址
size=0x10000000 内存块大小
files=romfs.img 文件系统映象文件
net: 网络配置
state=on 模拟NIC,等于off则不模拟
mac=0:4:3:2:1:f 指定MAC地址
ethmod=tuntap/vnet 使用虚拟驱动
hostip= 指定ip地址
例如:net: state = on, mac=0:4:3:2:1:f, ethmod=tuntap, hostip=10.0.0.1
uart: 串口支持
fd_in= 指定输入文件
fd_out= 指定输出文件
例如:uart: fd_in=/dev/ttyS0, fd_out=/dev/ttyS1
则你可以使用minicon来监听COM1口来进行数据交换
LCD:LCD模拟
state = on/off 打开或者关闭LCD模拟

 

具体的配置文件sample可以去测试套件下查看。

 

 

七、使用skyeye模拟s3c2440平台

该项本人也在试验中,之前编译的一个zImage可以在Arm机上运行,但是用skyeye测试一直会死在内核开始地址处,现在正寻找解决方案中,估计还是自己的conf文件配置有误。等模拟成功后再做相关补充。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值