Login No Access - Get Quote

Rpy_CPP_embOS_IAR5_CM3_EFM32_V6.01 Release Notes

About Release Notes

This document lists all changes that have been applied to the RXF product Rpy_CPP_embOS_IAR5_CM3_EFM32 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_CPP_embOS_IAR5_CM3_EFM32
consists of:

== Product Rpy_CPP_embOS_IAR5_CM3_EFM32 ==
Debugger .......... : IAR C-SPY
RXF ............... : Willert RXF
IDE ............... : IAR Embedded Workbench
Modelling ......... : IBM Rational Rhapsody
Language .......... : C++
RTOS .............. : embOS
CompilerAndTarget . : IAR V5.5 for ARM Cortex M3
Board ............. : Cortex M3 bord from Energy

New in Version V6.01

Changes introduced in Rpy_CPP_embOS_IAR5_CM3_EFM32_V6.01 which was released on 2016-03-10.

Fixed Issues

Identifier Description
Case 3544 Now Tasks can be used with dynamic stack sizes
Case 3603 Surrounded critical TMM regions with MUTEXes to avoid race conditions
Case 3614 Fixed a bug where timeout events without statechange was not handled correctly.
Case 3733 Added a sleep function to WST_OSW.c. If the system is stopped by the UML Target Debugger only the target Debugger Task is active.
Case 3791 Removed the MessageQueue size attribute in the Class WST_TSK. Same data is stored inside WST_MSQ.
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 3830 Added “tempMSQ.rtosMsgBuffer = NULL;” into the WST_OSW_cancelEvent operation to initialize the rtosMsgBuffer correctly
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 3904 Moved function startDispetching from class WST_FSM to class WST_TSK. Modified the RXF profile to get more independent from the oxf Framework. Therefore the include files for container classes and protected source parts are modified. Furthermore the path delimiter was changed OS dependent.
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.
Case 4053 Fixed a bug where the destionation of triggered operations was displayed wrong in the UML Target Debugger.
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
Case 4329 Under special environment circumstances the new version of the RXF Setup ended prematurely with an error right after starting.
Case 4484 Fixed a bug in returnMemory
Case 4491 Deleting class objects works now correct without memory leak
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 4518 RhapsodyRun.bat / RhapsodyMake.bat don’t change the timestamp of the generated code files.
Case 4523 Deleting an reactive object using timeouts will not influence timeouts of other objects any more.
Case 4525 Possible enterCriticalRegion without exitCriticalRegion if a WST_MEM_Pool runs empty.
Case 4561 Fixed a bug in FIRE_ISR macros. The called gen operation inside the FIRE_ISR macro is called with “true” to indicate the Event is fired inside a interrupt.
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 set via WST_RXF_V6.prp file anymore, but in the RXFComponent stereotype

New Features

Identifier Description
Case 2875 Included MISRA2004 profile in installation
Case 3541 RXF products now include a document Doc/BillOfMaterial.html with svn revisions and MD5 hashes for each source file.
Case 3568 Added a stereotype “WSTStaticTask”. Applying this to a class will generate a static stack for the task in the cpp file.
Case 3570 Now the CPP framework support ports for Rhapsody
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 4483 Major RXF performance improvements: Optimizations for function inlining and optimizes FSM implementation
Case 4492 Improved memory management by direct accessing static get / remove memory functions.
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 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 4849 Changes state variables from int to enum
Case 4855 Using now a double linked list for timers in use. This have the advantage to remove a specific timeout faster from the list.
Case 4856 The memory pools are now defined inside the Rhapsody model (CPP_CG::Configuration). This can be used to specify a special memory region for each Memory Pool without changing the original source WST_MEM.cpp.
Case 4858 Improved Behaviour for timout Events.
Case 4860 When putting Setting WST_MAX_TIMEOUTS == 0 no static Timeout array is used. Instead WST_MEM memory management is used.
Case 4887 Timers can now be created by new and delete from the timer management. This has the advantage, that it can timer event can be deleted the same way as a normal event.
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 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 2707 WST Simplifier now shows a warning, if the animation stereotype is set and only a partial generate (and not a full regenerate) is done. The Target Debugger requires a full regeneration, otherwise the class IDs it relies on are not unique and the XML file for the debugger is incomplete.
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 3425 Setting property RemoteHost to generate fixed dummy host name “WST_RXF”, which gets removed by the preprocessor during compile time.
Case 3498 Removing the include from WSTCompiler.h it is not needed for the Framework.
Case 3515 Now we support mutexes for the c++ 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 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 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}).
Case 4236 Removed WST_RPY_VERSION define from RxfConstants.h (the RXF has no need anymore to check the Rhapsody build number).
Case 4473 Changed Memory Management for CPP. Changed getter and setter to inline operations and implemented high water marks.
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 4700 Added NULL != me-pointer checks in WST_TSK_initEx() and WST_TSK_initStatic().
Case 4743 handleEventNotConsumed and handleTONotConsumed in WST_FSM now use the same function pointer typedef “WSTHandleNotConsumed”.
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.

New in Version V6.00

Changes introduced in Rpy_CPP_embOS_IAR5_CM3_EFM32_V6.00 which was released on 2013-10-30.

Fixed Issues

Identifier Description
Case 2679 Improved V6 Documentation
Case 2684 Improved RXF documentation
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 2718 Solved problem which required active classes to specify stack size, message queue size and priority. Now also using the default values from WSTRTOS.h is supported.
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 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 3178 The WST_MSQ_put() function called the error handler with code WST_ERR_EVENT_QUEUE_FULL, even if there was still space for one more event in the message queue.
Case 3181 Now the events are counted correctly.
Case 3182 Fixed a memory leek bug while cancel an event.
Case 3235 Added a two macros. OMSETPARAMS to set event parameter. IS_COMPLETED for state charts with termination state.
Case 3237 Protecting timeout queues via mutexes against concurrent task race conditions.
Case 3263 Now the WST_TMM_itsTimeout array is independent of #define WST_CFG_HIGHWATERMARKS
Case 3265 Fixed a problem of race conditions while putting messages into the message queue
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.

New Features

Identifier Description
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 2918 Implemented limited support for UML Ports

Changes in Behavior

Identifier Description
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 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 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 3515 Now we support mutexes for the c++ framework
Login No Access - Get Quote