Rpy_C_OORTX_Keil5_ARM_MCB1700_TD_V6.02

Login No Access - Get Quote

Rpy_C_OORTX_Keil5_ARM_MCB1700_TD_V6.02 Release Notes

About Release Notes

This document lists all changes that have been applied to the RXF
product Rpy_C_OORTX_Keil5_ARM_MCB1700_TD from version to version.
Changes can be new features, which have been implemented, functional
changes, fixed problems or new known issues.
If a change has been implemented for one parts this product consists
of, if will be listed here. Rpy_C_OORTX_Keil5_ARM_MCB1700_TD
consists of:

== Product Rpy_C_OORTX_Keil5_ARM_MCB1700_TD ==
RXF ............... : Willert OORTX
IDE ............... : Keil uVision 5
Debugger .......... : Keil uVision
Modelling ......... : IBM Rational Rhapsody
Language .......... : ANSI C
RTOS .............. : Willert OORTX
CompilerAndTarget . : Keil MDK-ARM for Cortex-M3
Board ............. : Keil MCB1700
Extension ......... : Embedded UML Target Debugger

New in Version V6.02

Changes introduced in Rpy_C_OORTX_Keil5_ARM_MCB1700_TD_V6.02 which was released on 2016-08-25.

Fixed Issues

Identifier Description
Case 4329 Under special environment circumstances the new version of the RXF Setup ended prematurely with an error right after starting.
Case 4488 Fixed a bug in the AWK script WSTMonitorHelper.awk. Now class names are detected correct.
Case 4494 Stabilized the UML Target Debugger. Avoid crashes by corrupt incoming data.
Case 4502 WST_FSM
takeEvent() had a NULL pointer reference when used with the Embedded
UML Target Debugger and Triggered Operations. Solved by proper
initialization of event->destination and by setting event->source
to me->owner as a workaround (we do not know the actual sender of a
triggered operation as the calling code is not instrumented) in
WST_FSM_handleSyncEvent().
Case 4506 In
an advanced test model we detected there may be a NULL pointer
reference during C++ class destruction when the RXF shuts down (exit()
on Windows PC). Added additional pointer checking to destructors in
WST_FSM and WST_TMM.
Case 4525 Possible enterCriticalRegion without exitCriticalRegion if a WST_MEM_Pool runs empty.
Case 4633 WSTModelling.h
used to check the define WST_COMPILER_KEIL when defining the FIRE
macros. This is not needed anymore and the #ifdef path could be removed.
Case 4634 The
Stereotype MonitorForTC for using the TestConductor with the RXF and
Target Debugger had a fixed GUID in the product specific RXF profile.
This can cause problems when multiple RXF product profiles should be
loaded at the same time into a model. Now it has a product and version
specific GUID.
Case 4711 Corrected
tick calculation. In previous RXF releases tm()-timeouts could expire
up to two ticks too early. In tm(value) the value now specifies the
time that at least needs to elapse, before the timeout expires. This
means a tm(0) will expire at the next tick. Because of the tick
granularity, a tm(1…WST_MS_PER_TICK) will expire after two ticks
(which makes sure at least a full tick-cycle, lasting WST_MS_PER_TICK
milliseconds, has elapsed).
Case 4836 Properties under C_CG::Configuration are not net via WST_RXF_V6.prp file anymore, but in the RXFComponent stereotype
Case 5142 On busy systems longer timeouts took longer then expected.
Case 5246 Improvement of the make file to prevent unnecessary regeneration of RXFConstants.h and RXFDimensions.h
Case 5465 OORTX
implementation of WST_OSW_MSQ_cancelEvents did not handle static events
correctly when destroying an object which still has events waiting in
the queue

New Features

Identifier Description
Case 4483 Major RXF performance improvements: Optimizations for function inlining and optimizes FSM implementation
Case 4489 Memory
and Timer Optimizations: WST_MEM Static Pools are now also available as
TINY and HUGE and can all or individually be deactivated by setting the
numbers to 0. Also timer mechanism can be deactivated by setting
WST_MAX_TIMEOUTS to 0.
Case 4508 The
virtual table used for state machine code calls can now be reduced to
three entries to save memory. It can be minimized by additionally
assigning the stereotype SmallVtbl to the component.
Case 4510 Introduced
the defines WST_VAR_TYPE_SPECIFIER and WST_INLINE_OP in WSTCompiler.h
to allow adding compiler specific keywords like storage class
identifiers for RXF data and allow explicit inlining of RXF operations.
Case 4515 Setting
the define WST_MEM_POOL_CRITICAL_REGIONS protects static memory pool
handling in WST_MEM_Pool_getMemory() and WST_MEM_Pool_returnMemory().
Together with a static configuration and the NO_MALLOC define this
allows using CGEN/FIRE instead of CGEN_ISR/FIRE_ISR in interrupt
routines.
Case 4560 Added user Hooks before event processing and after event processing. Hooks are defined in WSTTarget.h.
Case 4569 The RXF now uses Rhapsody Simplified Model Manipulation via Rhapsody Plugins to improve Code Generation and allow New Features
Case 4635 The
WSTDeployer now allows to override RXF files with generated files from
the Model by using the same file name. For example it is now possible
to override the RXF adaptation file WSTTarget.c by just adding a file
with the same name somewhere in the model so that it generates. The
WSTDeployer will then stop to deploy WSTTarget.c from the RXF source
folder and will only add the file from the model. This behavior can be
deactivated manually by setting ModelOverridesByFilename = false in
WSTDeployer.properties.
Case 4787 #defines of the RXF have been moved into the Model. You can find it inside C_CG/CPP_CG::Configuration.
Case 5149 Moved Rhapsody Run into Rhapsody Make to have a sequential execution. This is needed to atomize the build steps.

Changes in Behavior

Identifier Description
Case 2035 WSTDeployer
now uses the default name “GeneratedModel” (without space character)
instead of “Generated Model” as a subfolder or group name in IDE sample
projects to avoid problems with the space character.
Case 2808 Added
32 vs 64 bit API/Java consistency check to WSTDeployer.bat. This should
assist solving problems especially related to Rhapsody 64-Bit
configurations.
Case 2849 Further improvements for MISRA-C 2004 compliance of the RXF
Case 4505 Rhapsody products from now on always include the Rhapsody container classes. There will be no RC Extension anymore.
Case 4507 From
now on using fixed Project names “Blinky”, “GettingStarted” etc.
without postfixes like Multitasking, CPP or Cert. E.g. previous RXF
releases with an RTOS and for C++ used “BlinkyMultitaskingCPP” as
sample model name. Now it is always just “Blinky”.
Case 4511 The
RXF does not need WSTVersion.c/h functionality anymore. Removed these
files. It used to contain RiCOXF_pre71Settings() for Rhapsody, but now
properties in the RXFComponent make sure that empty operation is not
being called.
Case 4555 Minor MISRA-C 2004 Improvements
Case 4568 WSTDeployer
helpers (e.g. to open the deployment configuration dialog) are now
associated with the release specific RXF profiles instead of being
added to Tools menu via rhapsody.ini. This has the advantage that only
the tool menu entries which are useful for the currently loaded
profiles are shown. Also, you may now right-click the component (which
has the RXFComponent stereotype assigned) and select options for
deployment.
Case 4637 Willert
changed the JDK version for developing Java tools like the WSTDeployer
from JDK1.6 to JDK1.7 (Java 7). This requires customers to have JRE1.7
available to allow execution of these tools.
Case 4743 handleEventNotConsumed and handleTONotConsumed in WST_FSM now use the same function pointer typedef “WSTHandleNotConsumed”.
Case 5040 Keil5-ARM Evaluation Releases now only have one RXFR lib (an no extra AnimationR lib)
Case 5063 Using type WST_TimeUnit_t consistently for time values in the RXF instead of timeUnit which was then typedefed to WST_TimeUnit_t
Case 5064 Improved WST code generation simplifier robustness and diagnostic messages in Rhapsody.
Case 5068 RXF
Profiles now only contain the RXF product name, and not the version
number of the RXF release anymore. Also GUIDs contained (e.g. for
stereotypes) are not specific per release version anymore, but just per
RXF product.
This makes updating an existing UML project to a newer RXF version is
much easier. It it not necessary anymore to go through all instances
where RXF stereotypes are used to switch them to a newer version number
of the same RXF product.
Please note this also involves the following changes:
Only the profile of one version of an RXF profile for a product may be
referenced at a time in a UML model (but different products in one
model are still ok).
The Rhapsody\Share\Profiles\WST_RXF_V6 folder will only contain the RXF
profile of the latest installed RXF per each product.
Case 5099 The
RXF for Rhapsody in C now uses the Java JRE delivered with Rhapsody for
all Java based tools coming with it (and does not require java.exe to
be found in the PATH environment variable anymore).
Case 5100 Updated supported Keil MDK-ARM version
Case 5195 The
build step in Rhapsody used to execute a makefile, only to generate
files like RxfDimensions.h and RxfConstants.h. Now for this step a much
simpler batch file is generated and executed instead of the makefile,
as there are no dependencies that need to be evaluated by make. The
actual build step is still performed in the external IDE, as usual with
the RXF.
Case 5207 Removed
tags “rootDescription”, “rootTitle”, “toolchainProjectFile”,
“relativeGeneratedFilePath” and “relativeRxfPath” from the RXFComponent
Stereotype. They were only used for old RXF V5 Deployer compatibility.
Case 5250 Added support for Rhapsody 8.1.5, which uses a new Java location (including JDK instead of JRE).

New in Version V6.01

Changes introduced in Rpy_C_OORTX_Keil5_ARM_MCB1700_TD_V6.01 which was released on 2014-11-26.

Fixed Issues

Identifier Description
Case 4231 Added a WSTFalse to return Memory for staticComponent.
Case 4278 Profile Model under Config\UserSettings\RXFProfile.rpy contained a wrong unit reference name for the product profile .sbs
Case 4298 Property value for RemoteHostName is now specified without quotes

Changes in Behavior

Identifier Description
Case 4236 Removed WST_RPY_VERSION define from RxfConstants.h (the RXF has no need anymore to check the Rhapsody build number).
Case 4237 Container Classes delivered with RXF do not set resource IDs anymore (independent of a define)
Case 4245 Stereotype “LiveAnimation” can now be applied to components and (added) configurations.
Case 4256 Added Shortcuts to TargetDebugger
Case 4269 Minor improvements of the UML Target Debugger. Now it is possible to inject sequences of events.

New in Version V6.00

Changes introduced in Rpy_C_OORTX_Keil5_ARM_MCB1700_TD_V6.00 which was released on 2014-10-16.

Fixed Issues

Identifier Description
Case 2310 Improvements in NULL pointer checks made after reviewing Klocwork report
Case 2679 Improved V6 Documentation
Case 2684 Improved RXF documentation
Case 2704 In
many cases the code generation message — Do you want to Roundtrip —
was coming up every time code needs to be generated. This is now solved.
Case 2709 Solved problem with FIRE, FIRE_S, FIRE_ISR and FIRE_ISR_S macros for sending events.
Case 2713 Corrected handling of null transitions by solving problem with the Null_id identifier
Case 2720 Embedded UML Target Debugger had problems querying attributes from the target in combination with an RTOS.
Case 2745 Corrected define WST_CFG_HIGHWATERMARKS in Rhapsody default Debug configuration settings
Case 2803 Using event generation macro FIRE_ISR_S resulted in an error like struct has no field wst_event
Case 3143 RXFComponent
Stereotype now overrides Include Statement Properties for the
RiCContainers to support working without oxf subdirectory (flat RXF
structure). WST.h additionally includes RiCTypes.h, RiCCollection.h,
RiCList.h und RiCMap.h.
Case 3145 Defining RiCNotifyToOutput() as empty macro to solve build problems when Rhapsody generates it.
Case 3155 Corrected include file name for ports support (RiCDefaultReactivePort).
Case 3156 Correctly mapping WST_EVT_setDeleteAfterConsume() in WSTModelling.h.
Case 3157 Return value of operation IRiCReactive_gen() for ports support now initializes return value in any case.
Case 3158 Embedded UML Target
Debugger now displays events which have been sent via ports correctly
(a problem with undefined sender of the events was solved)
Case 3162 Fixed a macro definition Problem in WSTModelling.h. WSTGEN_PORT is now available.
Case 3193 Fixed a bug depending the message queue. Now a real FIFO queue is implemented.
Case 3211 Removed a memory leek caused by the function cancelEventsAndTimeouts
Case 3235 Added a two macros. OMSETPARAMS to set event parameter. IS_COMPLETED for state charts with termination state.
Case 3263 Now the WST_TMM_itsTimeout array is independent of #define WST_CFG_HIGHWATERMARKS
Case 3454 Sub classes of active classes now using the same task as the parent class.
Case 3486 Triggered operations return value macro CREPLY is fixed.
Case 3779 Fixed
the if statement in the executeOnce operation. Changed the (==) to (!=)
to check if messages are available in the message queue
Case 3784 Now the Target Debugger can be used with the TestConducter without using the stereotype LiveAnimation in the component.
Case 3788 Fixed a problem with RiCCollection_add. The realloc command was called with wrong parameters.
Case 3813 Fixed
the WST_MEM_getMemory() operation. WST_FORCE_ALLOC_FAILED or _DEBUG
will cause the calling the error handler independent of the define
NO_MALLOC or WST_FORCE_ALLOC_FAILED.
Case 3816 Timeouts
in OO-RTX are now also handled correctly when using
WST_RXF_executeOnce() instead of the default WST_RXF_execute() and if
no events are in the event queue.
Case 3861 WSTDeployer
now handles relative paths to the destination IDE project (beginning
with “.\”, relative to the generated source files directory) correctly.
Case 3874 Memory pool usage counter was not counted properly (missing decrement).
Case 3887 Added
a safety functionality for the timer management. This is necessary when
triggered operations are called inside an interrupt service routine.
Case 3986 WST_TMM
now has enhanced protection and debug-info attributes to protect the
RXF against problems with TMM_start() and TMM_stop() calls from
interrupt context. A counting variable “mutex” is now used in relation
with the irqTimeouts ring buffer. Also TMM attributes “irqTimeoutCount”
and “irqTimeoutHighwater” have been added to allow accessing debug
information when WST_TMM_MAX_IRQ_TIMEOUTS is defined > 0.
Case 3993 The UML Target Debugger is now available for CPP RXF with all features
Case 4002 WST_MEM had incorrect WST_MEM_returnMemory() argument “onlyStatic==FALSE” handling
Case 4011 Make the actual RXF compatible with old Frameworks which uses CGEN_S and CGEN_ISR_S in user code.

New Features

Identifier Description
Case 1319 The size of WST_FSM and WST_TSK structure is send to the target debugger while runtime. Its now more dynamic.
Case 2444 Setup
is now adding a tools menu entry to Rhapsody to make it possible to
start the IDE project, which is associated with the currently active
component in the model.
Case 2506 Implemented linked list container class WST_CON_LST to allow ordered one-to-many relations in UML models.
Case 2560 When
creating a new Rhapsody project it is now possible to select the
product specific profile as project type and select the WSTProfile as
project settings both directly in the new project dialog. On earlier
versions only one of these profiles could be selected as project type.
Case 2714 Implemented
macros to support easier initializing and sending of static events from
an array. This mechanism is usually necessary when sending events from
an ISR. The new macros are WST_EVT_initStaticEventArray( EVENT,
EVENT_ARRAY, SIZE ), WST_EVT_initStaticEventArray_S( SOURCE, EVENT,
EVENT_ARRAY, SIZE ) and FIRE_ISR_ARRAY( DESTINATION, EVENT_ARRAY,
INDEX, SIZE ).
Case 2787 Implemented support for separated subfolders for Model and RXF sources for the WSTDeployer
Case 2875 Included MISRA2004 profile in installation
Case 2918 Implemented limited support for UML Ports
Case 3534 The
Frameworks Message Queue is no longer statically sized, it will grow
accordingly. This is possible since the memory allocation is done
completely static.
Case 3541 RXF products now include a document Doc/BillOfMaterial.html with svn revisions and MD5 hashes for each source file.
Case 3645 The protocol for the Embedded UML Target Debugger is improved. New version is 2.6.0
Case 3985 WST_RXF_executeOnce()
now allows to handle a given number of events with each call (instead
of just one event per call). Existing user code calling
WST_RXF_executeOnce() needs to be updated by adding a parameter (1).
Case 4062 Synchronized Rhapsody Modeling Interface.
Case 4195 The RXF can now be used by the BTC TestConductor to detect the code coverage.
Case 4196 The Target Debugger supports the handling of arrays with more than one dimension.

Changes in Behavior

Identifier Description
Case 2330 All
RXF files now also use the WST.h include file instead of including a
list of individual RXF header files. Also the class structure
definitions are now consistently named with the _t postfix and
typedefed without the _t postfix. Parameter lists make use of e.g. the
typedefed “WST_FSM” instead of “struct WST_FSM_t”.
Case 2392 Added
possibility to force WST error handler calls on memory allocation
problems also in Release buildsets via defines
WST_FORCE_ERRORHANDLER_IN_RELEASE or WST_FORCE_ALLOC_FAILED
Case 2433 Under
Windows 7 the setup will propose a Willert installation path located
under the user files directory to make sure read and write access is
possible.
Case 2685 WSTDeployer now
saves the IDE destination path in relation to the generated sources
path of the active configuration. The deepest three directory levels
are used as a key to identify model, component and configuration the
IDE project is related to. For details please read the WSTDeployer
Configuration documentation.
Case 2735 Updated to test environment to Keil MDK-ARM V4.54, also updated default system_LPC17xx.h file.
Case 3002 Added
support for RxfExcludeByFilenameOnly property in WSTDeployer, which
defaults to true. That makes sure only filenames of RXF excluded files
are compared (ignoring cases) and allows easier exclusion of RXF files
from Deployment.
Case 3094 Removed
some overhead in the RXF which is not really needed in V6 of the RXF
anymore. This does not reduce functionality, but gives a better
overview when looking at RXF source files. E.g. WSTEpilog.c,
WSTEpilog.h, WSTProlog.c and WSTProlog.h have been removed.
Case 3163 Removed WSTRXFLib class from RXF, as the RXF_Init can also be used if the RXF is only used as subpart of a system.
Case 3166 Removed
check for define WST_RXF_INIT_IS_MAPPED, as WST_RXF_Init() can also be
overridden by user specific WST_RXF.c file and adding WST_RXF.c to
WSTDeployerExcludedFiles.txt, if a different RXF implementation should
be used.
Case 3222 Now the RTOS message queue can differ between events from ISR and events from normal context.
Case 3268 Removed WSTStartBehaviorEvent.c/.h. The WSTStartBehaviorEvent is now represented as a normal WST_EVT.
Case 3305 Added the Stereotype Task to the RXF profile to create tasks with static stacks and message queues.
Case 3409 Changed
the Monitor helper AWK file. Now no additional lines are added to the
generated code. This is needed to use the Framework with BTC
TestConductor.
Case 3425 Setting
property RemoteHost to generate fixed dummy host name “WST_RXF”, which
gets removed by the preprocessor during compile time.
Case 3454 Added the Macro FIRE_ISR
Case 3485 Removed
WSTCompiler.c because it don’t include functional content. All compiler
specific adjustments are present in the WSTCompiler.h.
Case 3498 Removing the include from WSTCompiler.h it is not needed for the Framework.
Case 3532 Define WST_OS_TOLOWER_DEFINED_IN_CTYPE in WSTCompiler.h was defined without being used in the RXF. Removed the define.
Case 3533 Removed unnecessary Include of ctype.h in WSTTypes.h.
Case 3817 Define
WST_MAX_EVENTS and Property WSTMaxEvents are no longer available in the
RXF. The event list is dynamic and there is no specific size limit
which needs to be set via properties.
Case 3818 Rhapsody generated code may access event IDs directly, added mapping from lId to id in WSTModelling.h
Case 3819 Renamed define STATIC in Rhapsody container classes (RC) into RIC_STATIC to prevent name clashes with user or RTOS code.
Case 3822 Documented WST_DEFAULT_MAX_NULL_STEPS define to configure NULL-transition loop detection.
Case 3823 Documented WST_MS_PER_TICK Define
Case 3835 Setting
default Rhapsody edition in Rhapsody.ini during RXF Setup to Architect
to better support Willert OEM Rhapsody users (e.g. when launching
Rhapsody inside Eclipse).
Case 3867 The
operation WST_MEM_returnMemory has now a second argument “WSTBoolean
onlyStatic”. If this attribute is true free will not be called if the
given memory pointer is not part of the static memory pools.
Case 3882 RXF Class structure typedefs are now all located inside WST.h
Case 4012 Surrounded
the executeOnce operation with a busy variable. This prevents race
conditions when this function is called by different tasks of an
underlaying RTOS.
Case 4013 Added a mutex functionality (without disabling IRQ) for critical sections in the timer management (WST_TMM)
Case 4030 Settung property C_CG::Ports::SupportMulticast to “Never” in order to allow Rapid-Ports usage with manual multiplicity access
Case 4192 Requirement references in RXF source comments now include the requirement prefix (e.g. \req{RXFC-123} instead of \req{123}).
Login No Access - Get Quote