AUTOSAR_EXP_LayeredSoftwareArchitecture_学习笔记5

Grey

全部学习汇总: ​​GitHub - GreyZhang/hack_autosar: learning autosar documents, aha, very hard!​

AUTOSAR_EXP_LayeredSoftwareArchitecture_学习笔记5

摘录与批注

1062_AUTOSAR_EXP_LayeredSoftwareArchitecture_学习笔记5_任务调度

  • 这种通过数据流向以及数据对象和交互关系来确认或者设计接口的方式是值得参考的。

1062_AUTOSAR_EXP_LayeredSoftwareArchitecture_学习笔记5_数据_02

  • 几个配置阶段之前在其他文档中已经多次接触了,基本有了一个概念了,这里不去看每一个的细致定义了。

1062_AUTOSAR_EXP_LayeredSoftwareArchitecture_学习笔记5_autosar_03


  • pre-compile阶段用到两个文件,分别是cfg的c文件以及h文件。
  • 其中h文件存放的是宏定义。
  • c文件存放的主要是const。
  • 疑问:其实const的处理阶段并不是被编译器中的预处理处理的,这个究竟该从什么方向去理解呢?

1062_AUTOSAR_EXP_LayeredSoftwareArchitecture_学习笔记5_任务调度_04

  • 这里有一个代码的例子,其实依然没有解决我前面的疑惑。

1062_AUTOSAR_EXP_LayeredSoftwareArchitecture_学习笔记5_autosar_05


  • 或许这一页正好是我前面的疑惑的一个解答。
  • 同样是const在配置中起作用,如果只是.o文件,那么这个就是link-time阶段的配置。如果是有源代码,那么应该是属于pre-compile阶段.
  • link-time的配置可以通过一个结构体的形式支持多种配置。相应的配置在初始化的时候通过指针选择其中的一个。

1062_AUTOSAR_EXP_LayeredSoftwareArchitecture_学习笔记5_数据_06


  • 关于post-build阶段,EOL以及标定都是很好的例子。
  • 某些实现技术点上,这个与link-time的配资相似,不同点在于相关的配置是否可以在运行时进行改变。

1062_AUTOSAR_EXP_LayeredSoftwareArchitecture_学习笔记5_任务调度_07

  • 关于CAN的这个配置例子其实是很有参考意义的,我看到的代码中很多选择性的配置直接被设计成了逻辑代码,其实这样会增加代码管理的复杂度。更好的方式自然是通过程序加数据的方式来控制。

1062_AUTOSAR_EXP_LayeredSoftwareArchitecture_学习笔记5_任务调度_08

  • 跨OS应用的访问通过IOC来实现。

1062_AUTOSAR_EXP_LayeredSoftwareArchitecture_学习笔记5_任务调度_09

  • 从这里看SchM是离不开RTE的。

1062_AUTOSAR_EXP_LayeredSoftwareArchitecture_学习笔记5_数据_10

  • 如果glue code的功能是实现一次任务调度的触发,那么的确是可以通过使用少数的task实现多任务的效果的。

小结

这一段的梳理其实有很多是之前已经熟悉了的内容了,但是这里可能以大白话的方式又来了一遍,理解起来似乎更深入了一点。