This subsection explains how to use the hex conversion utility with the boot loader for C28x devices with ARM cores. The boot loader accepts the formats listed in Table 12-3.
Format | Option |
---|---|
Parallel boot GP I/O 8 bit | --gpio8 |
Parallel boot GP I/O 16 bit | --gpio16 |
8-bit SPI boot | --spi8 |
The ARM on C28x devices with ARM cores can boot through the SPI-A 8-bit, GP I/O 8-bit, or GP I/I 16-bit interface. The format of the boot table is shown in Table 12-4.
Description | Bytes | Content |
---|---|---|
Boot table header | 1-2 | Key value (0x10AA or 0x08AA) |
3-18 | Register initialization value or reserved for future use | |
19-22 | Entry point | |
Block header | 23-24 | Block size in number of bytes (nl) |
25-28 | Destination address of the block | |
Block data | 29-30 | Raw data for the block (nl bytes) |
Block header | 31 + nl | Block size in number of bytes |
. | Destination address of the block | |
Block data | . | Raw data for the block |
Additional block headers and data, as required | ... | Content as appropriate |
Block header with size 0 | 0x0000; indicates the end of the boot table. |
The ARM on C28x devices with ARM cores can boot through either the serial 8-bit or parallel interface with either 8- or 16-bit data. The format is the same for any combination: the boot table consists of a field containing the destination address, a field containing the length, and a block containing the data. You can boot only one section. If you are booting from an 8-bit channel, 8-bit bytes are stored in the table with MSBs first; the hex conversion utility automatically builds the table in the correct format. Use the following options to specify the boot table source:
The command file in Example 3 allows you to boot the .text and .cinit sections of test.out from a 16-bit-wide EPROM at location 0x3FFC00. The map file test.map is also generated.