嵌入式计算系统将必须紧密工作的硬件和软件相结合。早期的硬件/软件协同设计领域的研究人员强调同时进行设计的重要性。图115硬件/软件协同设计的设计流基于平台的设计是片上系统通常采用的方法。平台开发人员必须提供工具使得软件开发人员能够使用平台。还的软件设计将为软件程序编写打下良好的基础。
嵌入式系统的设计流程是什么?
嵌入式计算系统结合了必须紧密工作的硬件和软件。嵌入式系统的设计者已经发展出他们良好的设计方法,利用软件来体现系统的某些功能。硬件/软件协同设计领域的早期研究人员强调了同步设计的重要性。一旦确定了系统架构,就可以相对独立地设计硬件和软件。协同设计的目标是做出适当的架构决策,这些决策可以在后面的实现阶段独立完成。好的架构决策需要适当的分析方法,因为它们必须满足严格的指标,如实时性能和功耗。图1-15显示了一般的协同设计方法。给定一个可行的规范,大多数方法进行初始系统分析,以确定并行设计的可能性,并可能将规范分解为过程。硬件/软件部门选择架构,其中一些操作直接由硬件执行,而另一些操作由运行在可编程平台上的软件执行。硬件/软件划分产生可以独立实现的模块设计。然后将这些模块组合起来,测试性能或功耗,并进行调试,以创建最终的系统。(点击查看大图)图1-15软硬件协同设计的设计流程基于平台的设计是SOC普遍采用的方法。平台允许多个用户将同一个基础平台定制成不同的产品。该平台对于基于标准的市场尤其有用,在这种市场中,产品必须支持一些基本功能,而其他功能则必须进行定制。如图1-16所示,基于平台的设计是一个两阶段的过程。首先,平台的设计必须基于系统的整体需求(比如某个标准)以及平台应该如何定制。平台设计好了,就可以用来设计产品了。产品利用平台的功能,添加自己的功能。图1-16基于平台的设计平台设计需要几个设计阶段。应用功能分析,根据平台硬件架构将系统需求和软件模型转化为更清晰的需求。设计空间搜索以评估硬件选项。建筑模拟有助于评估和优化建筑的细节。必须为平台开发基础软件(硬件抽象层、操作系统端口、通信、应用程序库、调试)。平台的使用是复杂的,因为平台需要一个用户编程环境。程序员习惯了标准平台上丰富的开发环境。这些环境以图形用户界面的形式提供了许多工具——编译器、编辑器、调试器、模拟器。然而,富编程环境通常只支持单处理器。多处理器编程更困难,而异构多处理器比同构多处理器更复杂。平台开发人员必须提供工具,使软件开发人员能够使用平台。有些工具来自CPU组件,有些工具必须从头开始开发。因为调试访问依赖于硬件,所以尤为重要和困难。进程间通信也很复杂,但它是应用程序开发人员的重要工具。
嵌入式软件的运行流程一般分几个阶段?每个阶段完成的主要工作是什么?
软件开发一般分为五个阶段。1.问题的定义和规划。这个阶段是软件开发和需求的共同讨论,主要是确定软件的开发目标和可行性。2.需求分析。在确定软件开发可行性的条件下,对软件需要实现的每个功能进行详细的需求分析。需求分析阶段是一个非常重要的阶段。如果这个阶段做得好,会为整个软件项目的开发打下良好的基础。“唯一不变的是变化本身。”同样,软件需求在软件开发过程中也是不断变化和深化的。因此,我们必须定制需求变更计划来应对这种变更,以保障整个项目的正常进行。3.软件设计在这个阶段,要根据需求分析的结果对整个软件系统进行设计,如系统框架设计、数据库设计等。软件设计一般分为概要设计和详细设计。软件设计将为软件编程打下良好的基础。4.程序编码这个阶段是将软件设计的结果转化为计算机可执行的程序代码。在程序编码中,需要制定统一规范的编写标准。以确保