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

2023-10-26

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安装成功!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

手把手教你搭建国产嵌入式模拟器SkyEye开发环境 的相关文章

  • Android几种定时任务实现方式汇总

    目录 前言 方式一 AlarmManager API19之前AlarmManager常用的一些方法 参数说明 使用举例 AlarmManager实例Demo讲解 包含版本适配以及高版本设置重复闹钟 AlarmManager总结 方式二 Ha
  • Linux 文件权限

    简介 在 Linux 的学习过程中 文件权限是一个很重要的概念 毕竟 Linux 中的各种操作都离不开权限的支持 这篇博客算是对 Linux 文件权限学习的一个简单总结 用户与用户组 Linux 的文件权限是和 用户与用户组 密切相关的一个
  • git、KDiff3、Git Extensions

    Git git概念 Git 是一个开源的分布式版本控制系统 用于敏捷高效地处理任何或小或大的项目 1 下载git软件路径 https git scm com download win 2 点击安装 一直下一步直到finish git下载后的
  • 为什么区块链宠物得到这么多资本家的青睐?

    区块链宠物最早进入人们视野是一款由Axiom Zen和以太坊智能合作开发的区块链宠物养成游戏 谜恋猫 也有人称其为加密猫 这款游戏基于以太坊产生 通过以太坊区块链上的智能合约进行追踪 用户需使用以太币购买猫咪 并通过智能合约自动分配 每15
  • linux搭建ftp

    ftp一些概念了解 Linux安装vsftpd及配置详解 1 安装 yum y install vsftpd 2 FTP主动模式与FTP被动模式 3 防火墙开启21端口 文中是使用iptables开启的 现在centos7 2版本默认是防火
  • Let's Encrypt 泛域名证书申请

    github https github com Neilpang acme sh 通过acme申请Let s Encrypt证书支持的域名DNS服务商有以下这些 国内用户较多的 cloudxns dnspod aliyun 阿里云 clou
  • 干货来了!!简单操作让你的GitHub格子重新绿起来

    自从得知了GitHub这个网站 我就开始把自己的代码每天提交上去 看着小绿格子慢慢的特别有成就感 事故 发生了 就在上周一之后我的小绿格子突然不变色了 我一直以为是学校网太差 一周过去了总觉得不对劲 专门找时间查了一下 经过在网上搜索 我的
  • 才华战胜资本,原创受到尊重(抄袭事件后续)

    你敢相信吗 别人剽窃了我的课程 居然还要告我侵犯对方名誉 吾本小镇做题家 侥幸考入理工大 水杉林赏二月兰 梧桐树下闻桂花 感恩福报996 披星戴月写代码 专利 软著 写博客 半个嵌入式专家 穿上长衫笑寒酸 脱下长衫忙油盐 ad PCB 嘉立
  • C语言实现url解析小实例

    一 前言 前面一口君写了一篇关于url的文章 一文带你理解URI 和 URL 有什么区别 本篇在此基础上 编写一个简单的用于解析url的小例子 最终目标是解析出URL中所有的数据信息 二 库函数 用到的几个库函数如下 1 strncasec
  • 显示器已入手,我快成显示器采购专家了

    上次发了一个请粉丝推荐显示器的文章 想入手显示器 恳请粉丝带我推荐 必有重谢 文章发出后 得到了很多粉丝的回复 一 粉丝留言 粉丝的热情让我再次懵逼 那么多推荐 我到底该选择哪一款 我是个处女座啊 性格逼着我必须做出最佳选择 没办法 我硬着
  • 一文教你如何用C代码解析一段网络数据包?【含代码】

    本文的目的是通过随机截取的一段网络数据包 然后根据协议类型来解析出这段内存 学习本文需要掌握的基础知识 网络协议 C语言 Linux操作 抓包工具的使用 其中抓包工具的安装和使用见下文 一文包你学会网络数据抓包 视频教学链接如下 教你如何抓
  • 一口Linux公众号粉丝过万总结

    0 楔子 终于万粉了 总算熬过了冷启动阶段 一万这个小目标看着很简单 但是实际做的时候 发现远没有自己想的那么容易 亿万粉丝 其实并不是很多 一度犹豫要不要写这个万份总结 和嵌入式领域内的一些大佬相比 这个粉丝量实在微不足道 也远没有到达我
  • 苏宁!你还挺得过去吗?(苏宁大幅裁员)

    前两天才写了一篇 作为一个江苏人 我眼中的苏宁 说实话 我内心是有点不太相信 偌大的苏宁会走到今天这步田地 可一件件传闻都慢慢变成了实锤 一 苏宁大裁员 一位多年老友刚跳槽去了苏宁 入职一个月 就面临整个部门裁员 据说要直接裁掉4成研发人员
  • ARMv8-A 地址翻译技术之MMU的前世今生

    MMU的重要性不言而喻 支撑操作系统之上的各种复杂应用 但在正式讲MMU之前 我们先说说MMU的发展史 因为ARMv8 A的MMU相当复杂 直接切入正题 会显得比较枯燥 废话不多说 咱们马上开始 一 前言 关于虚拟内存系统的演变史 MMU在
  • python request 爬虫爬取起点中文网小说

    1 网页分析 进入https www qidian com 点击全部 进行翻页 你就会发现一个规律 url https www qidian com all orderId style 1 pageSize 20 siteid 1 pubf
  • 聊一聊基础的CPU寄存器~

    寄存器 CPU内部的存储单元 用于存放从内存读取而来的数据 包括指令 和CPU运算的中间结果 使用寄存器来临时存放数据而不直接操作内存原因如下 CPU的工作原理决定了有些操作只能在CPU内部进行 CPU读写寄存器的速度比读写内存的速度要快很
  • nginx重启命令

    nginx s reload 修改配置后重新加载生效 nginx s reopen 重新打开日志文件 nginx t c path to nginx conf 测试nginx配置文件是否正确 关闭nginx nginx s stop 快速停
  • 谷贱伤农,薪贱伤码农!

    最近被东方甄选刷屏了 截止6月21日 粉丝已经达到1749万 飞瓜数据显示 东方甄选已经是抖音带货第一名 东方甄选火起来也就是从上周那个双语带货视频在各个社群里到处转发 走到今天 也不过才一周多点的时间 从初火到大火 东方甄选 一周封神 一
  • 看到了一个 蒙特卡洛方法 随机数得出 圆周率的c++ 源码

    package bt6 import java util Random 看到了一个 蒙特卡洛方法 随机数得出 圆周率的c 源码 复制过来 一个Java版的见笑了 author suifeng public class PITest publ
  • 链表【2】

    文章目录 24 两两交换链表中的节点 题目 算法原理 代码实现 143 重排链表

随机推荐

  • 【JVM】JVM-codecache内存区域介绍

    1 概述 转载 https leokongwq github io 2016 10 12 maven test html 2 JVM codecache内存区域介绍 大家都知道JVM在运行时会将频繁调用方法的字节码编译为本地机器码 这部分代
  • 网络层_数据平面_四(题目完成)

    网络 引入网络层学习 分组交换 虚电路VC 数据报网络 CIDR DHCP 路由器 IP数据报格式 IPv4 IPv6 过渡策略 双栈 隧道 特殊IP地址即内部IP地址 流表中匹配 动作 计算机自顶向下方法 第七版课后习题及答案 正在更新中
  • 论文解读:Investigating the Factual Knowledge Boundary of Large Language Models with Retrieval Augmentati

    论文解读 Investigating the Factual Knowledge Boundary of Large Language Models with Retrieval Augmentation 一 动机 Knowledge in
  • C++ 智能指针我得用用看

    文章目录 0 前言 0 1 使用智能指针的原因 0 2 智能指针和普通指针的区别 什么是智能指针 1 auto ptr 1 1 基本说明 1 2 例子 chestnut 1 3 使用建议 3 unique ptr 3 1 实现原理 3 2
  • [游戏开发]网络同步方式

    状态同步 优点 数据在服务器运算 客户端接收到的数据一定准确 防止数据作弊 角色数据在服务器 客户端只上传操作 想作弊没门 网络波动不敏感 多端表现可以不一致 重视数值准确 缺点 前后端数据包体大 服务器压力比较重 计算量 传输量 研发特点
  • java中冒号(:)的用法

    java中冒号的用法大概可以分为四种 用在for循环中 用来遍历数组 集合 中的元素 for x nums print x 用在三目运算符中 表达式 执行语句1 执行语句2 这里的冒号是用来根据前面表达式的值正确与否 选择后面对应执行语句的
  • 多线程实现的方式

    1 继承Thread类 通过继承Thread类 并重写run方法 public class MyThread extends Thread public static void main String args MyThread myThr
  • sudo vim找不到命令(Ubuntu16.04)

    在使用vim配置环境变量时 提示 sudo vim 找不到命令 原因是因为没有安装vim 下面我们就来在终端进行安装一下 前提是需要连上网了 没有联网不在此考虑范围 1 进入终端 Ctrl Alt T 出现终端窗口 2 输入命令 sudo
  • Linux:WSL 下 CTS 环境搭建及无法识别设备问题

    WSL Windows Subsystem for Linux 简称WSL 是一个在Windows 10上能够运行原生Linux二进制可执行文件 ELF格式 的兼容层 它是由微软与Canonical公司合作开发 其目标是使纯正的Ubuntu
  • mysql [Err] 1118 - Row size too large (> 8126).

    错误代码 1118 Row size too large gt 8126 Changing some columns to TEXT or BLOB may help In current row format BLOB prefix of
  • 获取服务器系统,获取服务器操作系统

    获取服务器操作系统 内容精选 换一换 服务器安装上架 服务器基础参数配置 安装操作系统等操作请参见 Atlas 500 Pro 智能边缘服务器 用户指南 型号 3000 安装操作系统完成后 配置业务网口IP地址 请参见配置网卡IP地址 At
  • arduinows2812灯条程序_Arduino 控制WS2812 LED灯条

    传统的LED限制总是很多 比如需要很多的引脚 所以有一种很好的解决方案是用灯条 理论上这种灯条可以通过通讯 用一根数据总线可以控制达到无上限个数的RGB LED灯珠 并且在数量在1024以下时 延迟是不可察觉的 使用手册可查 主要功能 通过
  • Day 3 Mastering the Interface Definition Language (IDL)

    Teach Yourself CORBA In 14 Days Day 3Mastering the Interface Definition Language IDL Overview IDL Ground Rules Case Sens
  • momentJS时间加减处理

    计算最近在使用JavaScript计算时间差的时候 发现很多问题需要处理 在查看momentJS之后 发现非常容易 console log moment format YYYY MM DD HH mm ss 当前时间 console log
  • 基于nodejs的在线跑腿管理系统

    末尾获取源码 开发语言 nodejs 框架 Express 数据库 MySQL5 7 数据库工具 Navicat 11 开发软件 Hbuilder VS code 浏览器 edge 谷歌 目录 一 项目简介 二 系统功能 三 系统项目截图
  • go语言context保存上下文

    contxt保存上下文适合全局参数传递 而普通的参数传递就没必要用context 因为不好维护 关于context具体用法可以参考 https studygolang com articles 23247 fr sidebar packag
  • java函数的定义方法_java函数的定义以及使用方法介绍

    java函数的定义以及使用方法介绍 发布时间 2020 04 24 16 28 40 来源 亿速云 阅读 116 作者 小新 今天小编给大家分享的是java函数的定义以及使用方法介绍 相信很多人都不太了解 为了让大家更加了解java函数 所
  • AJAX&&JSON

    课程笔记Day46 AJAX JSON 综合案例 第一章 AJAX 第01节 基础理论 1 概念说明 1 什么是 AJAX AJAX是一项技术合集 他是由一套技术组合得到的新技术方案 异步请求技术 2 AJAX有什么作用呢 使用Ajax技术
  • C++ 删除文本数据中第一个元素

    由于项目需要删除第一个字符 然后按照相同顶格显示 如下 v 279 268005 37 345402 2 081520 v 280 971985 37 074699 1 353890 v 279 015991 44 888100 1 609
  • 手把手教你搭建国产嵌入式模拟器SkyEye开发环境

    SkyEye介绍 SkyEye是一个开源软件 OpenSource Software 项目 中文名字是 天目 SkyEye的目标是在通用的Linux和Windows平台上实现一个纯软件集成开发环境 模拟常见的嵌入式计算机系统 这里假定 仿真