实例介绍
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:/www.docin.com/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:/www.mathworks.cn/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 (该路径为 matlab2010a版本,其余版本略有不同) 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 【实例截图】
【核心代码】
标签:
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论