Simulink代码生成提高教程( 二 )


用于操作文件的TLC文件
该文件在本例中命名为mygt_ .tlc , 通过这个文件来选取使用哪个代码模板 。

Simulink代码生成提高教程

文章插图
上图可知 , 本目标系统将调用n.tlc这个代码模板文件 , 这是一个STM32的Keil工程模板 。如果你的项目使用的是 , 就需要另外制作一个模板 。
Simulink代码生成提高教程

文章插图
打开n.tlc我们可以看到这个文件会把生成的代码组织成一个keil工程的main.c格式 。图中包含了需要引用的头文件 , 函数等等 。这里用到很多tlc函数 , 这些函数具体什么可以去《 Coder》查找 。
Hook文件
顾名思义就是一个钩子函数 , 它用来将代码生成的各阶段中断出来 , 插入自己想要加入的操作 。
Simulink代码生成提高教程

文章插图
通过流程图 , 我们可以在每一个步骤进入前【】、进入时【entry】、完成后【after】进行自定义操作 。
Simulink代码生成提高教程

文章插图
这就是一个Hook文件的结构 , 最常用就是在【exit】的时候 , 我们把生成的代码与IDE(集成开发环境)做集成 。完成代码生成后可以直接用ukeil打开工程 , 甚至直接烧写单片机 。这里调用了函数 。
Simulink代码生成提高教程

文章插图
这内容有点复杂 , 大致逻辑就是将生成的C文件与H文件复制到keil工程目录下 , 并把生成C文件、H文件写入工程描述中 。
模块文件
上面主要介绍的是自定义目标系统的工作流程、包含哪些文件、具体有什么用 。那大部分的自定义目标系统都会封装自己的模块库 , 用来对单片机的硬件进行配置
Simulink代码生成提高教程

文章插图
例如:本次使用的例子是基于芯片 , 所以就用S函数封装了一个CAN的初始化函数 。对应的S函数名称就是.mwx64 。这部分如何创建S函数 , 调用S函数 , Mask参数的设计 。这部分在之前的《S-应用实例》中已经介绍过 , 这里不重复 。
Simulink代码生成提高教程

文章插图
之前介绍S函数时没有介绍这个函数 , 该函数的功能是把S函数的参数、端口等信息写入RTW文件 。后面通过模块的TLC文件来读取写入RTW文件中的相关信息
Simulink代码生成提高教程

文章插图

Simulink代码生成提高教程

文章插图
在模块TLC文件中 , 定义该模块生成代码的格式 , 包含引用的外部函数 , 申明变量 。另外这里的TLC函数还会到RTW文件中读取配置参数 , 配合模板生成代码 。大功告成
Simulink代码生成提高教程

文章插图
这是一个利用自定义目标系统开发的应用模型 , 使用了两个封装模块 , 分别用来配置CAN总线和接收CAN总线报文 。
Simulink代码生成提高教程

文章插图
点击【编译】按钮就会调用keil打开工程或者直接写入单片机
Simulink代码生成提高教程

文章插图
打开keil就能看到集成到开发环境的代码
最后?
代码生成专题共三篇就此结束 , 最后这个提高篇涉及的内容比较多 , 可能很多人看了还不是很明白如何实现的 。最后就来总结下一些知识点:S函数、TLC语言、M语言 。