基于模型设计—自定义目标系统配置指南
声明:本文主要内容借鉴了 Mathworks 公司官网 RTW 解决方案,各文件代码在
Win7+Matlab 2010A+MC9S12XEP100 上测试通过。希望通过本教程能有更多的 Matlaber
加入到 S12 单片机的自动代码生成研究中来,欢迎大家的板砖。
再次郑重声明,本教程非个原创内容,只是对 mathworks 工程师的内容进行翻译+
详细注释和心得,再次感谢 mathworks 工程师分享的 S12 目标系统解决方案。
tntuyh@163.com Godman 2011.7.9 夜
附件列表:
cw_test——在 cw 中集成自动生成的代码
htgt——该文件为针对 mathworks 工程师分享内容的修改
test.mdl——自动代码生成测试模型
test_htgt_rtw 和 slprj——代码生成目录
Embedded_Targets_Development_Guide.zip——mathwors 工程师分享及本文参考内
容
1
基于模型设计—自定义目标系统配置指南
基于模型设计—自定义目标系统配置指南 .................................................................. 3
1、自定义目标系统组成 ........................................................................................ 3
1.1 目标系统自动代码生成过程 ................................................................... 4
1.2 目标系统组成文件 ................................................................................... 4
2、自定义目标系统创建过程及详细解释 ............................................................ 5
2.1 系统目标文件(system target file)—htgt.tlc ......................................... 7
2.2 RTW 工具箱回调函数—htgt_callback_handler.m ................................... 9
2.3 自定义 hook 文件—htgt_make_rtw_hook.m .......................................... 11
2.4 文件处理 TLC 文件—htgt_file_process.tlc ........................................... 14
2.5 主函数 TLC 文件—htgt_srmain.tlc........................................................ 15
2.6 自定义模板文件(template makefile file)—htgt.tmf ......................... 16
3、针对特定单片机修改 htgt_srmain.tlc 文件 .................................................... 17
2
基于模型设计—自定义目标系统配置指南
基于模型设计—自定义目标系统配置指南
1、自定义目标系统组成
新建一个 mdl 文件,打开 Tools—Real Time Worksop—Options 如下图所示,点击
Browse,在弹出窗口中可以看到本机已有的目标系统,如 MPC555、C166、ert、grt 等。
本教程主要讲述怎样针对 S12 平台配置自定义的目标系统,其他平台的配置可以
参考此过程修改相应配置。
图 1-1 RTW 属性设置窗口
3
基于模型设计—自定义目标系统配置指南
图 1-2 已有的目标系统
1.1 目标系统自动代码生成过程
目标系统的代码生成过程如下,首先是在 simulink 中搭建控制模型,并配置目标系
统的硬件底层驱动(c166、mpc555 等芯片已经有现成的硬件驱动,其余单片机需要自己
编写底层驱动),然后通过 RTW 工具把控制模型生成.c/.h 文件最后根据需要生成 exe 文
件,对 RTW 工具箱不熟悉的读者请先阅读以下内容。
《系统实时仿真开发环境与应用》 第二章 RTW 入门
http://www.docin.com/p-86456784.html
1.2 目标系统组成文件
matlabroot\toolbox\rtw\targets 文件夹(matlabroot 为 matlab 安装目录)下有 c166、
mpc555 等目标系统的组成文件,如下图所示。仔细分析其文件组成将会发现一些共同
的文件,这些文件自定义目标系统所必备的文件。
(当然,我肯定不是通过比对这些文件发现这些规律的,完全是从开头的参考中摸
索的)
这些文件主要有:
系统 TLC 文件、主函数 TLC 文件、_file_processTLC 文件、_callback_handler 文件、
_make_rtw_hook 文件、模块 TLC 文件(及 C-Mex S 函数)等。
每个文件的具体含义将在后文详述。
4
基于模型设计—自定义目标系统配置指南
图 1-3 c166、mpc555 目标系统组成文件
2、自定义目标系统创建过程及详细解释
以上内容纯属扯淡,下面开始进入正题。
这部分内容以 Embedded_Targets_Development_Guide.zip 中 mathworks 工程师的 ppt
讲稿为基础,讲述自定义目标系统创建过程。
(其实就是把他的内容翻译下,再加上详细的注释和自己的心得,各位看官表说我
抄袭,因为我本来就没说是原创~~~~)
http://www.mathworks.cn/support/solutions/en/data/1-BHU00D/index.html?product=R
T
5
基于模型设计—自定义目标系统配置指南
如上图所示,目标系统通过系统目标文件(TLC)和 hook 文件把 mdl 文件转换为.c/.h
文件,而下面介绍的其余文件只是辅助这个过程而已。
图 2-1 RTW 代码生成过程
6
基于模型设计—自定义目标系统配置指南
2.1 系统目标文件(system target file)—htgt.tlc
系统目标文件是用于控制整个目标系统的代码生成过程,打开 htgt.tlc 和 c166.tlc
对比,会发现二者非常多的相似处,因为他们是用于设置一些最最基本的内容,下面开
始介绍 htgt.tlc 文件的具体含义。
htgt.tlc——见附近
c166.tlc——见 matlabroot \toolbox\rtw\targets\c166\c166
要想在目标选择窗口中看到自定义的目标系统还需要把系统目标文件(tlc 文件)所
在的目录添加到 matlab path 中。
如:addpath(‘C:\Users\Godman\Desktop\Matlab 底层驱动
\Embedded_Targets_Development_Guide\htgt’)
用于 RTW 属性
设置窗口的显示内
容,tmf&make 文
件的设置。
配置代码生成格式、类
型、语言等内容,一般不用
修改。
图 2-2 系统目标文件 htgt.tlc 代码
第 1 行
%%在 TLC 文件中表示注释,不会被执行,但是这一行的注释是为了显示在 RTW
属性设置窗口,其具体对应显示位置见图 2-3。
由于我们不需要生成exe文件,所以把原文件中tmf部分修改为none,不是用tmf文件进
行代码生成。我们可以通过修改如下内容来标识我们自己的自定义系统:
SYSTLC: Workshop Host Target
如可修改为:
SYSTLC: 这是一个自定义目标系统的demo
关于系统目标文件的详细介绍,各位看官可以参考《系统实时仿真开发环境与应用》
的 8.3.1 系统目标文件的结构(强烈建议)。
7
基于模型设计—自定义目标系统配置指南
第 3~8 行 (蓝色部分)
这部分内容主要是对代码生成的格式、类型、语言等进行配置,一般情况下不用对
这部分内容进行修改。
第 10~17 行
这部分内容是对一些 RTW 生成属性的配置(RTW_OPTIONS),如:
rtwgensettings.BuildDirSuffix = '_htgt_rtw';
表示代码生成目录为 mode_htgt_rtw,其中 mode 为 mdl 文件名。
文件生成目录
rtwgensettings.SelectCallback = ['htgt_callback_handler(hDlg,
hSrc)'];
表示当中 htgt.tlc 文件时所对应执行的回调函数,即当选择 htgt 目标系统的时候
matlab 将自定执行 htgt_callback_handler 函数中的程序,该程序主要是对一些目标系统
的常用默认设置项进行设置,后文将详述。
对应如下代码:
SYSTLC: Workshop Host Target
对应如下代码:
TMF: none MAKE: make_rtw
图 2-3 浏览器注释行内容配置
8