应用程序和软件服务是智能手机和平板电脑等移动设备的主要区别。复杂多功能软件应用程序的原型设计、开发、调试和验证是一项重大工作,当软件依赖于仍在开发中的硬件功能且电路板尚不可用时,这尤其具有挑战性。
今天的硬件是根据软件需求定义和配置的。基于各种软件和硬件服务(如音频/视频、GPS、传感器和无线电)的应用程序的启动带来了重大的调试挑战。调试不会在单个软件模块、库或软件层的边界处结束;它涉及分析多个软件实体之间的交互。同样,验证需要涵盖功能性能和功率要求。
对于复杂软件服务的原型设计、开发、调试和验证,Synopsys 提供了一个同时解决软件和硬件架构的原型设计环境。该环境的核心是 ARM Cortex-A9x4 四核 Versatile Express 板的虚拟原型(图 1),它捆绑了完整的 Android 2.1 端口。软件开发人员可以充分利用 Cortex-A9 CPU 以及 Android 和 Linux 2.6 内核支持的四路对称多处理 (SMP)。
图 1: Synopsys 虚拟查看器简化了 Java 应用程序中的本机代码分析和调试。
通过虚拟化以太网连接,通过 Android Debug Bridge 与 Google 的基于 Eclipse 的软件开发工具包集成,虚拟原型可用于一般的 Android 应用程序开发。它提供了专门的支持来简化 Java 应用程序中的本地代码分析和调试。越来越多的性能关键代码以及遗留 C 代码被编译到 ARM CPU 的本机库中。挑战在于调试这些库以及 Java 应用程序、Android 运行时环境、中间件库和操作系统。这对于 SMP Linux 来说更加困难,因为形成复杂的多功能软件服务所需的每个进程和线程都可能在不同的 CPU 上执行,并在重新调度时更改 CPU。
虚拟原型与软件分析环境相辅相成,该环境可视化每个 CPU 随着时间的推移这些进程的调度。执行此分析的能力基于虚拟原型内的专用操作系统感知监视器。因此,不需要嵌入式软件工具。每个过程都可以分析到功能甚至指令级别。
脚本可以对所有硬件和软件方面进行全自动控制和检查。这对于功能、性能和功率验证至关重要。具有环境交互的复杂场景(例如触摸屏、键盘或无线电事件)可以轻松地以确定性方式记录和重复。系统级以软件为中心的断言框架允许软件工程师轻松地将断言挂钩到重放场景中。这些断言可以验证用户通过应用程序执行的操作是否通过不同的软件层正确传播到硬件。连同功能方面,随着时间的推移分析电源状态,提供有关消耗能量的信息。
虚拟原型基于 Synopsys 模型库和 ARM 的快速模型。用户可以使用自定义 SystemC TLM-2.0 兼容模型扩展虚拟原型。
审核编辑:郭婷
全部0条评论
快来发表一下你的评论吧 !