个开放源码的嵌入式仿真环境——SkyEye
6.2 基于ARM的其它体系结构的仿真
S3C4510B是三星公司推出的针对嵌入式应用的16/32位嵌入式处理器,是一款应用十分广泛的嵌入式处理器。该微控制器专为以太网通信系统的集线器和路由器而设计,具有低成本和高性能的特点。S3C4510B中内置了ARM公司设计的16/32位ARM7TDMI处理器,可以执行32位的ARM指令,也可执行16位的THUMB指令,并集成了多种外围部件。目前,SkyEye仿真的体系结构还比较少,尝试对S3C4510B的仿真,一方面是使SkyEye能够支持更多的体系结构;另一方面,通过仿真S3C4510B,有助于为SkyEye设计可扩展框架,使SkyEye更具通用性和模块化。
Intel公司的StrongARM芯片SA1110的最高运行速度可达206MHz;其内部有强大的指令操作能力、高速缓冲能力、寄存器管理能力、读/写缓冲器能力。SA1110寄存器总线接口可与DRAM、SDRAM、ROM、SMROM、SRAM以及其它潜在的I/O器件共享数据信号,其寄存器与PCMCIA模块支持4个快速大同小页操作模式(FPM)、扩展数据输出(EDO)、同步DRAM、6个静态存储器、6个ROM/SDRAM等。SA1110可提供系统支持逻辑、多个串行通信通道、1个彩色/灰度LCD控制器、2个PCMCIA插槽、28个GPIO口;内部提供定时器、电源管理、指令控制、复位控制、时钟产生、中断控制等功能。SA1110电源管理提供正常、空闲、睡眠三种工作状态,其内部包含六通道的DMA控制器,用于支持串行通信过程中的数据高速运行,如串行通道与外部寄存器、DRAM、SRAM、Flash、ROM等之间的通信;此外,还有1个用于支持LCD控制器工作的独立的DMA控制器SA1110,它有5个独立的串行通道,可分别执行半双工被动协议的通用串行总线(USB)通信、红外数据(IrDA)通信、多媒体通信口/同步串行口(MCP/SSP)通信等。SA1110通过指令和数据断点提供调试支持,还提供JTAG口,用于进行系统连续检查。通过对StrongARM芯片的仿真,除了有助于SkyEye设计可扩展框架外,还将推动下一步对Intel的XScale系列CPU的研究。
5.3 SkyEye集成开发环境的实现
集成开发环境是SkyEye的一个重要组成部分,利用它,可以直接在可视环境中编辑、编译、调试和修改OS代码,方便了软件开发和称一。由于SkyEye的用户接口是基于GDB的,所有支持GDB的集成开发环境都可以很容易地移植为SkyEye的集成开发环境。目前的Windows版本借鉴Dev-Cpp的源代码,主要与Cygwin版本的SkyEye进行通信,以进行方便的、可视化的调试。Linux版本的IDE采用的是修改过的KDevelop3.0,目前它能和SkyEye进行很好的集成,完成全以充分利用Kdevelop3.0的强大功能。
6.4 SkyEye可扩展框架的设计
目前SkyEye各个部分的仿真还是紧耦合的,各仿真模块之间的接口还不够清晰,这不利于SkyEye的扩展。如果要支持更多的CPU和嵌入式环境,需要很大的工作量,而且用户也无法进行二次开发,阻碍了SkyEye的进一步推广和应用。这就需要为SkyEye设计一个可扩展框架。目前,框架的设计要集中于定义和实现CPU的内部接口,如内存接口和协议处理器接口等,以让它支持更多的CPU;下一步会为SkyEye设计虚拟外部接口,让用户可以根据自己的硬件或者应用,来定义外设的功能,并能在SkyEye上方便地仿零点和验证,从而为用户增加二次开发的功能,让SkyEye得到更广泛的应用。
7 总结与展望
经过几个月的努力,SkyEye已经有了很大的发展,各方面的工作已经按照计划有条不紊地进行着。可以说,SkyEye作为嵌入式系统的仿真环境,已经成为学习嵌入式系统十分
有效的工具。同时,SkyEye在许多方面还有待手改进:一是要提高SkyEye的易用性,这就需要完善SkyEye的集成开发环境,改善其用户接口;再就是提高SkyEye的通用性,这需要SkyEye支持更多的外围设备、更多的体系结构乃至更多的CPU类型。
在开发的过程中,SkyEye项目得到了很多嵌入式爱好者大力的支持和热情关注,项目的开发队伍也在不断壮大。作为开源项目,SkyEye真诚希望广大计算机爱好者积极参与与并对SkyEye的发展提出宝贵的意见和建议。
《个开放源码的嵌入式仿真环境——SkyEye(第5页)》