Welcome to Telelogic Product Support
  Home Downloads Knowledgebase Case Tracking Licensing Help Telelogic Passport
Telelogic Rhapsody (steve huntington)
Decrease font size
Increase font size
Topic Title: RiC++ 5.0 Interrupt Driven Framework
Topic Summary:
Created On: 21-Sep-2005 20:23
Status: Read Only
Linear : Threading : Single : Branch
Search Topic Search Topic
Topic Tools Topic Tools
Subscribe to this topic Subscribe to this topic
E-mail this topic to someone. E-mail this topic
Bookmark this topic Bookmark this topic
View similar topics View similar topics
View topic in raw text format. Print this topic.
 21-Sep-2005 20:23
User is offline View Users Profile Print this message


Mark Richardson

Posts: 227
Joined: 30-Jun-2004

How to run the framework with the test models
============================================================================

To try out the Interrupt Driven Framework, follow these simple instructions:

1. Set up an environmental variable IDF_ROOT to point to the idf directory
below where this model is located: ex: ...\InterruptDrivenFramework\idf

2. Modify your Rhapsody\Share\Properties\siteC++.prp file to include just the
new environments IDF_Microsoft_NT, IDF_Borland_NT, IDF_Tasking_C166, ...
that are needed. The attached Share.zip file must be extracted into the
Rhapsody directory.

3. Start up Rhapsody and load the model.

4. Select the "idf" component and the "microsoft_nt" configuration, generate
make.
This should generate an idf.lib file in the idf\microsoft_nt\oxf directory.

5. Select the "TimerTest" component and the "oxf" configuration, generate /
make / run. This uses the usual "Microsoft" environment and uses animation
to test the selected model.

6. Once the model has been tested, it can be run using the "IDF_Microsoft_NT"
environment by simply selecting the "microsoft_nt" configuration and generate
/ make / run.

7. To test with another environment such as tasking_c166, select the idf
component and the tasking_c166 configuration. Generate / make. Then select
the PingPongTest component with the tasking_c166 configuration. (This test
does not use timeouts and will run without the need to setup a periodic
interrupt).



Framework Limitations
============================================================================

1. Threads are allowed, but are not true threads. Interrupt driven.
2. Animation is not possible with this framework, but any model
can be animated using the oxf framework. Tracing mode is partially
supported.
3. Flat statechart implementation and Real Time model must be selected.
(Reusable statechart implementation and Simulated Time models are not
supported)
4. The event queue and Timer heaps are not dynamic and maximum sizes must
be setup.
5. To use the framework with a different target, one function must be
modified to setup a periodic interrupt that simply sets bTick to TRUE
every 20ms or so.
6. The OMString, OMList, OMMap and OMCollection classes are not integrated


How to setup the framework for a different target
============================================================================

1. Modify the operation OXF::initTimer().

This should setup a periodic interrupt that simply sets the global variable
bTick to true.

2. Add a new environment in the siteC++.prp file ex: CustomIDF. Setup makefile
template, compiler flags, ...

3. Add a new configuration to the idf component ex: customidf, that uses the
CustomIDF environment.

4. There are several framework constants in the RiCIdfPkg that may need tuning:

OM_MAX_EVENTS : Maximum number of simultaneous events
OM_MAX_TIMEOUTS : Maximum number of simultaneous timeouts
OM_MS_PER_TICK : Periodic timeout in milliseconds

RiCpp_IDF_V501.zip
RiCpp_IDF_V501.zip  (912 KB)

Report this to a Moderator Report this to a Moderator
Statistics
20925 users are registered to the Telelogic Rhapsody forum.
There are currently 1 users logged in.
You have posted 0 messages to this forum. 0 overall.

FuseTalk Standard Edition v3.2 - © 1999-2009 FuseTalk Inc. All rights reserved.