CMX Systems, Inc
RTOS
TCP/IP
Flash File Systems
USB
cmxCANOpen
  CMX-CanOpen
Compilers
Modeler

 

 

CMX-CANopen Code Size and Performance Examples

DS401 Generic I/O Example

The default example delivered with CMX-CANopen implements the Device Profile DS401 for Generic I/O. It has one SDO server, produces the heartbeat message, supports the generation of emergency messages, uses 8 PDOs (4 RPDO, 4 TPDO) of 8 bytes each and supports all CANopen transmission modes: synchronized, event and/or time triggered and RTR. All PDOs are fully dynamic.

The application implemented is minimal, all RPDOs are copied back to the TPDOs. All process data and some configuration data is stored in a process image of 96 bytes.

The table below shows code and data sizes as well as performance of CMX-CANopen for this implementation. The column "Data Size" includes the 96 byte process image and all overhead (like stack) needed for the specific architecture. The "RPDO Time" is the execution time in microseconds for the CAN receive interrupt service routine completely processing an 8-byte RPDO, this includes resolving the dynamic mapping and copying the process data received to the appropriate target location in the process image.

Chip Clock Compiler Code Size Data Size RPDO Time
Philips LPC2129 (ARM7) 60 Mhz GNU without THUMB < 14 kByte < 1kByte < 5us
Infineon XC161 40 Mhz Keil Software < 15.5 kByte < 500 Byte < 55us
Philips XA-C3 32 Mhz Raisonance < 11 kByte < 500 Byte < 90us
Atmel 89C51CC01 (8051) 40 Mhz Keil Software < 11 kByte < 500 Byte < 450us

MyNode Minimal DS401 Generic I/O Example

A minimal example delivered with CMX-CANopen implements a minimal version for the Device Profile DS401 for Generic I/O. It has one SDO server, produces the heartbeat message, uses 3 PDOs (1 RPDO, 2 TPDO) of 4 bytes or 2 bytes each and supports the CANopen transmission modes event and/or time triggered. All PDOs are fully dynamic.

The application implemented is minimal, all RPDOs are copied back to the TPDOs. All process data and some configuration data is stored in a process image of 16 bytes.

The table below shows code and data sizes as well as performance of CMX-CANopen for this implementation. The column "Data Size" includes the 16 byte process image and all overhead (like stack) needed for the specific architecture. The "RPDO Time" is the execution time in microseconds for the CAN receive interrupt service routine completely processing a 2-byte RPDO, this includes resolving the dynamic mapping and copying the process data received to the appropriate target location in the process image.

Chip Clock Compiler Code Size Data Size RPDO Time
Philips LPC2129 (ARM7) 60 Mhz GNU without THUMB < 12 kByte 700 Byte < 5us
Infineon XC161 40 Mhz Keil Software < 14.5 kByte < 250 Byte < 35us
Philips XA-C3 32 Mhz Raisonance < 9.5 kByte < 250 Byte < 50us
Atmel 89C51CC01 (8051) 40 Mhz Keil Software < 8.5 kByte < 250 Byte < 130us

All content is subject to change without notice
Copyright material 2014© All Rights Reserved. Site and all contents are the sole property of CMX Systems, Inc.
No part of this site may be copied or used without the express written permission of the owner.
Web Services by Unicorn Web Development, Inc.