µC/OS RTOS and Stacks


A protocol framework that enables easy and clean implementation of CAN communication paths. Optimized for speed, flexibility and size,
and built with high portability in mind.

Return to the µC/OS Overview


Key Features

The μC/OS CAN module reduces development efforts to embed CAN. Developers need only an understanding of signals, messages and bus configurations. Different abstraction layers can be used independently.

The μC/OS CAN module can communicate via one or more CAN buses simultaneously. The bus management layer organizes the CAN buses and distributes messages to different device drivers. The device driver layer buffers the CAN messages to be sent and received. All hardware dependencies are capsulated in this layer. An embedded target can also have multiple, different CAN controllers.

A validation suite provides all documentation necessary to support the use of the μC/OS CAN module in safety-critical systems.

The features of the µC/OS CAN module include:

  • Hardware independent
  • Signal Scalability – Between 1 bit to 8 bytes
  • Sufficiently robust to meet rigorous safety-critical system requirements

Integration with your Application


Application Signal Layer

This layer gives access to logical signals, located in one or more CAN messages. Changes in signals can be checked, and predefined actions executed.

Message Layer

The message layer organizes all information necessary for sending and receiving CAN messages. Identifier, data length code (DLC) and data (and linked signals) are bundled and dedicated to one or more buses.



The CANopen stack is a scalable solution for limited-resource embedded systems. The stack is delivered in ANSI-C source code and can be compiled with any ANSI-C compliant compiler. The stack is available as CANopen Slave along with a windows application for the automatic source code generation of the object directory and EDS files.

CANopen Slave

CANopen Slave is full featured product designed for CANopen protocol handling. It supports the following features:

  • SDO Server support
  • SDO Expedited Transfers
  • PDO Producer and Consumer with static mapping and communication parameters
  • NMT Slave
  • NMT Heartbeat Producer
  • EMCY Producer
  • LSS Slave
  • Object Stings with up to 4 characters
  • SDO Normal and block transfers
  • Dynamic PDO mapping- and communications parameters
  • EMCY History
  • Dynamic Object Directory

CANopen Config

CANopen Config is a windows application for configuration of the object directory and the EDS-file of all CANopen stack variants. The tool allows the template-based generation of ANSI-C code and EDS files.


Memory Footprint

The µC/OS CAN module requires the following amount of RAM on the embedded product.

Maximum ROM Footprint (Unscaled) 7.5 kB (on MPC565) to 11.7 kB (on MPC5200B)
RAM usage Configuration dependent:

Per Signal • 29 bytes (unscaled without padding)
• 11 bytes (scaled without padding)
Per Message • 10 bytes (unscaled without padding)
• 3 bytes (scaled without padding)

Object Directory

The following is a list of objects available for use with Micrium's CANopen Slave.

Component Sensor Slave Slave Master
SDO Server Up to 127 Up to 127 Up to 127
SDO Client No No Up to 127
SDO Exp. Transfer Yes Yes Yes
SDO Normal Transfer No Yes Yes
SDO Block Transfer No Yes Yes
PDO Producer Up to 512 Up to 512 Up to 512
PDO Consumer Up to 512 Up to 512 Up to 512
PDO Mapping Static Dynamic Dynamic
PDO Com. Parameter Static Dynamic Dynamic
PDO Remote Transfer No No No
NMT Slave Yes Yes Yes
NMT Master No No Yes
NMT Heartbeat Producer Yes Yes Yes
NMT Heartbeat Consumer No No Yes
NMT Node Guarding No No No
EMCY Producer Yes Yes Yes
EMCY Consumer No No Yes
EMCY History Size 1 Up to 250 Up to 250
LSS Slave Yes Yes Yes
LSS Master No No Yes
OD Size Unlimited Unlimited
OD Entries Static Static Dynamic
OD String Length Up to 4 Up to 4 Unlimited
OD Domains No Yes Yes

Hardware Support

The µC/OS CAN module is supported on a wide range of MCUs.

This table shows the current architectures of our silicon partners that we have CAN device controller support for.

If you don’t see the driver you are looking for please contact our sales department. We can give you the latest information on new driver development.

Manufacturer MCU
Analog Devices ADSP BF537
Fujitsu MB96F340
Freescale iMX6
Infineon XC167CI
Renesas RL78
STMicroelectronics STM32F10X
Texas Instruments RM48L950
Transceiver SJA1000
Zynq ZC7xxx


Licensing Packages That Meet Your Needs

Micrium embedded components are priced as individual modules or as bundled solutions. Check out our licensing page for more information.


Micrium's user documentation is available online on the Micrium documentation site.

Contact us today and start working with µC/OS