手机/通信/网络设备
按行业筛选
请选择行业
----------------------
-全部行业
------------------
-机床与金属加工设备
-刀具/量具/夹具/磨具
-模具设计与制造
-塑料机械/橡胶机械
-通用机械/化工机械
-工程机械/建材机械
-交通运输/海工装备
-农业机械
-食品机械/烟草机械
-包装机械
-印刷机械/广告设备
-纺织机械
-木工/造纸/环保/医疗设备
-物流设备
-智能楼宇/安防设备
-炉窑/热处理设备
-五金工具
------------------
-工业自动化
-佳工激光网
-仪器/仪表/衡器
-电力设备
-电子/通讯/办公文具
-家电/照明/健康设备
------------------
-基础件/通用件
-标准件
-工业原材料
-电子元器件及材料
-包装材料
------------------
-CAD/CAM/PDM/PLM
-ERP/制造业信息化
-管理咨询/认证
-服务/培训/工业设计
按产品筛选
----------------------
-本行业全部文章
--------------------
-电子产品
-手机/通信/网络设
-电子工业设备
-广播影视设备
-金融/办公设备
查看本类全部文章
手机开发--系统仿真加速应用开发
作者:ARM公司 Mark Snook
各种不同类型和型号的手机对于软件开发者来说会产生严重的问题。尽管大多数手机都是基于ARM处理器架构,但还是有从ARM9到ARM11系列的很多种不同的处理器内核实现方式,以及来自TI、高通或Atmel等厂商的各种不同的外围器件。
由于硬件的这种多样性,为各种不同的手机型号开发和测试新的应用软件和游戏可能很困难。开发最好的游戏需要大量的软件工程师,开发商要求他们专注于提供最好的游戏体验,而不是关注于移植和测试代码到许多种不同的手机平台。与之类似的是,手机供应商想为每年更新的新手机提供新游戏,因此开发必须快速完成,如果代码必须移植到不同的平台并完全测试,这就会带来另一个问题。
需要安全处理和功率管理的应用程序必须深入挖掘处理器性能,以充分利用硬件特性。由于手机运行在不同的执行环境下,因此能够在Linux,Symbian和微软的操作系统下完全测试应用程序变得至关重要。
如今的仿真技术能帮助软件开发者在远早于实际硬件出现之前,在需要的操作系统下和特定的硬件平台上编写和测试高级应用的代码。这就允许开发者更早地开始开发,只写一次代码内核,就可以在开发早期在该硬件的各种变化形式上测试。
来自于ARM, CoWare,VaST, Virtio/Synopsys和Virtutech的仿真工具现在可以让开发者在开发早期就编写和测试代码,更快和更高质量地推出应用。工具和模型的生态系统正在出现,这是在软件开发者和开发模型的开放标准的需求下产生的。
这些仿真工具使用的硬件模型以实际速度运行。不同于那些在芯片开发过程中仿真硬件的模型,这些模型给编程者提供了隐藏在下面的硬件的视角。这些模型被精简至确保功能正确,但是提供了必要的执行速度,从而可以实际仿真目标硬件上运行的应用软件。
最近OSCI(开放SystemC倡议标准组织)已经为PV模型和接口制定标准,从而允许不同来源的模型能在一个仿真中结合。这些高级的功能模型可以使用主操作系统的API访问计算机的资源,如音频和视频子系统,允许快速创建抽象模型。在开发周期的后期,这些模型可以在寄存器和位级别和真实硬件功能相同,允许开发者编写依赖于硬件的软件,如设备驱动程序和启动代码。代码优化因此可以实现,能从手机中得到最好的性能和最长的电池寿命。但是一些软件开发者仍旧需要帮助来使这些模型组合起来并高效运行。应用程序开发者不是硬件工程师,他们不想开发复杂的硬件模型。
为了解决这一点,一些仿真工具提供了整合模型的服务,它们通常保持对模型中IP的控制。尽管这种服务可以满足应用开发者的需求,但是过于昂贵和耗时,从而限制了它的使用范围。
另外一种方法是提供芯片组和电子器件的参考设计。这种参考设计结合了处理器内核和外设模型,如LCD显示、键盘和通信接口等。比如,以太网控制器允许预先准备的数据用于测试,甚至允许仿真连接到互联网以显示代码在连接到真实世界的互联网时会如何响应。
仿真器的皮肤容许终端设备自身能够在PC上仿真。这提供了具有键盘和屏幕的手机的视角,因此能够完全测试用户界面以检查用户体验的质量。图1说明了这点。
图1 软件应用在虚拟平台的顶端执行,和主机的操作系统通信
参考平台也允许软件开发者根据目标硬件的代码,在不同外设的模型间切换。甚至定制和已有的传统模型也能进入参考平台中精确匹配的目标硬件。一些工具,比如ARM公司的RealView System Generator具有开放的接口用于开发定制的模型。 OSCI的规范也简化了应用软件开发者或硬件提供者模型的开发,加强了现有模型的生态系统,并为应用开发者提供了更多的价值。
在过去,这类软件开发平台的主要问题是性能。现在PC工作站性能的增加和新一代处理器内核的高速模型允许仿真以实际速度运行。在仿真必须运行操作系统并且在其上运行应用时,这点特别重要。
以ARM公司为例,处理器内核自身由周期精确的模型开发出来,并使用大量的测试程序检验。这个同样的工具由ARM公司用来检测使用的PV模型的功能准确性,以用于软件仿真。关键是用这些模型可以得到最高的性能,并优化了处理器内核的指令执行与到存储器和外设的接口。处理器内核模型通常采用了称为动态二进制转换的技术来获得所需的性能。表一显示了使用ARM RealView平台测试得到的结果。
然后,在PV模型上运行的软件验证回硬件以确保它的功能正确,因此软件开发者能够确保代码以硬件相同的方式运行。这种仿真速度和精确度的结合是至关重要的。
该仿真器必须和调试和软件开发环境紧密连接。仿真代码只是开始,代码开发者需要能够确定问题区域,在出现问题时使用断点和访问系统状态。
图2 ARM的RealView System Generator产生的仿真模型的性能
如果开发工具能访问仿真模型的调试接口会非常有用,这就无需利用系统资源,比如通信端口。当使用通用Linux操作系统或其它第三方开发工具的gdb调试器时,这可能是唯一的选择。当然最好是,调试器和编译器紧密相连到仿真器,提供给开发者代码运行的清晰视角和优化性能或代码大小的能力。
使用来自模型提供者的工具也意味着代码能为所有的ARM内核开发、调试和仿真,包括从ARM9到ARM11一直到最新的Cortex A8。这节省了应用开发的大量时间,允许代码库在不用的硬件平台和不同的操作系统上完全测试和优化。
这些平台不依赖于真实的硬件,能够通过电脑部署,所以软件开发团队能利用同样的模型组合不同的应用和测试整个软件环境。这节省了运送开发板的成本,因此改善了设计团队的生产力。
高级仿真由于PC性能的提高、高速的模型、不断增加的基于标准的模型的生态系统而变得可行。与能够完全理解仿真的开发工具的结合极大地减少了开发新应用的时间,因此减少了开发成本,并改善了终端应用的质量。 (end)
文章内容仅供参考
(投稿 )
(5/21/2007)
对 手机/通信/网络设备 有何见解?请到 手机/通信/网络设备论坛 畅所欲言吧!