Top Banner
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
12

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

Dec 14, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: I-Logix Proprietary and Confidential CPU External Code RTOS OXF Framework Rhapsody Generated Code CPU External Code IDF 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

Page 2: I-Logix Proprietary and Confidential CPU External Code RTOS OXF Framework Rhapsody Generated Code CPU External Code IDF Framework Rhapsody Generated Code.

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

Page 3: I-Logix Proprietary and Confidential CPU External Code RTOS OXF Framework Rhapsody Generated Code CPU External Code IDF Framework Rhapsody Generated Code.

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)

Page 4: I-Logix Proprietary and Confidential CPU External Code RTOS OXF Framework Rhapsody Generated Code CPU External Code IDF Framework Rhapsody Generated Code.

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++)

Page 5: I-Logix Proprietary and Confidential CPU External Code RTOS OXF Framework Rhapsody Generated Code CPU External Code IDF Framework Rhapsody Generated Code.

I-Logix Proprietary and Confidential

Generating C166 IDF

Page 6: I-Logix Proprietary and Confidential CPU External Code RTOS OXF Framework Rhapsody Generated Code CPU External Code IDF Framework Rhapsody Generated Code.

I-Logix Proprietary and Confidential

C166 IDF + CrossView Simulator

Page 7: I-Logix Proprietary and Confidential CPU External Code RTOS OXF Framework Rhapsody Generated Code CPU External Code IDF Framework Rhapsody Generated Code.

I-Logix Proprietary and Confidential

Generating Diab IDF

Page 8: I-Logix Proprietary and Confidential CPU External Code RTOS OXF Framework Rhapsody Generated Code CPU External Code IDF Framework Rhapsody Generated Code.

I-Logix Proprietary and Confidential

Diab IDF + SingleStep Simulator

Page 9: I-Logix Proprietary and Confidential CPU External Code RTOS OXF Framework Rhapsody Generated Code CPU External Code IDF Framework Rhapsody Generated Code.

I-Logix Proprietary and Confidential

Generating Arm IDF

Page 10: I-Logix Proprietary and Confidential CPU External Code RTOS OXF Framework Rhapsody Generated Code CPU External Code IDF Framework Rhapsody Generated Code.

I-Logix Proprietary and Confidential

Arm IDF + AXD Debugger

Page 11: I-Logix Proprietary and Confidential CPU External Code RTOS OXF Framework Rhapsody Generated Code CPU External Code IDF Framework Rhapsody Generated Code.

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

Page 12: I-Logix Proprietary and Confidential CPU External Code RTOS OXF Framework Rhapsody Generated Code CPU External Code IDF Framework Rhapsody Generated Code.

I-Logix Proprietary and Confidential

Generating TI IDF for TMS30C3x/4x