| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 游戏开发 -> 807_AUTOSAR_TPS_BSWModuleDescriptionTemplate3_断言需求、组件实施以及代码链接 -> 正文阅读 |
|
[游戏开发]807_AUTOSAR_TPS_BSWModuleDescriptionTemplate3_断言需求、组件实施以及代码链接 |
?????? 全部学习汇总: GitHub - GreyZhang/hack_autosar: learning autosar documents, aha, very hard! ?????? 继续学习AUTOSAR的文档,看一下《AUTOSAR_TPS_BSWModuleDescriptionTemplate》。 ?????? 7.3 BSW 调试信息 ?????? BSW 模块可以声明本地数据以供 AUTOSAR BSW 调试模块访问。 请注意,这是集成商可用的有限调试类型,与开发人员可能使用的更强大的调试工具无关。 ?????? 如图 7.4 所示,容器类 BswDebugInfo 用于聚合从一个模块导出的所有数据声明以进行调试。 这些可以是本地数据,否则在描述中将不可见,也可以是已经在行为级别上声明的用于测量或标定的数据。 ?????? 小结:通过这段描述,终于知道了这里的调试到底是一个什么样的功能范围了。但是,从另一个层面考虑一下:是不是这种设计也意味着不再需要开发者那么强大的调试工具也能够做很多调试呢? ?????? 备注:有种XCP测量功能的感觉。 ?????? 调试数据的数据类型 ?????? 对于BswDebugInfo.localDebugData 的进一步详细说明,使用了在元模型的CommonStructure 部分中定义的ImplementationDataTypes 系统。 ?????? 这些数据类型的用法类似于第 5.1 章中解释的 SwServiceArg 的声明。 有关更多详细信息,请参阅 [6]。 ?????? 8 实现 ?????? 8.1 介绍 ?????? 本章解释了如何描述 AUTOSAR 软件组件和基础软件的实现细节。 虽然 AUTOSAR 包含各种组件类型,但只有原子软件组件和基础软件模块具有实现。 在元模型中,这意味着只能为 AtomicSwComponentType 或其派生类和 BswModuleDescription 提供实现。 ?????? 另一方面,组合以分层方式简单地构建和封装其包含的组件,而无需添加任何与实现相关的行为或功能。 所以它们不能直接实现。 取而代之的是,实现了根据定义又是原子的组合树中的叶组件。 ?????? 8.2 实现描述概述图 ?????? 8.1 中显示的实现类主要用于以下目的: ?????? ? 提供有关资源消耗的信息(第 9 章) ?????? ? 代码链接(源代码、目标代码)(第 8.5 章) ?????? ? 指定所需的和生成的工件( 第 8.6 章) ?????? ? 指定编译器(第 8.7 章) ?????? ? 指定链接器(第 8.8 章) ?????? ? 指定支持测量和标定工具的数据(第 10 章) ?????? ?????? 如图所示,Implementation 派生自 ARElement,即它可以作为单独的工程工件交付,例如独立于接口、端口和组件类型的描述。 ?????? 下表列出了图 8.1 中显示的所有属性,从而解释了类实现的其余简单断言和要求的含义。 ?????? 备注:这是单个软件组件或模块的实现描述,主要也是工具组件的设计,不去仔细看了。 ?????? 8.3 断言和需求 ?????? 对于下面提到的一些属性,它们是描述目标环境的需求还是由特定组件实现做出的断言是不明确的。 实现描述的编译器属性就是一个例子:它是否描述了使用指定编译器编译源代码的要求,或者这只是在创建目标文件的过程中使用哪个编译器的信息? 简单的答案是:如果可能,这是从上下文中得出的。 否则,该属性需要有适当的文档。 对于刚刚提到的编译器示例,情况很简单:对于源代码,属性描述了需求,对于目标代码,它是文档化的信息。 这同样需要应用于本节中的所有属性。 ?????? 8.4 软件组件的实现 ?????? 实现与组件或模块的关联 ?????? 可能实现中最重要的信息是实际实现了哪个原子软件组件或 BSW 模块。 乍一看,图 8.1 的概述中似乎缺少此链接。 然而,实现实际上是针对特定组件行为给出的,分别通过类 SwcInternalBehavior 和 BswInternalBehavior 指定。 这种行为的内容在这里并不重要,但如图 8.2 所示,它又与单个 AtomicSwComponentType 或 BswModuleDescription 相关联。 ?????? 图 8.2:一个实现与单个软件组件或模块相关联 ?????? 8.5 链接到代码 ?????? 当一个组件发布时,描述伴随着实际的实现代码。 这些代码可以以不同的方式出现:C、C++ 或 Java 中的源代码、目标代码甚至可执行代码。 ?????? 图 8.3 显示了实现如何链接到代码。 ?????? 实施-代码描述器 ?????? 对于每个可用的组件代码形式,都使用一个 Code 元素。 对于每个 codeDescriptor,然后通过属性 artifactDescriptor(类 AutosarEngineeringObject)引用所有相关工件,该属性又通过一组属性引用可用文件的目录,如下所示。 例如,如果组件实现仅作为源代码给出,则相应的实现将包含一个 codeDescriptor,其 artifactDescriptor.category 属性将表示这些文件是源文件。 ?????? 图 8.3:一个实现通过 Code 类引用代码工件 ?????? 通用代码描述符。 代码的类型(源或对象)通过相关工程对象的类别属性定义。 ?????? 对这部分看过的内容做一个总结吧。自然,这部分主要还是涉及到工具设计本身。不过,里面的一些调试、原子组件的实施、编译器以及链接器等工具的描述还是可以作为与我们实际的开发工作能够找到部分重叠的边缘信息。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/28 4:28:37- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |