20180614 MATLAB环境下自动代码生成

      为加速软件开发过程,汽车电子开发过程会采用自动代码生成技术,目前该技术主要集中于应用层控制策略和算法的开发。将传统的算法与软件代码的两个步骤,实现为算法的开发及测试集成于一体的发开模式。

    现阶段国内较成熟的自动代码生成技术主要有两大类:MATLAB中的real-time workshop 和Dspace的targetlink生成代码。RTW能够生成与ANSI/ISO标准相兼容的C语言代码,该代码可以运行于目标微控制器和实时操作系统(RTOS)。能够支持TI,Freescale,Infineon等各大单片机公司的产品,但是不能为每款单片机都提供集成开发环境(IDE)接口和目标编译支持。对Freescale单片机而言,1,可以在MATLAB环境下通过自己编写S函数和TLC(目标语言编译文件)定制TRW库。2,可以使用COM组件将codewarrior的processorExpert模块与TRW连接起来。

      MATLAB的RTW生成实时代码流程:

1,  模型分析。开发人员在MATLAB中搭建模型,点击build后,RTW会对模型文件进行解析和编译,生成模型描述文件文件名为model.rtw。

2,目标语言编辑器(TLC)解析生成的model.rtw文件的模型信息,将simulink模型转换成c或者C++代码(目标指定代码)。TLC文件包括三种:系统TLC文件,模块TLC文件(对底层驱动模块的描述性文件)和功能库文件。模型转换成C代码的过程,会调用一系列tlc文件。RTW调用TLC文件时,会先检查模型所在的文件夹有没有所需要的TLC文件,如果没有则再到系统默认的文件夹中寻找,所以一般情况下不要直接修改安装文件夹的tlc文件,而是把需要修改的文件复制到模型所在的文件夹中,再进行修改。

3,  生成自定义联遍文件(model.mk),由系统模板联编文件(makefile)生成。Model.mk文件的作用是设定合适目标芯片的c编译器,指引模型信息生成的主程序,任务代码文件等库文件的链接和编译工作。

4,  调用codewarrior编译器编译并下载程序到ECU中。

你可能感兴趣的:(20180614 MATLAB环境下自动代码生成)