What are the memory requirements for a CANopen® communication protocol stack?
The memory requirements differ a lot depending on the microcontroller architecture used and the CANopen® features required by a particular node/application. The nice thing about CANopen® is, that the set of mandatory functionality is very small, all others are optional. So a CANopen® node can be build with exactly the required set of communication functions. Although a minimal bootloader fits into 2k of code, this doesn’t really implement a true CANopen® node as there is no process data. On an 8-bit microcontroller, take the following generalized rule-of-thumb: Generic implementations require some 12k-20k of code space and about 500 to 1000 bytes of data memory. An implementation highly optimized towards a specific microcontroller can use 25% less code and data memory. UPDATE (October-2002): With www.MicroCANopen.com code sizes stay in the 4k-5k area with about 200 bytes of RAM requirement.