传统软件开发方法的局限性
软件变庞大,开发方式发生变化
汽车软件日趋庞大,传统软件开发无法支撑。例如,支持燃油经济性改进的发动机控制、精细控制和废气法规逐年要求更高的性能和更高的效率。为了实现它,代码大小正在加速增加。注意力集中在基于模型的开发上,而不是传统的软件开发,因为它需要减少开发人力,提高重用性和开发准确性。
基于模型的开发
基于模型的开发是对开发目标进行数学建模,对模型进行重复模拟,是一种制作控制和系统的方法。它在汽车开发软件中迅速普及。
在基于模型的开发中,可以立即验证设计的模型,可以防止出现问题的开发回溯。
在基于模型的开发中,模拟控制和工厂建模的模型。对模型进行仿真称为在环仿真 (MILS) 中的模型。在设计之初,可以通过 MILS 验证系统。
在验证该模型时,确认使用从模型生成的代码的仿真结果与对模型的仿真结果相同,确认生成的代码是正确的。此测试称为背靠背测试。
在MCU等处理器上执行生成的代码,模型与处理器协同仿真,可以验证算法。工厂模型和处理器的协同仿真称为处理器在环仿真 (PILS)。
如何在处理器上轻松执行模型生成的代码?
即使引入基于模型的开发,从制作的模型生成代码,做Back-to-Back测试,手动工作需要大量时间来构建代码,在MCU上执行它,设置调试器和协同仿真。 并且即使构建环境,也不容易确认行为和分析性能。
Embedded Target for RH850 Multicore 可以通过与 Mathworks 发布的 Embedded Coder® 通信生成可以在 MCU 上运行的代码,构建代码并将其下载到调试器,连接模型和调试器,可以通过 co 进行 PILS -模拟。
RH850 多核的嵌入式目标是什么?
是在RH850上搭建PILS环境的开发工具。Embedded Target for RH850 Multicore具有以下功能,可以自动构建环境。
- 自动生成瑞萨集成开发环境 CS+(*1) 的 RH850 项目文件。
- Embedded Coder 从 Simulink ® 模型生成代码。
- 将源代码文件添加到 CS+ 项目文件中。
- 设置构建工具
- 设置调试工具
- 执行调试工具
- 连接 Simulink 和调试工具(支持周期精确模拟器(*2)或评估板)
连接好 Simulink 和调试器后,就可以通过 Simulink 仿真与 MCU 做 PILS。确认 PILS 的结果和 MILS 的结果在 Back-to-Back 测试中相同。
单核 PILS 和分析模块性能
Embedded Target for RH850 Multicore 可以通过使用周期精确仿真器或评估板来分析模型中子系统块单元的性能。这是其他公司没有的嵌入式目标RH850独有的功能。
首先,将模型转换为块的分析性能。使用专用 GUI 选择测量目标块,然后转换模型。
从转换后的模型生成代码,用于分析块的性能。可以通过执行 PILS 来分析块的性能。可以通过图表直观地确认每个块性能的结果
这个解释是针对单核的,但最新的几乎 RH850 是多核的,因此软件也需要支持多核。
在使用多核的情况下,如果在单核上执行的软件没有更改为执行它,性能不会提高,因为行为与单核相同。为了通过有效地执行多核来提高性能,需要对软件进行并行处理。并行化将在下一章中描述。
如何在多核 MCU 上轻松执行模型生成的代码?
要在多核上执行软件,需要将软件并行化,以便多核可以同时执行软件。软件并行化后,需要为多核添加同步处理才能以正确的顺序执行,同时需要为多核添加排除控制,使其不访问公共资源。考虑到这些,很难将软件并行化。
尽管执行难以并行的软件,但由于同步处理和排除控制的开销很大,可能无法获得预期的性能。
在 RH850 多核嵌入式目标上,通过并行化模型并从并行化模型生成代码,可以生成可在多核上执行的代码。
并行多核模型
可以通过块的分析性能的结果来获得块的执行时间。根据信息考虑块的核心分配。
核心分配是使用专用 GUI 为每个块分配核心,然后转换模型。
通过这种分配,可以将模型转换为多核。
将绿色和蓝色块分配给不同的核心
多核 PILS 的背靠背测试
可以通过生成的代码对多核 MCU 进行 PILS。可以通过比较 PILS 的结果和 MILS 的结果来进行 Back-to-Back 测试。
多核分析性能和验证优化的多核并行化
可以像在单核上一样分析多核上的块性能。可以通过图表直观地确认每个块性能的结果。
为了缩短与上图结果相比的总执行时间,重复考虑多核 PILS 的验证,考虑优化的多核分配。
解释同时支持单核和多核的基于模型的开发。瑞萨电子继续维护基于模型的开发环境。
Embedded Target for RH850 Multicore + Multirate,是更高版本的 Embedded Target for RH850 Multicore 支持具有一定控制速率的模型(在基于模型的开发中称为多速率模型)。
审核编辑:郭婷
全部0条评论
快来发表一下你的评论吧 !