由于内部wiki维护,暂时使用博客备份一下。
因为硬件更新速度较快,SkyEye作为仿真平台,没办法对所有架构的所有板级以及外设全面支持,所以仿真平台对架构要求略高于一般软件,其目的如下:
1. 支持大多数架构的扩展,例如SkyEye支持arm, ppc, sparc等等,不同架构都是基于SkyEye核心库提供的接口进行开发,所以SkyEye核心库需要将不同架构的逻辑总结并进行抽象。
2. SkyEye作为仿真平台,还要具备一些仿真平台应具备的调试功能,如:断点,单步,查看内存,读写寄存器等等,这些调试功能的实现也需要通过一个中间层将不同架构与调试模块桥接起来,在调试端不关心我要调试某个平台,只要我单步,PC就可以走一条指令就OK。
3. 文章开始就提到,SkyEye没办法对所有外设进行支持,所以在外设建模接口设计这块,需要花很多心思。建模接口既要能支持所有外设的实现,又要通俗易懂,让建模者很快的扩展自己需要的外设。SkyEye建模接口也是现在SkyEye团队重点花心思的地方,我们也借鉴了国内外比较成功的仿真平台建模架构的实现,根据SkyEye自己的情况不断完善。
下面介绍一下SkyEye建模架构:
一. 建模关键字
1.1 关键字概述
1. Class:每个模块对于SkyEye平台来说都是一个类(尽管SkyEye是用C语言实现,对C语言面向对象编程感兴趣可以参照