【实例简介】
simulink自带的realtime workshop,也就是RTW,可以实现代码自动生成,但是,如果要对生成代码进行自定义,控制代码生成过程中的每一个阶段,需要额外的编程,而不是单单搭建好模型就可以的。本文档也仅仅是个简单介绍,详细内容需要参阅help文件。
基于模型设计一自定义目标系统配置指南
基于模型设计一自定义目标系统配置指南
1、自定义目标系统组成
新建一个mdl文件,打开 Tools- Real Time Worksop-Options如下图所示,点击
Browse,在弹出窗口中可以看到本机已有的目标系统,如MPC555C166、ert、gt等。
本教程主要讲述怎样针对S12平台配置自定义的目标系统,其他平台的配置可以
参考此过程修改相应配置。
Configuration Parameters: test/Configuration (Active)
Select
Target
Solwer
System target file: htt tlcl
rouse
--.Diagnostics
Sample Tim
Description:
rkshop Bost Targe
t
er5101
TL
Makefile conf
-Simulation Target
Template makefile:
RReal-Time Workshop
Data specification override
□工
Symbol
g
二[caa21p[sp
图1-1RTW属性设置窗口
system Target File
Descripti
asap2.tlc
ASAM-ASAB2 Data Defination ta
色1七。s2.t⊥c
AUTOSAR
Target Support Package (for use with Infineon C166
c166gxt,t工
Target support package (for use with Infineon C166)(GRT code forma
Embedded Target for Microchip dspIc (real-time)
eyt. tlc
Real-Time Workshop Embedded coder
ext.t⊥c
visual C/C++ Project Makefile only for the Real-Time Workshop Embed
ert shrub. tlc
Real-Time workshop Embedded Coder (host-based shared library target
grt. tlc
Generic Real-Time Target
grt. tic
Visual C/C++ Project Makefile only for the "grt target
c2t a1。e,tc
Generic Real-Time Target with dynamic memory allocation
grt malloc, tlc
Visual C/C++ Project Makefile only for the grt malloc target
ntat, tIc
WorkshOp H。 gt arget
⊥e1 ink ert,t工c
mbedded IDE⊥ nk ERT
bedded IDE Link GRT
Target Support Package ( for use with Freescale MPC5xx) (algorithm e
1mc5550i7t1c
TT色十11 root package if1eti+hFe
两1eMPc5x1nTCe门T
D: Program Files\MATLAB\R201Da\rtw\c\ert\ert. t1
Make command
make rt w
1 Help
!pply
基于模型设计一自定义目标系统配置指南
图1-2已有的目标系统
1.1目标系统自动代码生成过程
目标系统的代码生成过程如下,首先是在 simulink中搭建控制模型,并配置目标系
统的硬件底层驱动(c166、mpc555等芯片已经有现成的硬件驱动,其余单片机需要自己
编写底层驱动),然后通过RTW工具把控制模型生成。c,h文件最后根据需要生成exe文
件,对RTW工具箱不熟悉的读者请先阅读以下内容
《系统实时仿真开发环境与应用》第二章RTW入门
http://p-86456784.html
1.2目标系统组成文件
matlabroot toolbox'rtw targets文件夹( matlabroot为 matlab安装目录)下有c166、
mpc555等目标系统的组成文件,如下图所示。仔细分析其文件组成将会发现一些共同
的文件,这些文件自定义目标系统所必备的文件
(当然,我肯定不是通过比对这些文件发现这些规律的,完全是从开头的参考中摸
索的)
这些文件主要有
系统TLC文件、主函数TC文件、 file processtlC文件、 callback handler文件、
make rtw hook文件、模块TC文件(及C-MexS函数)等
每个文件的具体含义将在后文详述。
基于模型设计一自定义目标系统配置指南
共享
建又什
名称
名称
1 @codewarrior_tgtaction
21
@c166
1@diab_tgtaction
1 @C166Comms_DataTypeHandler
I @MPC5x Comms_DataTypeHandler
@C166Comms ExternalMode CCP
1 @MPC5xxComms_ExternalModeCCP 21
1@c166Config
1@MPC5xx ExternalMode_ExternalMo.21
1 @C166ExternalMode_ ExternalMode. @mpc555_tgtaction
@ SimulinkC166
+FM5
l ja
s messages
messages
bootcodewarn
A c166.callback_handler
皙c166 check_priorities
t c166_extmode_registration
a codewarrior tfl table tmw
皙c166 generate_main
看 Contents
222222222
c166_getrtwoptions
cOntents
t c166 grt_make_rtw._hook
包 dec_time_per_tick
当c166 make rtw hook
t a dec_time_per_tick
类:M4
t) c166_switch_target
ea diab tfl table tmw
大小:18
皙c166 tasking_update
s make codewarrior tfl table
修改日期
4c166editprefs
*p make codewarrior tfl table
tg c166ExternalModeOpen
翻 make diab tfl table
c166PostCodeGenerationHook
ta make_diab_tfl_table
6c166prefshelp
2222
e message ProductNameKe
图c16 switchconfig
图1-3c166、mpc555目标系统组成文件
2、自定义目标系统创建过程及详细解释
以上内容纯属扯淡,下面开始进入正题。
这部分内容以 Embedded Targets Development Guide.zip中 mathworks工程师的ppt
讲稿为基础,讲述自定义目标系统创建过程。
(其实就是把他的内容翻译下,再加上详细的注释和自己的心得,各位看官表说我
抄袭,因为我本来就没说是原创~~)
http://support/solutions/en/data/1-bhuood/index.htmlproduct=r
T
5
基于模型设计一自定义目标系统配置指南
The MathWorks-
matlaB&SIMULINK
Baseline Target Files
Target Block
Invoke
Code
model. mdl
Library Files
Generator Compiled representation
System
Code
Inline Target
Target File
Generation
Block files
and
target. tlc
Hook file
target make hook.m
model, c, modelh etc
TemplateToken
expansion
ake
Make
Run- Time Files
File
model mk
target_main. c
ISRs
Device Drivers
arget
图2-1RTW代码生成过程
如上图所示,目标系统通过系统目标文件(TLC)和hook文件把md文件转换为c/h
文件,而下面介绍的其余文件只是辅助这个过程而已。
基于模型设计一自定义目标系统配置指南
2系统目标文件( system target file)- htgt. tlc
系统目标文件是用于控制整个目标系统的代码生成过程,打开 htgt. tlc和cl66.tlc
对比,会发现二者非常多的相似处,因为他们是用于设置一些最最基本的内容,下面开
始介绍 htgt. tlc文件的具体含义。
htgt. tlc-—见附近
166tlc——见 matlabroot \toolbox rtwltargetscl66c166
要想在目标选择窗口中看到自定义的目标系统还需要把系统目标文件(tlc文件)所
在的目录添加到 matlab path中。
如 addpath(C: Users Godman Desktop Matlab底层驱动
EMbedded Targets Development Guide htgt')
95% SYSILC: Workshop Host Target IMF: none MAKE: make rtw EXIMODE: ext comm
3 selectfile NUlL file
用于RTW属性
4 %assign CodeFormat Embedded-C
5 %assign farget lype =RI
设置窗口的显示内
6 %assign Language =C
容,tmf&make文
7 %assign AutoBuildProcedure Generat eSampleERIMain
件的设置。
8 %include codegenentry tlc
/%
BEGIN RIW OPTIONS
配置代码生成格式、类
rtwgensettings, BuildDirSuffix htgt rtw
型、语言等内容,一般不用
twgensettings. DerivedFrom = ert. tlc
修改。
14
rtwgensett
1
15
rtwgensettings. SelectCallback = htet callback handler(hDlg, hSrc)]
END RTW OPTIONS
图2-2系统目标文件 htgt. tlc代码
第1行
%%在TLC文件中表示注释,不会被执行,但是这一行的注释是为了显示在RTW
属性设置窗口,其具体对应显示位置见图2-3。
由于我们不需要生成exe文件,所以把原文件中tmf部分修改为none,不是用tmf文件进
行代码生成。我们可以通过修改如下内容来标识我们自己的自定义系统:
SYSTLC: Workshop Host Target
如可修改为
SYSTLC:这是一个自定义目标系统的demo
关于系统目标文件的详细介绍,各位看官可以参考《系统实时仿真开发环境与应用》
的8.3.1系统目标文件的结构(强烈建议)。
基于模型设计一自定义目标系统配置指南
第3~8行(蓝色部分)
这部分内容主要是对代码生成的格式、类型、语言等进行配置,一般情况下不用对
这部分内容进行修改
第10~17行
这部分内容是对一些RTW生成属性的配置( RTW OPTIONS),如:
rtwgensettings. BuildDirSuffix htat rtw'i
表示代码生成目录为 mode htgt rtw,其中mode为md文件名。
L Name
目调试心得tt
回 test. mdl
e Developing Embedded Targets using
s test _ htgt_rtw
sIprI
文件生成目录
I hto
rtwgensettings. Selectcallback =['htgt callback handler (hDig
hSrc)i
表示当中 htgt. tlc文件时所对应执行的回调函数,即当选择htgt目标系统的时候
matlab将自定执行 htgt callback handler函数中的程序,该程序主要是对一些目标系统
的常用默认设置项进行设置,后文将详述
C System Target File Browser: test
System Target File:
Description:
grt. tlc
Generic Real-Time Target
grt. tIc
Visual C/C++ Project Makefile only for the grth target
Generic Real-fime Target with dynamic memory allocation
art malloc. tlc
Visual C/C++ Project Makefile only for the "grt malloc"target
htgt. tlc
delink ert tl
mbedded ide Link Ert
delink grt. tIc
Embedded IDE Link GRT
对应如下代码
mpc555pll.tlC
Target Support Package (for use
SYSTLC: Workshop Host Target
mpc555rt. tlc
Target support Package (for use w
mpc55srt grt tIc
Target Support Package (for use with Freescale MPC5xx)(real-time, GR
Full Name
C: Users\G)dman\Desktop\Mat1ab底层驱动 mbedded Targets Development Guide\ht gt \ htgt \ht gt.t
Template Makefile: n
Make Command:
make rtw
对应如下代码:
TMF: none MaKe: make rtw
[cancel Help[Apply
图2-3浏览器注释行内容配置
基于模型设计一自定义目标系统配置指南
22RTW工具箱回调函数— htgt callback handler. m
如前文所述, htgt callback handler.n文件主要是对目标系统常见的默认设置项进
行配置。该函数与 matlab的函数编写方法一致,其中hDlg和hSrc参数不需要用户自
行设置,这些参数是有系统自动分配的,不用对其就行修改
其中 slConfigUISet Val函数是用于自定义目标系统的属性, slConfigUISetEnabled
函数则表示该属性是否可以被修改。
A部分代码设置了需要生成ERT主函数,并配置该选项不可修改
B部分代码配置不适用 Makefile进行代码生成,并配置该选项不可修改。
C部分代码配置用户自定义的模板文件,即通过 htgt file process. tlc文件来进行自
定义代码生成的过程,并配置该选项不可修改
通过该文件可以对自定义目标系统的各种参数进行默认配置,这样就不用在选择目
标系统后再来对这些参数进行配置
通过help文件的一下路径可以查看都有哪些属性可以通过 callback函数来进行配
置
<< Configuration Parameters for Simulink Models t Parameter Reference i Parameter Command-Line Information Summary
Real-Time WorkshoplUser's Guide\ Configuration Parameters for Simulink Models\ Parameter Reference\Parameter Command-Line Inform.
n-1T:.
.L1P,,」_1P上_.⊥
1:1.A」_1
(该路径为 matlaba版本,其余版本略有不同)
Function htgt_callback_handler(hDlg, hSrc)
g Setup these options as desired and gray them out
slConfigUISet Val(hDlg, hSrc, GenerateSampleERIMain','on')
sIConfigUISet Enabled(hDlg, hSrc, GenerateSampleERIMain', 0)
A
sIConfigUISet Val(hDlg, hSrc,GenerateMakefile',off
sIConfigUISet Enabled(hDlg, hSrc, Generat mAkefile, 0)
B
lConfigUISet Val (hDlg, hSrc, ERICust onFilelemplate', htgt file process. tlc
slConfigUISetEnabled(hDlg, hSrc,ERICust omFileTemplate', 0)
C
图24回调函数— - htgt callback handler. m代码
基于模型设计一自定义目标系统配置指南
Configuration Parameters: test/Configuration(Active)
Code templat
Solver
ource file (* c) template: ert- code template cgt
Dat a Import/ Export
de template cgt
E.Diagnost ir
Dat a templ
lidity
Source file (* c)template: ert_ code_template cgt
Compatibility
Header file (*, h) template: ert_ code template cgt
el Referencing
⊥s+ om templates
对应C部分代码
Hardware Implement at ion
Model Referencing
File ustomization template: htgt file process.tlc
Symbols
tn:1a12对应A部分代码
中Re1- Tine Workshop
Comment s
Interface
灰色表示不可修改
sI and PIL verif
OK Cancel[ Help Apply
s Configuration Parameters: test/Configuration(Active)
Target selection
i solver
Systen target Iile: htgt tlc
Dat a Inport/Export
-].Diagnostics
ascription
Workshop host Target
ata Validity
Bulld process
Model referencing
Saving
□ Generate makefile
对应B部分代码
Hardware Implement ation
Make co
Stools
Template makefile
Comment s
F Ignore custom storage classe
int signals
Symbols
Custom Code
Code Gener吐 tion adx
Prioritized objectives: Unspecified
工 and PIl veri仝,
Code Styl
Check model before generating cod
士士
Templates
回 Generate code only
叶 a Twme ReT1are
g
图2-5回调函数代码配置对应项
10
【实例截图】
【核心代码】