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

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安装成功!
手把手教你搭建国产嵌入式模拟器SkyEye开发环境的更多相关文章
- 大数据江湖之即席查询与分析(下篇)--手把手教你搭建即席查询与分析Demo
上篇小弟分享了几个“即席查询与分析”的典型案例,引起了不少共鸣,好多小伙伴迫不及待地追问我们:说好的“手把手教你搭建即席查询与分析Demo”啥时候能出?说到就得做到,差啥不能差人品,本篇只分享技术干货 ...
- 手把手教你搭建Pytest+Allure2.X环境详细教程,生成让你一见钟情的测试报告(非常详细,非常实用)
简介 宏哥之前在做接口自动化的时候,用的测试报告是HTMLTestRunner,虽说自定义模板后能满足基本诉求,但是仍显得不够档次,高端,大气,遂想用其他优秀的report框架替换之.一次偶然的机会, ...
- 手把手教你搭建FastDFS集群(下)
手把手教你搭建FastDFS集群(下) 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/u0 ...
- 手把手教你搭建FastDFS集群(中)
手把手教你搭建FastDFS集群(中) 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/u0 ...
- 手把手教你搭建FastDFS集群(上)
手把手教你搭建FastDFS集群(上) 本文链接:https://blog.csdn.net/u012453843/article/details/68957209 FastDFS是一个 ...
- 手把手教你搭建 ELK 实时日志分析平台
本篇文章主要是手把手教你搭建 ELK 实时日志分析平台,那么,ELK 到底是什么呢? ELK 是三个开源项目的首字母缩写,这三个项目分别是:Elasticsearch.Logstash 和 Kiban ...
- 手把手教你搭建SSH框架(Eclipse版)
原文来自公众号[C you again],若需下载完整源码,请在公众号后台回复"ssh". 本期文章详细讲解了SSH(Spring+SpringMVC+Hibernate)框架的搭 ...
- 庐山真面目之十一微服务架构手把手教你搭建基于Jenkins的企业级CI/CD环境
庐山真面目之十一微服务架构手把手教你搭建基于Jenkins的企业级CI/CD环境 一.介绍 说起微服务架构来,有一个环节是少不了的,那就是CI/CD持续集成的环境.当然,搭建CI/CD环境的工具很多, ...
- Github Pages(io) + 域名重定向 (手把手教你搭建个人网站)
好歹也成为了在读phd的人,拥有个人网站是个有排面有很必要的事儿~ 在这里利用Github Pages + 域名重定向,实现个人网站的光速搭建~ 1.0 Github Repositories 首先你 ...
- 手把手教你搭建自己的Angular组件库 - DevUI
摘要:DevUI 是一款面向企业中后台产品的开源前端解决方案,它倡导沉浸.灵活.至简的设计价值观,提倡设计者为真实的需求服务,为多数人的设计,拒绝哗众取宠.取悦眼球的设计.如果你正在开发 ToB 的工 ...
随机推荐
- Go1.13的坑:无法结束Goroutine
背景 本人作为一名SRE,想用Go模拟Cpu占用100% 1秒钟,但是在Go1.13上遇到了问题,1s后Goroutine不会停止. 只要用了for{},Goroutine就无法结束,即使主Gorou ...
- Django-缓存、信号与序列化
缓存 1.缓存的简介 在动态网站中,用户所有的请求,服务器都会去数据库中进行相应的增,删,查,改,渲染模板,执行业务逻辑,最后生成用户看到的页面. 当一个网站的用户访问量很大的时候,每一次的的后台操作 ...
- 记一个,生产遇到的redission锁,释放问题:lock.tryLock(0, 0, TimeUnit.SECONDS)
package com.aswatson.cdc.test; import org.redisson.Redisson; import org.redisson.api.RLock; import o ...
- 题解:洛谷 P1137 旅行计划
标签:图论,拓扑,dp 题意 给定一张 \(n\) 个点 \(m\) 条边的 DAG,对于每个 \(i\),求以它为终点最多经过多少个点? 思路 由于是 DAG,求的是终点 \(i\) 经过的所有点, ...
- Spring Reactor基本介绍和案例
1. Reactor 对比 1.1 Reactor 线程模型 Reactor 线程模型就是通过 单个线程 使用 Java NIO 包中的 Selector 的 select()方法,进行监听.当获取到 ...
- UNR #7 Day2 T1 火星式选拔题解
放一个比赛链接 先考虑打完暴力后 \(k = 1\) 的特殊性质. 当队列容量为 \(1\) 时,队中的人 \(i\) 会被第一个满足 \(i \leq j\) 且 \(b_i \leq a_j\) ...
- virtualbox ubuntu拓展存储空间
1. 关闭虚拟机,右键点击virtualbox图标,选择打开文件位置,记录下路径: 2. 找到需要拓容的ubuntu虚拟机的.vdi文件,记录下路径: 3. windows命令行转到virtualbo ...
- ffmpeg -使用总结
ffmpeg 使用总结,不定期更新 ---------------------------------------- 1. 将截图合成影片: ffmpeg -i ./shot/%d.tiff -thr ...
- Log4j日志输出级别详解
log4j定义了8个级别的log 日志记录器(Logger)的行为是分等级的: 1.分为OFF(关闭所有日志).FATAL(致命错误).ERROR(异常报错).WARN(潜在错误).INFO.DEBU ...
- oeasy 教您玩转linux 之 010209 装酷利器 hollywood
我们来回顾一下 上一部分我们都讲了什么? 屏幕故障风格的软件包bb 可以设置音频 这次装一个酷 下个hollywood软件包 apt show hollywood apt search hollywo ...