【转载】嵌入式软件时序简介—1. 序言

发布于 2022-05-06 11:26:07

声明:本文转载自微信公众号SoftAuto文章《嵌入式软件时序(1)— C语言是怎么编译出来的》,略有改动。

当很多汽车软件的开发人员都在忙于掌握AUTOSAR、自动驾驶、V2X、功能安全和信息安全等热门的技术时,我们往往忽略了汽车这个控制对象所要求的最重要的一个特性——“实时性”。今天,实时性这个专题已经上升到了“时序(Timing)”这一概念和话题。传统的“实时性”仅仅只是针对某个功能和任务而言的,而“时序”不仅包含单一任务实施性的范畴,更加强调的是整个系统的各个任务如何设置、协作来达到全系统的所有任务的实时性要求。有幸发现了一本这方面最新的技术宝典《Embedded Software Timing》,能够介绍完整的时序技术理论。概述的作者Peter Gliwa是专门从事汽车软件时序技术工作的专家,并以自己的名字命令了他的公司,在业界非常有名的T1时序工具就是出自Gliwa。在这个专题中我将把该书的精华逐一介绍分享,希望时序技术能够得到越来越多的关注。
image.png

软件开发和操作系统领域的基础知识是分析和优化嵌入式软件时序(Timing)的前提。不仅是针对那些想学习或复习基础原理的人,有经验的软件开发人员也会发现很有帮助。

软件开发的V模型

V模型描述了软件开发过程的概念。它在汽车行业已经使用了几十年,即使当前比较流行的敏捷开发模式(如Scrum),在背后仍然有V模型的身影。像许多技术的发展一样,它起源于军事部门,后来转入民用领域。

V模型中的 "V"代表了理想化的开发过程,有左右两各维度。如下图所示,横坐标是以项目开始为起点的时间轴。纵坐标标志着抽象:从底部的"详细"到顶部的 "抽象"。见下图,一个项目应该从收集客户对产品的需求开始,具有较高的抽象性。之后在系统层面上是产品的基本设计。在项目进一步的过程中,对设计进行分解、细化。如果可能,要进一步对产品产生更详细的需求。设计阶段完成后,开始进入实现阶段。就软件项目而言,这对应的是编码、各个组件的集成,然后是各个抽象层次上的验证。在这个过程中,要对之前制定的各层级的需求进行检查。最后的检查是在顶层抽象层进行,确保满足客户的需求。
image.png

如果不符合需求,就必须消除造成偏差的原因。原因必然是在V上需求和验证之间的某个点。因此,所有依附的后续步骤也必须进行修正、调整或至少是重复做一遍。

显然,错误发现得越晚,付出的代价越大。这个道理尽人皆知,但令人惊讶的是,很多项目对待嵌入式软件的时序特性并不关注。很多时候,运行时(Run-time)问题都是在项目后期才调查并临时修复的,匆忙之下,成本高,风险大。

时序特性与V模型

几乎每个汽车领域的软件开发人员都熟悉V模型。在使用V模型时,通常会把重点放在功能方面。当时序的话题出现时,会有什么不同?原则上,没有什么变化。该模型的基本思想也可以应用于时序特性。下图显示了这一思想的具体化,并给出了V模型不同阶段的时序特性相关技术点的例子。
image.png

在后续的连载文章中,我们将选取其中的部分关键内容进行详细介绍。

参考资料:
Peter Gliwa, 《Embedded Software Timing》

0 条评论

发布
问题