虽然不同环境下的软件应用的发展都有其相似的特点,但对于用于嵌入式控制的软件,就需要一些严格的要求和限制。执行速度、时间问题、存储容量、测试和安全的范围等问题,都比常用的PC-based软件需要更高的要求。
其他差别还有,直接与目标硬件(target hardware)进行相互作用,而非编码行。要从嵌在机械中的目标控制器和芯片获得期望的性能,模仿和模拟就是开发过程的重要部分。软件还能适应经常改变的情况。
编码大小和执行速度
是开发通用软件还是嵌入式控制软件www.cechina.cn,Cypress Semiconductor Corp 子公司Cypress MicroSystems 的市场主管Nathan John提出,设计者必须斟酌代码的大小、执行速度和程序调试时间等问题。
John认为,例如代码大小问题,它对于嵌入式程序一贯是重要的。大多数嵌入式应用都束缚于代码空间问题,太低的空间对于编码是毫无作用的。与此不同的是,通用软件设计者很少为代码空间不足的问题而烦恼。至于执行速度,嵌入式软件设计者必须满足终端用户的速度要求
Green Hills Software Inc.的生产管理主管David Barnett对此的观点是,嵌入式软件在实时性(或确定性)的要求上比普通软件更为严格CONTROL ENGINEERING China版权所有,确保能与被控制过程或系统保持同步。而且,存储空间、处理器速度和其他资源必须最小化以优化应用资源,还包括可靠性。Barnett还提出,这些最小化概念的不同原因要根据一些规范:大批量应用的成本最小化、电池使用的最小电能消耗以及在任何环境或形式等因素下的最小化热耗散。
他也提到,更高可靠性的需要,嵌入式软件控制涉及一些重要工业、医疗、汽车和航空业。嵌入式软件需要更高的安全性以保护来自外部的侵袭,它能允许划分不同的安全应用www.cechina.cn,这样更多的苛刻质量保证成为软件高可靠性需求的一部分(也就是说,控制性能和用户界面的两方面)。
使用软件工具的益处
Wind River认为,嵌入式控制软件的开发依赖于多工具的专业功能(a multitude of tools with specialized function),从应用设计到传统的工具,如编译、调试和测试工具。Wind River市场主管Marc Serughetti认为,这类软件的一个显著的特点,是用户在标准的主机(如,PC或Unix)上开发他们的应用,但软件并非很适合这样的主机。嵌入式应用软件在特定的硬件上运行,所有的工具可以在主机上可视化,并在特定硬件上执行软件。
Serughetti还认为,对于嵌入式软件,调试能力尤其重要。在Wind River的产品中,visionTrace系列能监控集成编程流程,更快的调试代码。
此外,Wind River提到的开发工具还包括,软件实时可视化的优点。以一种实时图像监控器StethoScope为例,允许用户查看系统中任何变量的或存储位置,而代码仍将保持运行状态。可观测、分析和保存峰值和代码异常。StethoScope的另一个分析工具CONTROL ENGINEERING China版权所有,则可显示在测试情况下,哪部分代码正处于执行状态中。彻底的代码测试能在软件下载前找出并修补更多潜在的缺陷。在设计过程中CONTROL ENGINEERING China版权所有,修改的越早,毫无疑问就可节约时间、精力和资金。
Cypress MicroSystems的John认为,嵌入式编程器的优秀的软件工具的最大优点就是能增加生产力。为缩短项目的进度表,开发工具必须提供更高层次的生产力。
时间依赖性
Green Hills强调,在开发和测试实时软件时,一个重要的特性时间依赖性(timing-dependent的。新的软件工具成为日益增长的需求,这成为一项挑战,。Barnett提出,软件调试总是不时地出现。复杂的交互作用和不同类型的程序输入引起间歇的时间问题,传统的方法,如采用传统调试器与/或进行单步调试,但效果并不理想。
近期,Green Hills 推出2个新的工具可提供解决方案。SuperTrace probe能实时从芯片捕获达到1GB的原始数据,无须运行时的仪器或插入调试;当发现错误时,TimeMachine调试器可离线分析获取的历史。
National Instruments的LabView Real-Time产品经理Jenifer Loy,回顾历史上开发嵌入式控制的2种方法,为某种类型的特殊功能优化的捆绑式的工具代表了一种方法,如,用于数字逻辑系统的PLC,主要通过预编程的模块应用;另一种方法是通过实时部分