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.
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