2.2.5 Taking an ITRAP Interrupt
If an illegal opcode is fetched, the 28x will take an ITRAP (illegal trap) interrupt. During the boot process, the
interrupt vector used by the ITRAP is within the CPU vector table of the boot ROM. The ITRAP vector points to
an interrupt service routine (ISR) within the boot ROM named ITRAPIsr(). This interrupt service routine attempts
to enable the watchdog and then loops forever until the processor is reset. This ISR will be used for any ITRAP
until the user's application initializes and enables the peripheral interrupt expansion (PIE) block. Once the PIE is
enabled, the ITRAP vector located within the PIE vector table will be used.
2.2.6 Internal Pullup Resisters
Each GPIO pin has an internal pullup resistor that can be enabled or disabled in software. The pins that are
read by the boot mode selection code to determine the boot mode selection have pull-ups enabled after reset
by default. In noisy conditions it is still recommended that you configure each of the boot mode selection pins
externally.
The peripheral bootloaders all enable the pullup resistors for the pins that are used for control and data transfer.
The bootloader leaves the resistors enabled for these pins when it exits. For example, the SCI-A bootloader
enables the pullup resistors on the SCITXA and SCIRXA pins. It is your responsibility to disable them, if desired,
after the bootloader exits.
2.2.7 PIE Configuration
The boot modes do not enable the PIE. It is left in its default state, which is disabled.
The boot ROM does, however, use the first six locations within the PIE vector table for emulation boot mode
information and Flash API variables. These locations are not used by the PIE itself and not used by typical
applications.
Note
If you are porting code from another 28x processor, check to see if the code initializes the first six
locations in the PIE vector table to some default value. If it does, then consider modifying the code to
not write to these locations so the EMU boot mode will not be over written during debug. Refer to the
2806x C/C++ Header Files and Peripheral Examples.
2.2.8 Reserved Memory
The M0 memory block address range 0x0002-0x004E is reserved for the stack and .ebss code sections during
the boot-load process. If code is bootloaded into this region there is no error checking to prevent it from
corrupting the boot ROM stack. Address 0x0000-0x0001 is the boot to M0 entry point. This should be loaded
with a branch instruction to the start of the main application when using "boot to SARAM" mode.
Boot ROM Stack
Boot to M0 entry point
0x0000
0x0002
0x004E
Boot ROM loaders on older C28x devices had the stack in M1 memory.
Figure 2-5. Boot ROM Stack
Note
If code or data is bootloaded into the address range address range 0x0002-0x004E there is no error
checking to prevent it from corrupting the boot ROM stack.
Boot ROM
204
TMS320x2806x Microcontrollers
SPRUH18I – JANUARY 2011 – REVISED JUNE 2022
Copyright © 2022 Texas Instruments Incorporated
Содержание TMS320 2806 Series
Страница 2: ......