Other Micrium OS Modules#

Once the Kernel is working properly, you can start porting the other Micrium OS modules to your hardware. If you have the Micrium OS File System, it is probably a good idea to start by porting this module, as other modules may have a dependency on it.

The other Micrium OS modules will require a BSP for each controller you plan on using. The porting procedure is similar for each kind of controller and consists of the steps described in the following sections.

Table - Hardware Controller Types in the Hardware Porting Guide page lists the different types of controllers that must be ported to Micrium OS, along with the modules that handle them, and a link to the documentation section that better describes the porting process.

Table - Hardware Controller Types#

Hardware Controller type

Micrium OS Module

Dedicated Section(s) to refer



SPI Hardware Porting Guide

Flash (NAND, NOR), SD Card

File System

File System Hardware Porting Guide

Ethernet, WiFi


Network Core Hardware Porting Guide


USB Host, USB Device

USB Device Hardware Porting Guide , USB Host Hardware Porting Guide


CAN, CANopen

CAN Bus Hardware Porting Guide

Selecting Drivers#

The first step is to select the appropriate driver for your controller from among the ones provided with Micrium OS. Refer to the appropriate section for more information:

Implementing BSP Functions#

You will need to implement a set of functions in the BSP for each controller. The typical purpose of these functions is configure everything that relies on other controllers, such as GPIO, interrupts, power, and clock supply.

The set of functions is specific for each module and controller type. Refer to the appropriate section for more information:

Creating Hardware Information Structure(s)#

Each controller must be provided with a hardware information structure. This structure typically contains information such as the controller's register set base address, controller speed, a pointer to the BSP functions, a pointer to the controller driver, and so on.

The format of the hardware information structure is specific for each controller type. Refer to the appropriate section for more information:

Registering the Controller to the Platform Manager#

Once all the above steps have been completed, you must register the controller to the Platform Manager . The Platform Manager is a database that contains information on all the hardware controllers that can be used by the various Micrium OS modules.

The registration should be done from the BSP_OS_Init() function using the available macros:

Refer to the appropriate section for more information: