Real-Time Workshop Release Notes |
Upgrading from an Earlier Release
This section describes the upgrade issues involved in moving from the Real-Time Workshop 3.0 (Release 11.0) to the Real-Time Workshop 4.0.
Column-Major Matrix Ordering
The Real-Time Workshop now uses column-major ordering for two-dimensional signal and parameter data. In previous releases, the ordering was row-major.
If your hand-written code interfaces to such signals or parameters via ExportedGlobal
, ImportedExtern
, or ImportedExternPointer
declarations, make sure to review any code that relies on row-major ordering, and make appropriate revisions.
Including Generated Files
Filename extensions for certain generated files have changed. If your application code uses #include
statements to include the Real-Time Workshop generated files (such as model.prm
), you may need to modify these statements. See Filename Extensions for Generated Files.
Updating Release 11 Custom Targets
If you have created custom targets for the Real-Time Workshop under Release 11, you must update your custom system target files and template makefiles to create and utilize the build directory. See matlabroot/rtw/c/grt
for examples.
To update a Release 11 target:
".."
to the INCLUDES rule in your template makefile. The following example is from grt_lcc.tmf
.
-I.
gets files from the build directory, and the second -I..
gets files (e.g., user written S-functions) from the current working directory.
Conceptually, think of the current directory and the build directory as the same (as it was in Release 11). The current working directory contains items like user written S-functions. The reason ".."
must be added to the INCLUDES rule is that make
is invoked in the build directory (i.e., the current directory was temporarily moved).
grt_lcc.tmf
.
hilite_system Replaces locate_system
If you use the locate_system
command, in MATLAB programs for tracing the Real-Time Workshop system/block identification tags, you should use hilite_system
instead. See hilite_system and Code Tracing.
TLC Compatibility Issues
In bringing Target Language Compiler files from Release 11 to Release 12, the following changes may affect your TLC code base:
%codeblock
and %endcodeblock
constructs are no longer supported.
%defines
and macro constructs are no longer supported.
...
and \
) are not allowed inside of strings. Also, to place a double quote ("
) character inside a string, you must use \"
. Previously, the Target Language Compiler allowed you to use """
to get a double quote in a string.
%include
files in different contexts (e.g., from generate files, inside of %with
blocks, etc.) %include
statements are now treated as if they were read in from the global scope.
%function
in one file and %include
a file that had the %endfunction
). This no longer works.
%undef
. It is possible to undefine built in values, but this practice is not encouraged.
EXISTS
function have changed. In the previous release of TLC, EXISTS(var)
would check if the variable represented by the string value in var
existed. In the current release of TLC, EXISTS(var)
checks to see if var
exists or not.
Real-Time Workshop 4.0 Release Notes | Known Software and Documentation Problems |