Introduction

## Getting Started

For each supported target there is a demo application user's guide available in the package. This guide includes information about the tool chain required to build the bootloader and a guide to getting started using the supported board platform.

## Features

The bootloader code base contains source code and tool chain projects for building flash-resident bootloaders and flashloaders for the supported platforms. A flash-resident bootloader stays resident in flash along with the user application. A flahloader is loaded to RAM by a small program residing in flash. The bootloader can be used to download and program an initial application image into a blank area on the flash, and to later to update the application.

The bootloader supports the following communication interfaces for downloading an application:

- USB HID
- USB MSC
- UART
- I2C
- SPI
- CAN

The exact interfaces available depend on the target platform.

Typically, USB and UART connections are made directly to a PC, whereas I2C, SPI and CAN require additional hardware. The bootloader, running on the target platform, acts as a communication slave. The bootloader can automatically detect which peripheral is being used to download the application and, in the case of UART and CAN, automatically detect the baud rate.

See the `apps/bus_pal` project for an example using pass-through hardware to connect to a target bootloader over I2C, SPI, and CAN. See the `validation/embedded_host` project for an example of a full embedded host application.

The application image is downloaded to the target through a series of command and data packets sent from a host PC or embedded host platform. For more information on the packet protocol, see the code documentation in the doc directory.

## Host tools

The code base also contains source code and build projects for the following PC-based host tools:

- Kinetis blhost - command line debug tool to send individual commands to the bootloader
- KinetisFlashTool - GUI application to download and flash an application image
- Kinetis elftosb - command line tool to encrpyt an application image for download

The blhost and elftosb applications run on Windows XP and higher, Linux, and Mac OS X. The KinetisFlashTool application runs on Windows XP and higher.