手把手教你搭建国产嵌入式模拟器SkyEye开发环境

117 篇文章 103 订阅

SkyEye介绍


SkyEye是一个开源软件(OpenSource Software)项目,中文名字是"天目"。SkyEye的目标是在通用的Linux和Windows平台上实现一个纯软件集成开发环境,模拟常见的嵌入式计算机系统(这里假定"仿真"和"模拟"的意思基本相同);可在SkyEye上运行μCLinux以及μC/OS-II等多种嵌入式操作系统和各种系统软件(如TCP/IP,图形子系统,文件子系统等),并可对它们进行源码级的分析和测试。

关于开源版本的更多介绍:点击我跳转

目前开源版本停留在1.3.5版本,后期版本由浙江迪捷软件科技有限公司开发和维护,点击我查看SkyEye的最新介绍

访问这个地址:https://gitee.com/open-skyeye/build,下载相关的安装包和工具包。

build教程

环境说明

本文介绍在操作系统 Ubuntu 16.04 中编译安装硬件仿真软件 SkyEye 1.3.5 的方法。

镜像版本:ubuntu-16.04.6-desktop-i386.iso
为了保证顺利安装,可以选择与本文相同的Ubuntu来操作。同时你需要下载本仓库,release/skyeye-1.3.5中包含了我们需要的安装包和一些软件包。

安装依赖

由于SkyEye1.3.5引用了llvm3.0底层虚拟机、x11底层界面库等一些软件。如果是新安装的Ubuntu系统,这些软件可能就没有,因此在安装SkyEye之前需要把它们一起安装到机器上。

首先执行:

sudo apt-get update

然后执行以下命令:

sudo apt-get install git-core make automake autoconf libtool g++ python-dev libxft-dev libx11-dev libxpm-dev libncurses5-dev texi2html xterm texinfo x11proto-xext-dev libxext-dev python-numpy python-faulthandler python-wxtools libjson0-dev putty

主要涉及的库有:

名称说明
git-core-
make-
automake-
autoconf-
libtool动态库加载工具
g++-
python-dev-
libxft-dev-
libx11-dev界面底层库依赖包
libxpm-dev-
libncurses5-dev-
texi2html-
xterm终端模拟器
texinfo文档系统
x11proto-xext-dev界面底层库
libxext-dev-
python-numpy-
python-faulthandler-
python-wxtools-
libjson0-dev-
putty终端工具

接着,我们还需要更新或安装一些依赖库,这些库ubuntu自带,但是保险起见,我们需要手动再安装一遍。

sudo apt-get install libgtk2.0-dev pkg-config libatk1.0-dev 
sudo apt-get install libpango1.0-dev libfreetype6-dev libglib2.0-dev libx11-dev binutils-dev 
sudo apt-get install libncurses5-dev libxpm-dev libltdl-dev
sudo apt-get install binutils-de

编译SkyEye

这里我在根目录新建一个文件夹

mkdir work 

进入这个文件夹,从release/skyeye-1.3.5中拷贝安装包和软件包到这里,并对其解压。

cd work
unzip libiconv-1.12.zip
tar -zxvf llvm-3.0.tar.gz
tar -jxvf Python-2.7.tar.bz2
tar -jxvf skyeye-1.3.5_rc1.tar.bz2

简单介绍一下这些软件包的作用:

名称说明
libiconv-1.14字符编码转换库
llvm-3.0汇编虚拟机
Python-2.7程序设计语言
kyeye-1.3.5嵌入式系统仿真器

依次进入libiconv-1.12、Python-2.7文件夹,先安装libiconv:

./configure
make
sudo make install

期间make install若出现问题,make clean后重新make(不要使用sudo make),然后sudo make install

再安装python-2.7:

./configure --enable-shared  --enable-unicode=ucs4
sudo make
sudo make install

以上步骤确认没有问题后进行SkyEye的编译安装,进入SkyEye源码目录,输入以下命令:

./configure 
sudo make lib

若出现如下问题:

/home/tym/work/1.clone/skyeye-1.3.5_rc1/third-party/opcodes/cgen-ops.h:423: 

multiple definition of `SUBWORDTFSI'

请按照下图指示操作:

<>

接下来输入以下命令,完成编译和安装:

sudo make
sudo make install_lib
sudo make install

skyeye的安装路径在opt/skyeye,我们将它加入环境变量,就可以快捷操作:

先打开当前用户的全局设置:

vim ~/.bashrc

输入代码:

#skyeye 1.3.5
export PATH=/opt/skyeye/bin:$PATH

之后保存退出,输入命令更新设置:

source .bashrc

输入命令,看看能否启动skyeye:

skyeye

如果这个时候报错:

说明这个库不存在,我们需要拷贝一个系统的库到这里,并重新命名:

 sudo cp //usr/lib/i386-linux-gnu/libbfd-2.26-system.so /usr/lib/libbfd-2.18.50.20070907.so

如果编译还出现类似错误,操作相同,直接找到系统下有的库,复制过来重命名即可。

现在我们进入skyeye根目录,利用提供的测试demo,验证skyeye是否正常工作:

cd //opt/skyeye/testsuite/arm_hello
skyeye -e arm_hello

出现上图所示,代表启动正常,现在我们输入两条命令,启动这个demo:

start
run

至此,我们的skyeye安装成功!

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
对于那些想进行嵌入式系统软件开发和学习,或者想研究嵌入式Linux等操作系统和一些底层系统软件(如TCP/IP等)的研究和开发人员来说,可能存在如下几方面的问题:(1)经常苦于经费不足,缺少足够的硬件开发板和完善的软件开发环境,相关的书籍对一些最新软件的分析还不够全面,无法深入研究和开发嵌入式软件。(2)高层次的软件设计和开发一般不用太考虑底层硬件的实现细节,如果直接处于一个具体的硬件环境下,在开发和研究中可能会陷入硬件的具体细节中不能自拔,而不能把精力放到高层次的软件设计和开发上。(3)如果硬件开发环境不太稳定(这种情况经常见到),且对具体的硬件不是很了解,则可能在排除问题上花费大量的不必要的时间。(4)如果你想自己尝试设计一个操作系统,则先在一个提供源码级调试的软件仿真器上进行开发,可能会大大提高你的开发进度。<br><br>对于想了解、学习一般操作系统的实现原理,Linux/μCLinux操作系统或TCP/IP等系统级软件的实现的人员,目前一般采用的方法是看书和读源代码,这是一种静态的学习方法,效率较低,比较枯燥,缺少亲自实践的感觉。要想深入分析和开发软件,就要动手编程,不能只是看看书,读读代码,只有通过亲手实践才能够掌握软件设计的核心内容。上面所指出的问题和需求促使SkyEye项目的诞生。 <br><br>3.SkyEye的目标和意义 <br>SkyEye是一个开源软件(OpenSource Software)项目,中文名字是"天目"。SkyEye的目标是在通用的Linux和Windows平台上实现一个纯软件集成开发环境,模拟常见的嵌入式计算机系统(这里假定"仿真"和"模拟"的意思基本相同);可在SkyEye上运行μCLinux以及μC/OS-II等多种嵌入式操作系统和各种系统软件(如TCP/IP,图形子系统,文件子系统等),并可对它们进行源码级的分析和测试。<br><br>3.SkyEye的目标和意义 <br>SkyEye是一个开源软件(OpenSource Software)项目,中文名字是"天目"。SkyEye的目标是在通用的Linux和Windows平台上实现一个纯软件集成开发环境,模拟常见的嵌入式计算机系统(这里假定"仿真"和"模拟"的意思基本相同);可在SkyEye上运行μCLinux以及μC/OS-II等多种嵌入式操作系统和各种系统软件(如TCP/IP,图形子系统,文件子系统等),并可对它们进行源码级的分析和测试。<br><br>纯软件的模拟器有许多种,如模拟一个芯片时序逻辑的模拟器、只模拟CPU指令的模拟器、模拟整个硬件开发板的模拟器、模拟一个PDA的模拟器等。存在一些纯软件的仿真器或模拟器,如Stanford大学的SimOS模拟器,它仿真的是MIPS系列CPU和相关外设,可以在其上运行SGI公司的Irix操作系统和软件,目前基本上停止了进一步的开发;PSIM是一个仿真PowerPC指令集的模拟器,目前只支持简单的命令行应用程序;xcopilot是一个PDA模拟器,它是由Greg Hewgill出于个人喜好编写的,它仿真的是M68K CPU,通过它可以给基于PalmOS的软件开发者提供一个模拟开发环境。Bochs是一个仿真x86 CPU的开源项目,目前还支持AMD64 CPU,在它上面可以运行Linux操作系统。其它一些商业的仿真软件如vmware和virtualPC可以仿真一个真实的x86计算机,而Virtutech Simics仿真器可以仿真多种CPU和硬件,功能强大,可用于硬件和系统软件的评测。<br><br>SkyEye是一个指令级模拟器,可以模拟多种嵌入式开发板,可支持多种CPU指令集,在SkyEye上运行的操作系统意识不到它是在一个虚拟的环境中运行,而且开发人员可以通过SkyEye调试操作系统和系统软件。由于SkyEye的目标不是验证硬件逻辑,而是协助开发、调试和学习系统软件,所以在实现上SkyEye与真实的硬件环境相比还是有一定差别的。SkyEye在时钟节拍的时序上不保证与硬件完全相同,对软件透明的一些硬件仿真进行了一定的简化。这样带来的好处是SkyEye的执行效率更高。SkyEye的推出具有下面三方面的意义:<br><br>通过SkyEye仿真集成环境可以很方便地进入到嵌入式系统软件学习和开发的广阔天地中。尤其对于缺少嵌入式硬件开发环境和软件开发环境的用户来说,它将是一个非常有效的学习工具和开发手段,因为SkyEye的整个软件系统都是Open Source的,且基于GPL协议(μCOS-II除外)。因此,如果要学习Linux操作系统或者进行嵌入式系统开发,但苦于没有硬件支持,SkyEye仿真环境软件是一个很好的选择! <br>如果想研究与具体硬件无关的系统软件(如TCP/IP协议栈等
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一口Linux

众筹植发

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值