Skip to content

Latest commit

 

History

History

platform_i2cslave_bootloader

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Platform - I2C slave bootloader

Type badge Technology badge License badge SDK badge Required board Required board Build badge Flash badge RAM badge

Description

This example implement I2C slave mode bootloader. The bootloader supports firmware download, checking downloaded application and booting the downloaded software.

Gecko SDK version

  • GSDK v4.4.3

Hardware Required

NOTE: Slave device is tested on these boards:

Board ID Description
BRD2703A EFR32xG24 Explorer Kit - XG24-EK2703A
BRD2704A SparkFun Thing Plus Matter - MGM240P - BRD2704A
BRD2601B EFR32xG24 Dev Kit - xG24-DK2601B
BRD4314A BGM220 Bluetooth Module Explorer Kit - BGM220-EK4314A
BRD4108A BG22 Bluetooth SoC Explorer Kit - BG22-EK4108A

Connections Required

  • The I2C connection between master and slave device can be made by using jumper wires and the I2C bus must have pullup registers. I2C connection

Setup

To test this application, you can either create a project based on a example project or start with an "Empty C Project" project based on your hardware.

Create a project based on a example project

  1. From the Launcher Home, add the your hardware to My Products, click on it, and click on the EXAMPLE PROJECTS & DEMOS tab. Find the example project with filter "slave".

  2. Click Create button on the Platform - I2C slave bootloader example. Example project creation dialog pops up -> click Create and Finish and Project should be generated. create_project

  3. Build and flash this example to the board.

Start with an "Empty C Project" project

  1. Create a Empty C Project project for your device using Simplicity Studio 5.

  2. Copy all attached files in inc and src folders into the project root folder.

  3. Copy .slbp files in SimplicityStudio folder into the project root folder.

  4. Open the .slcp file. Select the SOFTWARE COMPONENTS tab and install the software components:

  • Install [Platform] > [Bootloader] > [Bootloader Core] component.
  • Install [Platform] > [Bootloader] > [Cyclic Redundancy Check] component.
  • Install [Platform] > [Bootloader] > [Image Parser] component.
  • Install [Platform] > [Bootloader] > [Utils] > [Debug] component.
  • Install [Platform] > [Bootloader] > [GPIO activation] component.
  1. In project build setting add 2 define options as image is shown bellow:
  • BOOTLOADER_SUPPORT_COMMUNICATION=1

  • BTL_PLUGIN_I2C_ACTIVATION=1

    build_option

How It Works

  1. Using i2ctester i2ctester

    i2ctester has some command line arguments. At least bus number and target’s I2C address and a command letter should be given. If the passed arguments are wrong, i2ctester shows it usage.

  2. Print bootloader version information boot_version

  3. Download application image (GBL format) download_gbl

  4. Verify application verify_application

  5. Boot application booting

How to Port to Another Part

Raspberry 3+ example master documentation
Bootloader documentation.

Special Notes

Prebuilt