I am having difficulty bringing up the boot loader for the TM4C123G Eval Board. I have both execution issues and debugger issues.
I have version 2.1.2.111 of TivaWare. I am using IAR 7.50 EWARM tool chain with the TI Stellaris debugger. The TI Stellaris Setup Interface is set to JTAG. The other option is SWD. Speed is 500kHz.
Problem 1: I build the \Bootloader. It downloads. The program runs, when I break (red hand), the PC is at 0x20000094, the orr instruction of the initialization of the FPU, after the boot loader has been copied to RAM.
ResetISR
//
// Enable the floating-point unit. This must be done here in case any
// later C functions use floating point. Note that some toolchains will
// use the FPU registers for general workspace even if no explicit floating
// point data types are in use.
//
movw r0, #0xED88
movt r0, #0xE000
ldr r1, [r0]
orr r1, r1, #0x00F00000
str r1, [r0]
So I appear to be stuck on the initialization of the FPU the second time. The first time the FPU is initialized was as the boot loader was running in ROM.
What have I done wrong?
------
Problem 2: Setting break points.
With the FPU issue (and any other issue I run into), I want to set break points at specific addresses in ROM, such as 0x0094. I can't use the boot loader symbols as those are mapped to RAM as part of the boot loader design.
The initial address set out of the reset vector is 0x0089. I try to set the 'Run to' address in the Debugger/Setup tab to 0x89, but I get the error 'ARM break points must be set to even addresses'. This is odd, but I am able to work around it.
I see that the reset code really starts at 0x88, so I set the 'Run to' address to 0x88. I get no errors, but debugger doesn't break. It continues to run to 0x20000094.
Am I able to set breakpoints for ROM addresses? What else am I doing wrong?
Below is the log from downloading.
The flash loader specified in the Debugger\Download tab is '$TOOLKIT_DIR$\config\flashloader\TexasInstruments\FlashTC4_H6_o.board'
The device description file in Debugger\Setup tab is '$TOOLKIT_DIR$\CONFIG\debugger\TexasInstruments\TM4C123GH6PM.ddf'.
Mon May 16, 2016 10:02:32: Loaded macro file: C:\Program Files (x86)\IAR Systems\Embedded Workbench 7.3\arm\config\debugger\TexasInstruments\TM4C123.dmac
Mon May 16, 2016 10:02:32: Connecting to TI Stellaris (Probe no: 0E214504)
Mon May 16, 2016 10:02:32: JTAG Speed is set to: 500 kHz
Mon May 16, 2016 10:02:32: JTAG IDCODE = 0x0BA00477
Mon May 16, 2016 10:02:32: AHB-AP ID = 0x00000000
Mon May 16, 2016 10:02:32: AHB-AP ROM = 0x00000000
Mon May 16, 2016 10:02:32: ROM Component ID = 0x00000000
Mon May 16, 2016 10:02:32: Device ID = 0x00000000 (Unknown)
Mon May 16, 2016 10:02:32: Software reset was performed
Mon May 16, 2016 10:02:32: Initial reset was performed
Mon May 16, 2016 10:02:32: 512 bytes downloaded and verified (6.41 Kbytes/sec)
Mon May 16, 2016 10:02:32: Loaded debugee: C:\Program Files (x86)\IAR Systems\Embedded Workbench 7.3\arm\config\flashloader\TexasInstruments\FlashLM3SxxxRAM32K.out
Mon May 16, 2016 10:02:32: Target reset
Mon May 16, 2016 10:02:32: Downloaded C:\Users\smithkm\Perforce\ksmith_SHLLL0924_ProjectSwiftMainline_1073\Firmware\BootLoader\Debug\Exe\Bootloader.out to flash memory.
Mon May 16, 2016 10:02:32: Software reset was performed
Mon May 16, 2016 10:02:32: 1552 bytes downloaded into FLASH and verified (2.56 Kbytes/sec)
Mon May 16, 2016 10:02:32: Loaded debugee: C:\Users\smithkm\Perforce\ksmith_SHLLL0924_ProjectSwiftMainline_1073\Firmware\BootLoader\Debug\Exe\Bootloader.out
Mon May 16, 2016 10:02:32: Software reset was performed
Mon May 16, 2016 10:02:32: Target reset