Bootloader

Bootloader Overview

A bootloader is a small piece of software that runs before the operating system starts. Its primary role is to initialize hardware and load the operating system or firmware into memory. Bootloaders are a critical component in embedded systems, microcontrollers, and general computing environments.

Supported bootloader interfaces

The following interfaces are supported:

  • User selection Interface

  • CAN Interface

  • USB Interface

  • UART Interface

  • Cloud Interface

Application Interface

The below table captures the functions that are to be called from the application layer.

API Functions

Function

Description

rs_bl_init

To open the bootloader.

rs_bl_set_config

To configure the bootloader.

rs_bl_msg_queue_init

To initialize the message queue for bootloader.

rs_bl_push_data_to_queue

To push the data to the queue.

rs_bl_pop_data_from_queue

To pop the data from the queue

rs_bl_check_for_update

To check for the update availability.

rs_bl_set_state

To set the bootloader instance to the specified state.

rs_bl_state_machine

To execute the application validation and binary download process

Error Code

  • Every API’s for the bootloader returns some success or failure values. Please refer below section,

Implementation Guide

This section explains how to implement the bootloader using the RAPIDSEA stack, the steps to be followed are

  • Configure the bootloader information.

  • Initialize the bootloader with the instance and config structure.

  • Then initialize the message queue

  • Push the data to the queue and pop the data from the queue.

Note:

The configurations are done by loading the provided bootloader config structure(rs_bl_config_t) from the application layer.

Bootloader Header Details

Documentation from the relevant header as follows:

Warning

doxygenfile: Cannot find file “rs_bootloader.h