安装Skyeye学习ARM汇编

17 篇文章 1 订阅
15 篇文章 0 订阅
本文介绍了如何在Ubuntu环境下安装开源项目Skyeye,它是一个ARM模拟器,允许用户在PC上进行ARM汇编的开发和调试。文章详细阐述了从下载源码、解压、编译安装到测试的全过程,帮助读者快速入门ARM汇编学习。
摘要由CSDN通过智能技术生成

对于希望学习ARM汇编的同学而言, 购买ARM开发板进行板上实测无疑是一个有效的方法,不过购买ARM开发板需要一笔费用,而且每次测试都需要连接开发板,比较麻烦。如果有一个ARM的模拟器就好了,抱着这样的想法在网上找了一下,发现了Skyeye,还是我们中国人开发的。通过Skyeye,可以直接在一台PC上完成ARM汇编的开发调试工作了,摆脱了ARM开发板的限制,真是不错!

 

不过,开始介绍Skyeye安装之前还是给各位同学一个建议,如果经费不是特别紧张,还是建议买一个开发板的。在开发板上运行一段程序给你带来的成功感会远远大于你模拟器给你带来的成功感。通过开发板可以激励你继续学习ARM汇编,而通过模拟器可以为你节省一些时间。

 

Skyeye是一个开源项目,可以在网上下载然后编译,建议使用Linux环境进行编译安装,我使用的还是Ubuntu10.0.4,具体安装过程如下:

 

1. 下载Skyeye源码包

Skyeye最新发布的是1.3.3版本,下载地址如下:

http://sourceforge.net/projects/skyeye/files/skyeye/skyeye-1.3.3_rc1/

下载后是一个gz文件,名为skyeye-1.3.3_rel.tar.gz,总共才16M左右,很快可以下载完

 

2. 上传Skyeye包到Ubuntu 上并解压

使用你觉得最方便的方法将下载的skyeye-1.3.3_rel.tar.gz文件上传到Ubuntu上,并通过tar命令解压

tar xzvf skyeye-1.3.3_rel.tar.gz

解压后出现一个skyeye目录,就是Skyeye的源码包了。

 

3. 编译安装Skyeye

进入skyeye目录,依次执行如下命令:

./configure
make lib

make install_lib  (注释:此前漏掉了这句,漏掉这句后面会出错的,特此修正2012/03/10。)
make

make install

 

在执行make命令的时候有可能出现缺少某些文件的错误,根据错误的信息更新一下Ubuntu就好了。

比如,我执行make的时候报

Fatal error: X11/xpm.h: No such file or directory

Compilation terminated

 

是说xpm.h文件找不到,通过一下命令更新Ubuntu后再次执行make就没有问题了。

sudo apt-get install libxpm-dev

 

4. 测试Skyeye

安装了Skyeye后执行文件出现在/opt/skyeye/bin目录中,注意1.3.3的Skyeye可执行命令不是skyeye,而是skyeye_main.py,执行后进入Skyeye命令行状态表示安装成功。

 

5. 运行测试代码

为了快速开始代码测试工作,可以从Skyeye自带的arm_hello 入手。

进入/opt/skyeye/testsuite/arm_hello目录,执行:

/opt/skyeye/bin/skyeye_main.py -e arm_hello

会进入Skyeye命令行状态,执行以下命令

start

会弹出一个窗口,里面显示“Connecting to Ubuntu:xxxx”。

然后继续在Skyeye命令行界面执行以下命令:

run

可以发现弹出的窗口中开始出现“helloworld”字样。

 

6. 阅读修改arm_hello

测试成功后可以阅读一下arm_hello的代码,而且可以以arm_hello作为起点开发测试自己的代码。

当然前提是你的toolchain已经设置好。

需要关注的有三个文件Makefile , start.S hello.c

 

Makefile中需要修改编译工具和链接工具  ,让make命令可以正常执行

start.S是一段ARM汇编,不断调用hello.c中的hello方法

hello.c是打印函数的实现,将“helloworld”字符串输出到指定地址中。

 

 

开始吧,测试你自己的ARM汇编代码!!

 

 

 


 

对于那些想进行嵌入式系统软件开发和学习,或者想研究嵌入式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协议栈等
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值