对于 TLE985x,英飞凌使用位域来映射其库中的寄存器。由于我是嵌入式编程的新手,因此我阅读了有关位域的信息。许多文章都提到了位域的不良影响。现在的问题是,当位域有点糟糕时,为什么英飞凌在他们的库中使用它?
感谢您的帮助
是使用供应商提供的默认寄存器映射还是推出您自己的映射几乎是特定于项目的。如果您对可移植性和通用源代码质量有很高的要求,则必须制作自己的寄存器映射。
可以在此处找到有关该主题的一些讨论:如何从固件访问硬件寄存器?正如在那篇文章中所讨论的,供应商推出他们自己的定制、糟糕的注册地图有几个原因:
但是,对于英飞凌,您可以做的就是问:“嘿,伙计们,您似乎很喜欢汽车电子产品。汽车行业自 1998 年以来一直在使用 MISRA-C。为什么您仍然不提供 MISRA -C 兼容库在 2020 年?您不希望汽车客户使用您的产品吗?有很多有趣的喃喃自语的回应。