全部学习汇总: https://github.com/GreyZhang/hack_autosar
继续学习AUTOSAR,看一下官方的文档。
摘录1
开篇其实就有一点让我欣喜,直接讲到了我关注的一个软件模块。第3.4节会描述如何从模块间角度配置 AUTOSAR COM-Stack 。
摘录2
模块生成工具的职责是根据XML文件,生成头文件。
摘录3
从这里看,其实工具的设计有时候会考虑一些软件实现上的辅助功能的,我标注出来的这一条其实是来自于MISRA C的规则。
摘录3
这里摘录出来的第一个图其实是很熟悉的一个图了,出于工作的需求,跟他人讲一下软件架构,我基本都是按照这个大的框架来的。自然,我讲解的不会准确细致。而这里看到的这个UML的架构是我第一次遇到,而这个简单的内容拆分其实还是很让我欣喜的,从这里能够明确看出一些模块之间的层级关系以及交互关系。我觉得,未来的工作之中,这个简单的结构表示会是我的一个很有用的参考信息。
摘录4
从这段描述看,EcuC存在的目的之一是为了处理需要在模块间共享但是归属并不是很好确认的信息而出现的。而且,这个是一个虚拟模块。
摘录5
ECU分区的概念出现是为了支持存储分区以及多核而设计的。而关于ECU的分区,还有一个分区集合的概念,这个分区集合可以容纳任意的分区数目。而上面的图中可以看到一个示例:一个EcucPartition由OS内的OS-Application实现。因此,SWC 到分区的映射限制了 runnable 到任务映射。
从这个描述看,多核分配等工作,其实涉及到一些OS本身的配置。相关的工作应该在这些方面有所体现。
摘录6
全段翻译如下:
设计原则是在创建分区后,软件 (SWC) 将映射到该分区。 在第二步中,BSW 被配置,分区 (BSW) 的每个成员都定义了对 EcucPartition 元素的引用。
一个例子是操作系统模块:操作系统应用程序用于实现一个分区,因此每个操作系统应用程序都应该有一个对一个分区的引用,该分区指定该操作系统应用程序正在实现哪个分区。
另一个示例是 SWC 与 ComM 的交互:在除 BSW 模块之外的分区中运行的 SWC 正在请求在 ComM 进行完全通信。
如果现在运行 SWC 的分区将由于分区违规而停止,那么现在在 ComM 处有一个未完成的完整通信请求,它将禁止网络发送到休眠状态。 使用所提供的配置手段,可以针对此类用例实施对策。
EcucPartition 和 EcucCoreDefinition 之间的交互是通过 OsApplication 的 OsApplicationCoreRef 完成的。
摘录7
看起来,工具还是有可能支持A2L文件生成的。
摘录8
前面提到的虚拟模块EcuC的一个例子描述出来了,关于COM-Stack。通用的Pdu容器不属于任何模块,在EcuC中进行定义。
摘录9
图 3.10 显示了 COM-Stack 模块及其交互的详细视图。相邻的3个模块之间有多种交互方式。
摘录10
这种以句柄区分发送方式而把发送细节隐藏在数据结构中的方式的确是可以简化一些接口的设计。尤其是,当应用接口的人员是应用软件开发者的时候。
摘录11
没想到针对我前面刚刚想到的,这里有一段相关的描述正好符合。
上面这部分是我看ECU配置参数的实施的过程中看到的比较有启发式的信息,除此之外还有一个相关句柄以及路由的使用例子也是可以作为很好的参考的,由于内容较多那一部分不再专门摘录了。