在为新板开发 MCAL 层时,是否允许添加 AUTOSAR SPECIFICATIONS 中未指定的新功能?例如添加到测量帧长度的 MCAL ICU 功能(MCU 中有一个专用模块测量输入帧的 LEVEL 长度)
4 回答
AUTOSAR 的理念是抽象和代码可移植性。当我们说向 MCAL 驱动程序添加非 AUTOSAR 功能时,除非他查看代码,否则没有集成商会知道此类功能的存在(因为它不应该包含在内),这并不意味着代码不会不行,如果客户坚持你可以包含这样的功能,但双方都应该知道你违反了 AUTOSAR 的规则
如果添加供应商特定的代码/功能,那么您可能可以在模块的 paramdef 中添加配置参数。然后用户可以根据他的要求进行配置,然后可以相应地启用/禁用相应的代码。
从理论上讲,您的 micro 的全部功能和接口应该由芯片制造商提供的 MCAL 覆盖。如果是这种情况,那么理想的解决方案是开发 CDD(复杂设备驱动程序),如上面另一个答案中所述,以实现您所需的功能。
当然,这需要您的 AUTOSAR 堆栈提供商验证 CDD 实现并将其集成到 AUTOSAR 堆栈中,并且对于您想要对其进行的任何更新,他们必须重新验证并重新集成等等。 . 正如你所理解的,这是一个非常昂贵的过程,根据我的经验,除了原始设备制造商之外,业内没有人愿意这样做。
大多数知名供应商所做的是通过 RTE 访问所需的 MCAL 接口,然后创建实现所需功能的应用程序/CDD 混合组件。该解决方案使您可以在不违反 AUTOSAR 标准的情况下实现所需的低级功能,至少在理论上。
该解决方案也完全符合 ASPICE 标准,只要接口明确且定义良好。
人们有时会这样做,到目前为止,我认为这与 AUTOSAR 的意图背道而驰。但是,当您查看第 20 页时,对于文档AUTOSAR 分层软件架构中“AUTOSAR 可扩展性”的第一个要点,它说:
AUTOSAR 软件架构是一种通用方法:标准模块可以在功能上进行扩展,同时仍然是合规的,但它们的配置必须在自动基本软件配置过程中考虑
然而,另一方面,我也无意中听到了 ASPICE 审计,其中将 AUTOSAR 接口的扩展和使用列为违规行为。
在我看来,正确的做法是为 MCU 的硬件模块添加 CDD。
但是,我知道这会使事情变得更加复杂,我想这就是允许这样做的原因。