Other Parts Discussed in Thread: SEGGER
I am working with the BeagleBone Black, based on the am3358. I am using GNU Arm Embedded Toolchain Version 7-2018-q2-update, OpenOCD 10.0.8, and a Segger JLINK adapter.
I"ve built both the bootloader and gpio examples for the beaglebone black from the starterware 2.00 package. The files have been loaded to the SDCARD, per the user guide and the LED is flashing. The software side is good.
To familiarize myself gdb/openocd along with TI's code approach to initializing the chip, I want to follow the known, working code. After starting up openocd and gdb, I issue a "monitor reset halt" and then a "break *0x402F0400". As I understand it, the Public ROM reads the SYSBOOT pins and then searches the SDCARD for MLO and then the app file (BBB default boot config). The Public ROM copies the MLO to address 0x402F0400 and starts execution from that address.
As it stands now, gdb is not breaking at that address. After issuing the "continue" command, the LED starts blinking right away. CTRL-C drops me at a program counter somewhere in the 0x8000000 area where the gpio app itself is located. I am unable to stop the CPU at the beginning of user code, after the Public ROM has done its job.
Any ideas as to the steps to start the debugging session after the Public ROM has done first stage initialization and copied the user code to the internal SRAM??
Also. I did "load <...>/boot.out" from gdb. I am able to step through the code like a regular gdb session. However, the bootloader reaches a point where it says it can't find the SDCARD over the UART console. I suspect that even though the chip can execute the code from the load command, the chip is not in a state consistent with how the Public ROM would have initialized it. Another reason I want to stop right after the Public ROM has finished its job is to review the state of the chip at this exact point. I want to confirm that I am reading the Technical Reference Manual correctly.