Keil Logo


The RL-CAN for the RTX Kernel simplifies the implementation of Controller Area Network (CAN) applications. The RL-CAN includes:

  • A common generic software layer.
  • A hardware dependent software layer that implements the physical interface with the CAN peripheral.

The RL-CAN runs interrupt service routines using RTX Kernel functions for Mailbox Management and Memory Allocation. The RL-CAN uses one Memory Pool for all CAN messages. Each CAN controller has two mailbox arrays, one to receive and one to transmit message buffering. The buffer method is First In First Out (FIFO) based.

The interrupt-based RL-CAN provides the user with an available mechanism for message transmission and reception.

The RL-CAN common generic software layer functions are located in the RTX_CAN.c file. This layer allows users to apply the same interface across different targets and to easily switch from one target to another without changing the Main Program.

The RL-CAN hardware dependent software layer functions are located in the CAN_chip.c (example: for NXP LPC23xx chip file name is CAN_LPC23xx.c) file. The hardware dependent software layer enables the generic portion to function on many different targets, with each target having its own hardware dependent software layer implementation.

The RL-CAN function diagram below shows how the Main Program's functions traverse the generic layer to the hardware layer where the functions are then executed. Input from the hardware controller follows a reverse route back to the Main Program.

CAN Diagram

See the article in Wikipedia for more information about CAN.

  Arm logo
Important information

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.

Change Settings

Privacy Policy Update

Arm’s Privacy Policy has been updated. By continuing to use our site, you consent to Arm’s Privacy Policy. Please review our Privacy Policy to learn more about our collection, use and transfers
of your data.