I am creating a boot loader for a TM4C123GXL LaunchPad Eval board. I two problems.
1 - When I go to debug the program, I can't seem to break reliably within the bl_startup_ewarm.S. Am I supposed to be able to use TI Stellaris bootloader or must I use JTAG?
I understand the boot loader initially starts in ROM, and changes the program counter to SRAM after the bootloader has been copied from ROM to RAM.
Using debug symbols to set break points in ROM won't work, because the debug symbols are set for the SRAM address space.
2 - I look in the map and I want to set a raw memory address to break on, but function labels in the *.S file are not on 4 byte boundaries, they are on odd byte boundaries. How do I correct this?
Entry Address Size Type Object
----- ------- ---- ---- ------
.bss$$Base 0x2000061c -- Gb - Linker created -
.bss$$Limit 0x2000077c -- Gb - Linker created -
AckPacket 0x20000451 0xc Code Gb bl_packet.o [1]
BLInternalFlashStartAddrCheck
0x20000539 0x28 Code Gb bl_flash.o [1]
CallApplication 0x200000ab Code Gb bl_startup_ewarm.o [1]
CheckForceUpdate 0x200005c1 0x34 Code Gb bl_check.o [1]
CheckSum 0x20000435 0x1c Code Gb bl_packet.o [1]
ConfigureDevice 0x200000e5 0xbe Code Gb bl_main.o [1]
Delay 0x200000d5 Code Gb bl_startup_ewarm.o [1]
NakPacket 0x2000045d 0xc Code Gb bl_packet.o [1]
NmiSR 0x200000cf Code Gb bl_startup_ewarm.o [1]
ProcessorInit 0x20000051 Code Gb bl_startup_ewarm.o [1]
ReceivePacket 0x20000471 0x76 Code Gb bl_packet.o [1]
ResetISR 0x20000089 Code Gb bl_startup_ewarm.o [1]
SendPacket 0x200004e7 0x52 Code Gb bl_packet.o [1]
StartApplication 0x200000ab Code Gb bl_startup_ewarm.o [1]
UARTFlush 0x2000058b 0x12 Code Gb bl_uart.o [1]
UARTReceive 0x2000059d 0x1c Code Gb bl_uart.o [1]
UARTSend 0x20000565 0x26 Code Gb bl_uart.o [1]
UpdateHandler 0x200000c1 Code Gb bl_startup_ewarm.o [1]
Updater 0x200001a3 0x222 Code Gb bl_main.o [1]
I am using the TI Stellaris debugger. I am running IAR EWARM 7.50 and using 2.1.2111 version of TivaWare C Series.
Keith Smith