2.2.11 Bootloader Data Stream Structure
The following two tables and associated examples show the structure of the data stream incoming to the
bootloader. The basic structure is the same for all the bootloaders and is based on the C54x source data stream
generated by the C54x hex utility. The C28x hex utility (hex2000.exe) has been updated to support this structure.
The hex2000.exe utility is included with the C2000 code generation tools. All values in the data stream structure
are in hex.
The first 16-bit word in the data stream is known as the key value. The key value indicates to the bootloader the
width of the incoming stream: 8 or 16 bits. Note that not all bootloaders will accept both 8 and 16-bit streams.
Please refer to the detailed information on each loader for the valid data stream width. For an 8-bit data stream,
the key value is 0x08AA and for a 16-bit stream it is 0x10AA. If a bootloader receives an invalid key value, then
the load is aborted.
The next eight words are used to initialize register values or otherwise enhance the bootloader by passing
values to it. If a bootloader does not use these values then they are reserved for future use and the bootloader
simply reads the value and then discards it. Currently only the SPI and I2C and parallel bootloaders use these
words to initialize registers.
The tenth and eleventh words comprise the 22-bit entry point address. This address is used to initialize the PC
after the boot load is complete. This address is most likely the entry point of the program downloaded by the
bootloader.
The twelfth word in the data stream is the size of the first data block to be transferred. The size of the block is
defined for both 8-bit and 16-bit data stream formats as the number of 16-bit words in the block. For example, to
transfer a block of 20 8-bit data values from an 8-bit data stream, the block size would be 0x000A to indicate 10
16-bit words.
The next two words indicate to the loader the destination address of the block of data. Following the size and
address will be the 16-bit words that makeup that block of data.
This pattern of block size/destination address repeats for each block of data to be transferred. Once all the
blocks have been transferred, a block size of 0x0000 signals to the loader that the transfer is complete. At this
point the loader will return the entry point address to the calling routine which in turn will cleanup and exit.
Execution will then continue at the entry point address as determined by the input data stream contents.
Boot ROM
212
TMS320x2806x Microcontrollers
SPRUH18I – JANUARY 2011 – REVISED JUNE 2022
Copyright © 2022 Texas Instruments Incorporated
Summary of Contents for TMS320 2806 Series
Page 2: ......