SPRADN0 December 2024 F29H850TU , F29H859TU-Q1
ROM bootloader, also referred to as primary bootloader or simply loader, is a small piece of code that resides in the boot-ROM memory of the target device that allows the loading and execution of code from an external host. In most cases, a communication peripheral such as Universal Asynchronous Receiver/Transmitter (UART) or Controller Area Network (CAN) is used to load code into the device rather than JTAG, which requires an expensive specialized tool and is not advisable to use in a commercial setting.
Boot Pins are used to configure different boot modes using various peripherals that determine which ROM loader is invoked. In this application note, the peripheral used is UART. The boot modes that are associated with the boot pins refer to the first instance of the peripheral. For UART, the boot mode is associated with UARTA.
C2000 devices partially solve the problem of firmware updates by including some basic loading utilities in ROM. Depending on the device and the communications peripherals present, code can be loaded into on-chip RAM using UART, Serial Peripheral Interface (SPI), Inter-Integrated Circuit (I2C), and CAN. A subset of these loaders is present in every C2000 device, but the loaders can only load code into RAM. How does one bridge the gap and program the application code into non-volatile memory?
At a high-level, application programming to non-volatile memory like flash requires two steps:
Figure 2-1 Flash Kernel FlowAlthough the overarching concept are synonymous, note that there are a few major differences between the flash kernels implemented for C28-based devices and the kernel described in this document.