IBM® Rational® Rose® Real Time 7.0.0.1 iFix003
VxWorks 6.x Integration 

© Copyright IBM Corporation. 1999-2008. All Rights Reserved.
Any reproduction or distribution of this work is expressly prohibited without the prior written consent of IBM Rational.

Scope
This document details the support for VxWorks 6.x Integration. It provides Real-Time Process (RTP) application development support using Wind River (Diab) compiler 5.5.0 and gcc 3.4.4 compiler for VxWorks6.4 target for Rose RealTime C++ applications. It also provides support for Target Control operations (including Debugger mode) for both Kernel and RTP mode applications.
Enhancements
1.	RTP support for VxWorks 6.x
VxWorks has historically provided only kernel mode, requiring users to develop exclusively in this mode. With VxWorks 6.x, Wind River introduced the Real-Time Process (RTP) models. The RTP model introduces the user and kernel mode demarcation for VxWorks. Application designs based on the RTP model will benefit from the high-performance VxWorks kernel, with the addition of reliable resource reclamation and memory protection.

RTP support for VxWorks 6.x allows Rose RealTime users to model and build RTP mode applications. This fix only includes support for building the RTP mode applications using C++. Please refer to Known Issues section for more information. 

This fix includes two new TargetRTS configurations that can be used for building RTP mode applications. They are:
1)	 VxWorks64RTPT.ppc603-Diab-5.5.0-RTP        - using the Diab 5.5.0 compiler
2)	 VxWorks64RTPT.ppc603-gnu-3.4.4-RTP          - using the gcc 3.4.4 compiler 
To make sure that all the Wind River paths are set properly and that there is no problem in building RTP applications from Rose RealTime, you must launch Rose RealTime from the “VxWorks Development Shell”.
Also ensure that in the Component Specifications of the RTP executable, the below values are set as follows: 
Under the tab C++ Compilation
1)	CompilationMake Type:    GNU_make
2)	CompilationMakeCommand:   make

Under the tab C++ Generation
1)	CodeGenMake Type:   GNU_make
2)	CodeGenMakeCommand:   make
2.	Target Control support for VxWorks 6.x
Target Control refers to the Rational Rose RealTime toolset features that load, unload, execute, and terminate a Rational Rose RealTime-generated application, as well as the ability to reset a remote target platform. Please note that in case of RTP applications, there is no load or unload operation. Only execute, terminate, and reset operations are relevant for RTP mode applications.
Target Control Modes:
 
1.	Manual Mode 
In Manual mode, Rational Rose RealTime does not provide any Target Control functionality. The user is responsible for performing Target Control operations (such as loading and executing). After the target application starts, the user can direct the Rational Rose RealTime toolset to connect to the executing target application for Target Observability. 

2.	Basic Mode 
In Basic mode, Rational Rose RealTime uses the target environment's APIs to control the execution of the target application.

There are five Target Control operations:

	- reset;
	- load;
	- unload;
	- execute;
	- terminate.

For steps on using the Target Control functionality support for VxWorks 6.x, please follow the steps mentioned in the Additional Information section.
  
3.	Debugger Mode
Debugger mode provides the same capabilities as Basic mode and, in addition, provides the ability to inter-work with a C++ source debugger (e.g., Tornado, Workbench, etc.) to set source code level breakpoints from within the UML model. When these source breakpoints are hit at run-time, control of the executable is passed to the source debugger. When the application is continued, control of the executable is passed back to the Rational Rose RealTime toolset. Debugger mode provides an integrated debug environment that permits a simultaneous use of source code and UML debugging styles.
As part of this iFix, support for the source code debugger provided with the Wind River Workbench 2.x is provided. For steps on using the Debugger mode of Target Control for VxWorks 6.x, please follow the steps mentioned in the Additional Information section.
Additional Information
The steps to use the Target Control functionality for Kernel mode applications on VxWorks 6.x are similar to those for the VxWorks 5.x integration, with a few differences. Please refer to Known Issues for more information, about these differences.
Creating a target connection from Wind River workbench:
•	Start the Wind River Workbench
•	Select “New Connection…”, and choose “WindRiver Target Server Connection for VxWorks”.
•	Enter connection properties dialog with appropriate values.
For the purpose of this example, assume that the Target board IP address is 9.182.243.189 and that the Host machine name is win-rosert01.
Then enter the Target Connection name as say 9.182.243.189
•	Right click on newly created target and select “connect”.
•	Target Server will be connected to the target board.
Steps to be followed on Rose RealTime Toolset side:
•	In the Deployment View, open the “Processor Specification Dialog” of the processor.
•	Switch to the Detail Tab and set the properties with appropriate values:
In case of Kernel mode applications:
1.	CPU 	: Select the appropriate CPU type
2.	OS 	: Set it as VxWorks
3.	Address 	: Set the Target board IP address
4.	Server 	: Set the Target Server name
5.	Load script	: Set it to use $ROSERT_HOME\bin\tc\win32\workbench

 
For RTP mode applications:
1.	CPU 	: Select the appropriate CPU type
2.	OS 	: Set it as VxWorks
3.	Address 	: Set the Target board IP address
4.	Server 	: Set the Target Server name
5.	Load script	: Set it to use $ROSERT_HOME\bin\tc\win32\workbenchrtp

 
•	Click on “Apply” button
•	Close the Processor Specification dialog
Steps to be followed to use the Debugger (Wind River Workbench 2.x) support:
For Kernel mode applications:
•	Open the “Component Instance Specification dialog” of the component instance
•	Switch to the Detail Tab and set the Operation Mode as “Debugger-Workbench”
•	Click on “Apply” button
•	Close the Component Instance Specification dialog

 
Now, user can perform the Target Control operations in Debugger mode from the context menus of the Component Instance in the Deployment View. These operations can be done similar to earlier VxWorks 5.x Tornado debugger support.
For RTP mode applications:
•	Open the “Component Instance Specification dialog” of the component instance
•	Switch to the Detail Tab and set the Operation Mode as “Debugger-WorkBenchRTP”
•	Click on “Apply” button
•	Close the Component Instance Specification dialog

Steps to set the breakpoints for RTP mode applications:
•	Since there are no load and unload operations for RTP mode applications, the Target Control operations in debugger mode are different from that of Kernel mode applications.
•	As soon as user sets the Operation mode as Debugger-WorkBenchRTP in the component instance specification, user can set the breakpoints in the model.
	
	Steps to set the model level breakpoints:
•	Open the context menu of the component instance
•	Select the “Open Break Point Diagram”
•	The corresponding break point diagram will be opened as shown below.
•	User can set/unset the breakpoints  

Note: Debugger support in RTP mode uses the line breakpoints.
Steps to Run the RTP application:
	User can run the RTP mode application by selecting ‘Run’ option in the context menu of the Component instance.

Steps to Attach to the Source code Debugger ( i.e. Workbench ):
•	Once the RTP application is run in the toolset, RTP instance will be created in the Workbench. User needs to attach to the RTP task in Workbench in order to perform source code debugging.

•	As soon as user attaches to the RTP task, the debugger perspective in the Workbench will be opened as follows. Since, no breakpoint is hit yet, debug options such as ‘step’ etc. are disabled.

•	When a breakpoint hit occurs, the source code file will be opened automatically in Workbench. Now, user can perform typical source code debugging operations.

Steps to Terminate the RTP application:
User can terminate the RTP mode application by selecting ‘Shutdown’ option in the context menu of the Component instance.

Known Issues
o	If the Rose RealTime built application’s path has spaces (i.e., ‘ ’), then target control operations will fail.
This issue exists in the Rose RealTime VxWorks 5.x integration, as well.

o	Wind River Workbench 2.x must be started prior to loading/running of the Rose RealTime built application on the Target.
Necessary because Rose RealTime RTP mode Target Control and Debugger support utilizes dfwserver, which is started when starting Workbench.

o	In the Wind River Workbench, the user needs to manually attach to particular Kernel Task or RTP to see the break point hits.

o	There is no indication of breakpoint hits on Rose RealTime toolset side.

o	There is no RTP support for Connexis.

o	Kernel mode support for C++ TargetRTS and Connexis on VxWorks 6.0 already exists in Rose RealTime v7.0.0.1 iFix002 and no update is provided in this iFix.  If required, users may need to port these targets to a later version of VxWorks.