个开放源码的嵌入式仿真环境——SkyEye
关键词:SkyEye 仿真 μClinuxμ/OS-II Linux 嵌入式系统
1 SkyEye的目标与意义
1.1 SkyEye产生的背景
操作系统是软件产业的基础和龙头,能左右软件产业发展的方向,是世界软件产业最大的利润来源。对于后PC时代和普适计算(pervasive computing)而言,嵌入式系统无处不在,其中关键的软件核心技术包括嵌入式操作系统和网络互联中间件等。
对于想进行嵌入式系统软件开发和学习,或者想研究嵌入式Linux等操作系统和一些底层系统软件(如TCP/IP等)的研究和开发人员来说,可能存在如下几方面的问题:①经常苦于经费不足,缺少足够的硬件开发板和完善的软件开发环境;相关的书籍对一些最新软件的分析还不够全面,无法深研究和开发嵌入式软件。②高层次的软件设计和开发一般不用过多考虑底层硬件的实现细节,如果直接处于一具体的硬件环境下,在开发和研究中可能会陷入硬件的具体细节中不能自拔,而不能把精力放到高层次的软件设计和开发上。③如果硬件开发环境不太稳定(这种情况经常见到),且对身体的硬件不是很了解,则可能在排除问题上花费大量不必要的时间。
对于想了解、学习一般操作系统的实现原理、Linux/μClinux操作系统或TCP/IP等系统级软件的实现的人员,目前一般采用的方法是看书和读源代码。这是一种静态的学习方法,但效率较低,比较枯燥,缺少一种动态和亲自实践的感觉。要想深入分析和开发软件,就要动手编程,不能只是看看书,读读代码,只有通过亲手实践才能够掌握软件设计的核心内容。
上面所指出的问题和需求促使了SkyEye项目的诞生。
1.2 SkyEye的目标和意义
SkyEye是开源软件(OpenSource Software)项目,中文名字是“天目”。SkyEye的目标是在通用的Linux和Windows平台实现一个仿真集成开发环境,模拟常见的嵌入式计算机系统;可在SkyEye上运行μClinux以及μC/OS-II等多种嵌入式操作系统和各种系统软件(如TCP/IP、图形子系统、文件子系统等),并可对它们进行源码级的分析和测试。SkyEye的推出具有下面三方面的意义。
①通过SkyEye仿真集成环境可以很方便地进入嵌入式系统软件学习和开发的广阔天地中。尤其对于缺少嵌入式硬件开发环境和软件开发环境的用户来说,它将是一个非常有效的学习工具和开发手段,因为SkyEye的整个软件系统都是Open Source的,且基于GPL协议(μC/OS-II除外)。因此,如果要学习Linux操作系统或者进行嵌入式系统开发,但苦于没有硬件支持,SkyEye仿真环境软件是一个很好的选择!
②如果想研究与具体硬件无关的系统软件(如TCP/IP协议栈等),采用SkyEye可以有效地提高工作效率,因为你可以直接在μCOS-II和μClinux for SkyEye上进行开发和调试,而与具体硬件打交道的各种Driver已经存在,且有源码级调试环境,只需关心高层的逻辑设计和实现就可以了。
③SkyEye本身作为一个开放式的项目体系,可以划分为多个独立的子项目系统。通过参与SkyEye的各个子项目,与大家共同交流、协议,可以进一步学习、分析、精通Linux内核,掌握ARM嵌入式CPU编程。
在32位嵌入式CPU领域中,ARM系列CPU所占比例相当大,而ARM7TDMI是其中使用最广泛的CPU之一,因此,SkyEye首先选择了ARM7TDMI作为仿真的目标CPU。目前,SkyEye上可运行并进行源码级调试的有μClinux、μC/OS-II操作系统和LwIP(一个著名的嵌入式TCP/IP实现)、ARM Linux等系统软件。SkyEye可用于学习、分析、开发这些系统软件,了解ARM嵌入式CPU编程,而这一切都可在一个集成环境中完成。如果能够改进SkyEye本身,则大家对ARM、8019Ethernet网络芯片等硬件的了解也会更深入。
SkyEye并不能完全取代开发板等硬件的功能,但通过它可以比较容易地进入到嵌入式软件开发的广阔天地中。由于SkyEye建立在GDB基础之上,使用者可以方便地使用GDB提供的各种调试手段对SkyEye仿真系统上的软件进行源码级的调试,还可以进行各种分析,如执行点分析、程序执行覆盖度分析等。由于SkyE
《个开放源码的嵌入式仿真环境——SkyEye》