Getting Started with the Gecko Bootloader#

The recommended environment for working with the Gecko Bootloader along with your protocol of choice is Simplicity Studio. For information about downloading Simplicity Studio and the Gecko SDK Suite (GSDK), see the Simplicity Studio v5 User's Guide. The application can be downloaded from the Simplicity Studio webpage.

Once you have installed and familiarized yourself with Simplicity Studio and the GSDK, you can get started working with bootloader applications.

  1. Create a project based on the Gecko Bootloader example of your choice.

    example projects listexample projects list

    The project opens with a tab describing the example.

    project description tabproject description tab

  2. Click the project (*.slcp) tab to move to the Project Configurator interface.

    project configurator interfaceproject configurator interface

  3. The Software Components tab shows the list of available components that can be installed in the project.

    project configurator components tabproject configurator components tab

  4. The Storage Slot Setup component allows you to configure storage slots to be used if a storage component is also installed. The default configuration matches the target part and bootloader type. This component supports a maximum of three storage slots.

    storage slot componentstorage slot component

  5. Right-click the project name in the Project Explorer view and select Properties.

    project properties menuproject properties menu

  6. In the C/C++ Build group, click Settings. On the Build Steps tab, in the Post Build Steps Command field enter ../postbuild.sh "${ProjDirPath}" "${StudioSdkPath}" "${CommanderAdapterPackPath}". Click Apply and Close.

    post-build configurationpost-build configuration

  7. Click the Build (hammer) icon.

On Series 1 devices, three bootloader images are generated into the build directory: a main bootloader, a main bootloader with CRC32 checksum, and a combined first stage and main bootloader with CRC32 checksum. The main bootloader image is called <project-name>.s37, the main bootloader with CRC32 checksum is called <projectname>-crc.s37, while the combined first stage image + main bootloader image with a CRC32 checksum is called <projectname>-combined.s37. The first time a device is programmed, whether during development or manufacturing, the combined image needs to be programmed. For subsequent programming, when a first stage bootloader is already present on the device, it is okay to download an image containing just the main bootloader. In this case, the main bootloader with CRC32 should be used.

The requirement is that any main bootloader image that is programmed via serial wire must contain the CRC32 in the image. Files downloaded via serial wire are "s37" files. Most often, the <projectname>-combined.s37 file is the one downloaded during production programming. However, it is possible to download only the main bootloader over serial wire, in which case <projectname>-crc.s37 should be used.

Any main bootloader that is upgraded with the OTA or host method should already contain CRC32 because bootloader-initiated upgrades use GBL files (not "s37" files) and Simplicity Commander adds the CRC32 when it constructs the GBL file. The input files to Simplicity Commander can (and should) use the non-CRC "s37" file.

On Series 2 devices, the combined image is not present, since the first stage bootloader does not exist. The image containing only a main bootloader is the image that must be used to create a GBL file for bootloader upgrade.