【实例简介】

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

【实例截图】

【核心代码】

matlab rtdemo怎么生成,simulink——RTW自动代码生成简介相关推荐

  1. Simulink嵌入式自动代码生成DSP 28335/28035/28x系列 (1)——官方例程(1)讲解 {ADC-PWM同步中断}

    前言 本人了解到电动汽车中 OBC和 DCDC 普遍使用TI (德州仪器)DSP 28335和 28035系列芯片 做开关电源控制,电源领域的 工程师 需要对于芯片的配置和 配套软件Code Comp ...

  2. 3.1 实例-流水灯、拨码开关、键盘驱动、OLED驱动Simulink仿真自动代码生成

    流水灯 SIMULINK 中逻辑设计利用最常规的延时开通关断设计,将引脚设置为高电平还是低电平根据开发板实际情况设置 ,仿真步长设置为 1s. 仿真模型如下图所示: 其基本逻辑就是在每 4 个步长的时 ...

  3. matlab 生成plc程序,利用MATLABsimulink的自动代码生成工具开发PLC程序..docx

    利用MATLABsimulink的自动代码生成工具开发PLC程序. 利用MATLAB/simulink的自动代码生成工具开发PLC程序MATLAB之控制系统 2010-07-07 15:17:43 阅 ...

  4. Simulink自动代码生成:生成代码的基本设置

      Simulink自动代码生成也被称作基于模型开发(BMD),相比于传统的手写代码方式能够尽量减少人为错误.模型本身可以用于仿真,单元测试等,更便于提前发现逻辑错误.同时只要约定好模型接口,就可以多 ...

  5. Matlab/Simulink 自动代码生成 基于模型设计学习教程(1)---- 环境配置

    在接触不断开发深入STM32的时候,我经常在直接用C语言编写一个很发杂的算法,比如PID控制,傅里叶变换,卡尔曼滤波之类的基本需要的算法,然而对于一个初学者来说,编写这样的算法,费时费劲,甚至不一定能 ...

  6. 【Matlab专题】-01-Matlab使用脚本导入SWC Arxml文件自动生成Simulink模型以及生成C代码

    附:"Matlab导入SWC Arxml文件自动生成Simulink模型"脚本!!! 目录 1 在DaVinci Development创建SWC.Runnable.Port 2 ...

  7. 20180614 MATLAB环境下自动代码生成

    为加速软件开发过程,汽车电子开发过程会采用自动代码生成技术,目前该技术主要集中于应用层控制策略和算法的开发.将传统的算法与软件代码的两个步骤,实现为算法的开发及测试集成于一体的发开模式. 现阶段国内较 ...

  8. 一文弄通STM32F103基于simulink自动代码生成CAN/USART/GPIO/TIM(stm32cubemx+stm32target+matlab2018b)

    一文弄通STM32F103基于simulink自动代码生成CAN/USART/GPIO/TIM(stm32cubemx+stm32target+matlab2018b) 写在前面 1.stm32cub ...

  9. SIMULINK下的STM32自动代码生成

    SIMULINK下的STM32F4的自动代码生成 Author  :  zhou Date    :  2019/1/28 安装软件: MATLAB2013b(包含coder generation工具 ...

最新文章

  1. 其他算法-两大随机采样方法简介
  2. 合肥高校计算机协会联盟部门
  3. 无法在源表中获得一组稳定的行_行输出变压器的结构、符号及电路分析
  4. libmysqld_dev linux,解决mysql安装mysqld doesn\'t exist or is not-鸟哥のlinux-ChinaUnix博客
  5. 基于JAVA+SpringMVC+Mybatis+MYSQL的图书馆座位预约系统
  6. IE 浏览器 js new Date NAN
  7. Git学习系列(一)初识Git
  8. 对阵Flash 实战HTML 5技巧之页面设计
  9. android新闻客户端实验报告,基于Android平台的新闻客户端设计与实现
  10. python是如何进行内存管理的_Python是如何进行内存管理的?
  11. paip.java 多线程参数以及返回值Future FutureTask 的使用.
  12. 服务器linux simsun.ttc is not a valid ttf file
  13. 用 Mixly 玩 ESP8266(ESP-01模块)之二
  14. Java并发编程:03-多线程并发下载器, 支持断点下载(手写不限速的迷你版迅雷)
  15. 【题解】P5369 [PKUSC2018]最大前缀和(状压 DP)
  16. 八皇后问题----Java实现
  17. java文件写入不覆盖_java写入文件不覆盖写入_Java写入文件–用Java写入文件的4种方法...
  18. springboot实现的工厂模式
  19. Mac关闭Iphone更新系统iTunes强制自动备份文件
  20. Spring入门示例

热门文章

  1. PMP项目管理中的重要角色
  2. 什么是云计算的?云计算的定义、特征、模型分别是什么?
  3. #三分法判断单峰函数最值#附加例题LA 5009
  4. (二)2.逻辑代数的基本定理
  5. css简单实现div鼠标悬浮后出现阴影
  6. 在H5中使用qrcode, qrcodejs2生成二维码
  7. vue 自定义指令
  8. MVVC 框架的介绍
  9. Callable 接口实现java 的多线程
  10. 2D物理系统——碰撞器