Simulink代码生成(三)——rtw文件(代码生成的中间产物)
一、代码生成过程
代码生成过程如下:
首先通过rtwbuild 命令将编译模型为rtw 文件,Simulink Coder 中的目标语言编译器(Target Language Compiler) 将rtw 文件转换为一系列的源文件, 这个过程中T LC 所使用的文件包括3类: 系统目标文件( ert.tlc , grt.tlc 等) 、模块的目标文件( 如与S 函数配套的TLC 文件) 和支持代
码生成的TLC 函数库等文件。模型的源代码全部生成之后, 可以使用Simulink 提供的模版自动生成makefile 来编译链接得到目标文件, 也可以将生成的源代码加入到目标芯片所使用的编译集成环境IDE 的工程项目中去, 使用IDE 编译链接, 最终通过仿真器下载到目标硬件中进行实机运行。
- 模型建完后,通过rtwbuild(Ctrl+B)进行编译
- 生成中间产物rtw文件
- 通过目标语言编译器(tlc语言)将rtw文件转换为源文件
- 通过makefile编译成可执行文件
- 调用IDE编译链接下载到目标硬件中
二、model.rtw文件解读
rtw文件是一个类似结构体的文件,可以通过层级的方法进行解读,通过类似结构体的“ . ”进行访问。
从以下内容可知,模型包含4中类型的模块,这里有Input Output Gain Switch。
这里记录的是模型Gain,Input等的个数。Switch的两个输入是以原子子系统的方式呈现的,所以这里包含2个子系统。
以下是对block进行描述,一个block包含四个部分Name,SLName,SID(模型添加的顺序),Type
从以下内容可知生成文件的结构,这里显示生成了5个文件,实际上这里有6个文件,rtwtypes.h是通用的,所以没算到这里面(不同的版本也许有不同,旧版本生成6个文件)。
untitled.c
untitled.h
untitled_data.c
untitled_types.h
untitled_private.h
注意:我们通常不需要关注rtw文件,因为tlc文件最后会帮我解析rtw文件。