Application Notes to Use Boot ROM
666
SPRUHE8E – October 2012 – Revised November 2019
Copyright © 2012–2019, Texas Instruments Incorporated
ROM Code and Peripheral Booting
that the initialized sections are where you expect them to be.
The linker -w option is also very useful. This option will tell you if the linker has assigned a section to a
memory region on its own. For example, if you have a section in your code called ramfuncs.
3.
Run the hex conversion utility.
Choose the appropriate options for the desired boot mode and run the hex conversion utility to convert
the COFF file produced by the linker to a boot table.
See the
TMS320C28x Assembly Language Tools User's Guide
(
) and the
TMS320C28x
Optimizing C/C++ Compiler User's Guide
(
) for more information on the compiling and linking
process.
summarizes the hex conversion utility options available for the bootloader. See the
TMS320C28x Assembly Language Tools User's Guide
(SPRU513) for a detailed description of the
hex2000 operations used to generate a boot table. Updates will be made to support the I2C boot. See the
Codegen release notes for the latest information.
Table 6-29. Bootloader Options
Option
Description
-boot
Convert all sections into bootable form (use instead of a SECTIONS directive)
-sci8
Specify the source of the bootloader table as the SCI-A port, 8-bit mode
-spi8
Specify the source of the bootloader table as the SPI-A port, 8-bit mode
-gpio8
Specify the source of the bootloader table as the GPIO port, 8-bit mode
-gpio16
Specify the source of the bootloader table as the GPIO port, 16-bit mode
-bootorg value
Specify the source address of the bootloader table
-lospcp value
Specify the initial value for the LOSPCP register. This value is used only for the spi8 boot table format
and ignored for all other formats. If the value is greater than 0x7F, the value is truncated to 0x7F.
-spibrr value
Specify the initial value for the SPIBRR register. This value is used only for the spi8 boot table format and
ignored for all other formats. If the value is greater than 0x7F, the value is truncated to 0x7F.
-e value
Specify the entry point at which to begin execution after boot loading. The value can be an address or a
global symbol. This value is optional. The entry point can be defined at compile time using the linker -e
option to assign the entry point to a global symbol. The entry point for a C program is normally _c_int00
unless defined otherwise by the -e linker option.
-i2c8
Specify the source of the bootloader table as the I2C-A port, 8-bit
-i2cpsc value
Specify the value for the I2CPSC register. This value will be loaded and take effect after all I2C options
are loaded, prior to reading data from the EEPROM. This value will be truncated to the least significant
eight bits and should be set to maintain an I2C module clock of 7-12 MHz.
-i2cclkh value
Specify the value for the I2CCLKH register. This value will be loaded and take effect after all I2C options
are loaded, prior to reading data from the EEPROM.
-i2cclkl value
Specify the value for the I2CCLKL register. This value will be loaded and take effect after all I2C options
are loaded, prior to reading data from the EEPROM.