AUTOSAR_SWS_CompilerAbstraction_学习笔记1

Grey

全部学习汇总: https://github.com/GreyZhang/hack_autosar

AUTOSAR_SWS_CompilerAbstraction_学习笔记1

摘录与批注

  • 编译器相关的专用定义在Compiler.h中使用宏进行了封装。
  • 每一个独立的模块至少应该可以区分存储类和指针类,通过一个define来实现。
  • 针对上面这条有一个疑问:什么是指针类?
  • Compiler_Cfg.h允许根据构建场景的模块的描述以及存储设置来修改这些define。

  • 从这个描述看,并不是所有的编译器都可以支持AUTOSAR。

  • 有这样的包含关系,在使用到数据类型的地方直接包含Compiler.h是不是一个更加简单粗暴的方式?
  • 编译器抽象用于配置元素的可实现性。
  • 存储映射用于执行存储分区。
  • linker设置用于决定哪些元素被分配到哪些区。

  • 表中给了几个编译器的标识符的例子,并不全。兼容性考虑,编译器标识符的定义不应该有值。

  • 分区信息的定义文件应该是Compiler_Cfg.h。
  • 代码、标定等空间都是已经有了固定的分段名称定义的。
  • 有些不涉及到存储分区的地方,也可以有一个象征的表达,比如数据类型的定义部分。

  • 相应的宏会直接实现分区相关的功能?这样,代码中是否还有按照代码块来实现的分区呢?

  • 这是我之前遇到的一种形式,其实并不是编译器不支持,应该是工程师以非AUTOSAR的方式来实现,以此摆脱了一些限制。

  • C语言禁止局部量使用far以及near等修饰,因此在定义相应的量的时候应该采用AUTOMATIC。

  • 这是一个很好的例子,能够让人看懂相应的实现,也多少解决了我前面的一些问题疑问。

小结

这一份文件介绍的内容很有实践指导价值,后面的工程实践中可以从中获取很多参考。

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐