0x000001B4
ROM Checksum
BIST Signature
Bootloader Functions
Section Start
Address
M-Boot ROM Map
Reserved
Test Signature
ROM Version
Vector Table
0x000001B0
0x00000000
0x00000238
0x00000258
0x0000A0C4
0x0000FFFC
0x00010000
M-Boot ROM Description
541
SPRUH22I – April 2012 – Revised November 2019
Copyright © 2012–2019, Texas Instruments Incorporated
ROM Code and Peripheral Booting
6.5
M-Boot ROM Description
This section explains the bootloader in the master subsystem ROM.
6.5.1 M-Boot ROM Memory Map
On these devices, ROM is mapped beginning at the 0x00000000 address. So whenever the Cortex M3
CPU is reset, it will fetch the reset vector from the M-Boot ROM Vector table and the CPU starts executing
code in M-Boot ROM.
is the memory map of M-Boot ROM.
Figure 6-2. M-Boot ROM Memory Map
Note:
On this device, M-Boot ROM is dual-mapped at the beginning of 0x00000000 and 0x00010000.
6.5.2 M-Boot ROM Vector Table
The Cortex-M3 CPU vector table on M-Boot ROM resides at addresses from 0x00000000 to 0x000001B0.
On reset, Cortex-M3 NVIC fetches the stack pointer from the first location in this table and the reset vector
is fetched from address 0x00000004 in the table. As long as boot ROM is executing, the NVIC base
address is set to its default value (0x00000000) and boot ROM does not move this base address. It is up
to the user's application to move the NVIC base address as per the application's needs. So any exception
or interrupt occurring during boot is handled by the handlers registered in this boot ROM vector table.
On this device all NMIs are enabled by default, so it is necessary for M-Boot ROM to handle all the NMIs
that might occur during boot process. Refer to
for more details on how M-Boot ROM
handles different interrupts and exceptions that occur during boot.
Table 6-2. M-Boot ROM Vector Table
Vector Name (Number)
Vector Address or Location in Boot
ROM
Contents (Handler address)
Stack Pointer at reset (0)
0x00000000
0x20004900
Reset (1)
0x00000004
ResetISR
Non-Maskable Interrupt(2)
0x00000008
mbrom_nmi_interrupt_handler
Hard Fault (3)
0x0000000C
mbrom_hard_fault_isr_handler
Memory Management (4)
0x00000010
IntDefaultHandler