With a support entitlement you can also get direct access to our team of highly-qualified Arm experts 24-hours a day
Open a support case
have a project that I built/debugged just fine when I connect to my hardware (Intel Cyclone V FPGA on a custom board). Now, when I put my executable, the same one with debugging symbols and all, into a QSPI flash memory and boot it, I would expect I could load my symbols and debug that. But this is not working.
My system boots and I connect to it with my JTAG cable. Then I stop the processor and
This is the same axf file I can debug with when not loading from QSPI and is the same file I used to build my ROM image. The file loads, and I see symbols I expect, but when I set a breakpoint in my code, it never gets triggered. I've tried numerous places and none work (both hardware and software breakpoints were tried). I know that code is being run as I tried setting a breakpoint on a print command that does print to my UART. So I see it "got there" but there is no break.
Any ideas? The code in the QSPI gets relocated to RAM in the same addresses where the AXF file was loaded. All looks right, there, also.
Hello - are you able to set a breakpoint directly in the disassembly, either from the disassembly view, or on the command line ("break 0x8000" (to set a breakpoint at address 0x8000). Does that get hit? I suspect there is a disconnect between the source and the disassembly. This is most likely due to secure and non-secure address spaces. When you inspect the disassembly you should see N: or S: prefixing the address, specifying non-secure and secure worlds.
If that is the problem, the solution is to load the symbols to both spaces:
add-symbol-file file.axf N:0x0
add-symbol-file file.axf S:0x0
Hope this helps...