Other Parts Discussed in Thread: UNIFLASH, HALCOGEN, TMS570LS1224, RM46L852
Hi,
I am trying to set up a GCC-based toolchain to use with a Hercules TMS570LS1224 chip on a Launchpad board, and have been able to successfully compile a big-endian GCC cross-compiler and toolchain. I have also generated the necessary HAL from Halcogen and my toolchain can compile and generate an ELF file. I have also set up the Uniflash CLI tool to connect to the onboard XDS110 debug probe and flash the binary onto the TMS570 chip.
When I perform a "warm" run (i.e. the debugger loads the binary and then lets the CPU free-run) it appears all the firmware works perfectly. I have successfully tested GPIO, I2C and CAN demos this way and they all work. However, once I perform a cold reset (or press the RST/PORRST pins) the chip goes dead and doesn't do anything. I don't see the ERROR LED come on either, so I'm puzzled as to exactly what is going on. I also can't seem to get a GDB agent up over the XDS debugger, so I can't step into the start sequence or set breakpoints to get to the bottom of this.
My build system in general is up at
and the HAL specific to the TMS570 Launchpad is at board/hercules_tms570LS12x. The Makefile and project for a basic demo app is at linux_osx/tms570_hercules_basic_app.
I would greatly appreciate any help on this matter. If it helps, I have been able to perform cold resets using the standard TI CCS workflow, and I can even take the binary output of the CCS compiler, load it using Uniflash CLI utility and still retain cold reset capability. Thus, it seems to me that something is going on either in the GCC linker stage or the startup code Halcogen generates for GCC tools that is causing this issue.
Thanks!
- AG



