助力v2x算法开发——simulink c代码生成与测试
时间:2021-06-10 16:18来源:北京理工新源 作者:bitnei
在v2x算法开发的初期阶段,算法模型主要在simulink中搭建。在前期纯软件的环境下,对于v2x的算法验证通常采用simulink与仿真测试软件(如prescan、carmaker等)进行联合仿真的方式实现。然而,有一个无法避免的问题是:最终的算法总是要转化为c代码的形式嵌入在开发板中,simulink算法模型不应当是最终的算法形态。因此,北理新源使用simulink 提供的embedded code产品,生成针对在快速原型构建板、嵌入式处理器或微处理器上部署而优化的c代码,把系统工程师从繁重的代码任务中解放出来,上层软件设计者不需要对底层硬件和驱动程序有较多的研究,只需要通过模型开发专注自己的功能设计,大大地加速了开发进程,加速后期v2x算法的验证。
下面将主要介绍如何借助embeddedcode将simulink模型生成c代码:
② 点击左侧的solver,右侧type选为fixed-step,solver选为discrete。必须是离散的求解器才能用embedded coder生成代码。
③ 点击左侧的code generation,把systemtarget file选为embedded coder,使simulink生成嵌入式c代码。
④点击report,勾选create codegeneration report和open report automatically。这样,在生成完毕代码后会自动打开报告。最后点击ok即可完成配置。
(3)ctrl b生成代码,会在matlab当前工作路径下生成。代码生成完毕后自动弹出如下报告,可以通过点击左侧的目录或者c文件/头文件,查看代码。
通常来说,一个大型的项目,例如汽车的某个控制器开发,会生成几十万上百万行代码。这种情况下,embedded coder生成的代码可以有效加快代码开发进程。除此之外,分析模型生成的代码也是非常重要的技能。因为:
①熟知simulink配置对应的c代码,才能配置好底层和应用层交互的接口以及应用层模型之间交互的接口;
②simulink有的时候也会生成错误的代码,这时就需要我们去人工的检查代码;
北理新源将持续关注车联网算法开发,以优质产品助力车联网产业的发展。