I-Logix Proprietary and Confidential CPU External Code RTOS OXF Framework Rhapsody Generated Code...

12
I-Logix Proprietary and Confidential CPU External Code RTO S OXF Framework Rhapsody Generated Code CPU External Code IDF Framework Rhapsody Generated Code Requires a Real-Time Operating System Needs no Operating System IDF Framework V0.13 (30th Oct 2001) •Interrupt Driven Framework •Object eXecution Framework

Transcript of I-Logix Proprietary and Confidential CPU External Code RTOS OXF Framework Rhapsody Generated Code...

I-Logix Proprietary and Confidential

CPU

Exte

rnal

Cod

e

RTOS

OXF Framework

RhapsodyGenerated Code

CPUEx

tern

alC

ode

IDF Framework

RhapsodyGenerated Code

Requires a Real-Time Operating System

Needs no Operating System

IDF Framework V0.13 (30th Oct 2001)

• Interrupt Driven Framework

• Object eXecution Framework

I-Logix Proprietary and Confidential

Current Environments• Environments tested on target hardware

– Arm compiler + ARM7 • Environments running on a simulator

– Tasking compiler + C166 – Diab compiler + PowerPC 860

• Environments compiling and linking– Keil compiler + C166– Keil compiler + C51– Texas Instruments compiler + DSP TMS30C3x/4x– IAR compiler + H8– CAD-UL compiler + x86– PanaX compiler + MN10200

• Environments running with an OS (used just to generate a periodic timeout)– Microsoft Visual C++ compiler + Windows– Gnu compiler + VxWorks– Borland compiler + Windows

I-Logix Proprietary and Confidential

IDF Characteristics

• No need for an RTOS• Can be used with 16 bit compilers• Smaller code size between 5k and 11k

(depending on if the list/map/string/collection classes are used)

• Avoids using malloc / free (except if containers used)

• Entire framework in documented Rhapsody model• Most standard Rhapsody models can be run

using the IDF framework (as long as model does not use any OS features, ex: Tasks, Semaphores)

I-Logix Proprietary and Confidential

IDF Characteristics

• Must create environment for compiler and microprocessor (rough estimate : 1 days work)

• Must implement three operations to disable / enable interrupts and setup a periodic interrupt (rough estimate : 1 days work)

• Single task / thread• Animated is not supported on the target, this must

be done on the host using the OXF framework• IAR & Tasking compiler currently require a perl

script to automatically modify the Rhapsody generated code (this problem will be resolved in Rhapsody V4.0)

• Currently only Rhapsody in C (Preliminary version does exist in C++)

I-Logix Proprietary and Confidential

Generating C166 IDF

I-Logix Proprietary and Confidential

C166 IDF + CrossView Simulator

I-Logix Proprietary and Confidential

Generating Diab IDF

I-Logix Proprietary and Confidential

Diab IDF + SingleStep Simulator

I-Logix Proprietary and Confidential

Generating Arm IDF

I-Logix Proprietary and Confidential

Arm IDF + AXD Debugger

I-Logix Proprietary and Confidential

ARM Stopwatch model

+seconds : int+minutes : int

+Init()+evStartStop()+evReset()

Timer1

+print(int m,int s)

Display1

Button1

itsDisplay

1

itsTimer

1

idle

held

pressed

tm(200)tm(2000)/CGEN( me->itsTimer, evReset() );

[isReleased(me)]/CGEN( me->itsTimer, evStartStop() );

evPress

running

on>off>

tm(1000)/tick(me);

evStartStop

evStartStop

/reset(me);

evResetCode Size : 20k !

Including Stopwatch code, IDF Framework

and C Libraries.

Event evPress generated from

button ISR

I-Logix Proprietary and Confidential

Generating TI IDF for TMS30C3x/4x