本文将介绍在需要协同操作的多设备环境中软件开发课题的解决方案。
架构的演变与车载软件
近年来,汽车行业正在经历重大变革。在这个变革中,趋势和需求也发生了巨大变化,互联、自动驾驶、驾驶辅助、电动化等功能需求逐年增加。随着功能的增加,搭载的ECU也在不断增加,为了适应日益复杂的系统,汽车的电气/电子架构(E/E架构)也在不断发展。
为了控制这些系统,需要构成ECU的多个设备之间进行协调操作。
车载软件开发中的课题
面向需要多个设备协同操作的多设备环境进行软件开发面临以下课题:
1. 难以判断哪个设备的软件出了问题
在多个设备上各类软件协同运行的系统中,一个出现问题的软件可能会导致其他设备上的软件出现错误。在这种情况下,仅仅调试出错的软件是不够的,还需要理解同时在其他设备上运行的软件的行为,这样才能找出问题的原因。
2. 难以确定系统何时负荷较高
在多设备系统中,可能存在在特定时刻负荷集中,从而导致无法实现最大限度运用系统硬件性能的情形。虽然使用现有的性能测定工具可以对单个设备进行分析,但是针对特定时刻来全面掌握系统负荷并不容易。
瑞萨电子的举措和解决方案
瑞萨电子正在致力于开发面向前述多设备的软件开发课题的解决方案。此次,我们将介绍其中的解决方案之一,即Synchronous Logging(以下称为Sync Logging)
Sync Logging是用于多个设备构成的系统的调试和分析的解决方案,它提供了一种方式来了解每个设备在相同时间点执行了什么样的处理。为了掌握各个设备的行为,我们会使用诸如strace、perf tool等Linux工具,以及嵌入在软件中的日志消息。通过日志消息的时间信息,可以在发生错误的时间点上,查看其他设备上运行的软件的行为,从而更容易确定错误的原因。
此外,为了掌握各设备的资源使用情况,我们使用能够输出带有时间信息的日志的Linux命令和工具,如perf tool、top、vmstat等。通过同步具有时间信息的日志消息的时间,可以分析资源使用情况的信息,从而掌握特定时间系统的负荷状况。
Sync Logging由运行在Host PC上的Trace Manager和运行在设备上的Trace Monitor这两个工具组成。设备上运行的软件或工具输出的数据会经由Trace Monitor传送到Host PC上的Trace Manager。Trace Manager会将来自多个设备的数据按时间顺序排列并输出。通过分析这些输出数据,可以掌握同一时间各个设备上的软件正在执行什么样的处理,以及系统的负荷情况如何。
开发状况和今后的展开
Sync Logging已针对R-Car S4和R-Car V4H的评估环境进行开发。今后计划扩展支持新一代R-Car产品和面向车载的MCU产品。此外,我们将持续努力扩展支持的工具,并对收集的数据进行更加直观的显示,以实现功能的增强和用户体验的提升。
作者:Yoshihito Ogawa——Sr Staff Software Engineer