Hi, we are using Halcogen-generated code for the TMDX570LS31USB and a simple application that turns on a led. If we quickly press the RST button around 5-10 times, a data abort exception will be raised. Looking at the assembly we noticed the instruction that raised the exception is a str.
The problem is that if we try to reset the system by writing to the SYSECR register, we correctly jump to the reset handler but as soon as we hit that str the exception will be raised again. The weird thing is, it seems to always be the same str that causes the issue. Sometimes even pressing PORRST won't work, and we'll have to manually power cycle the board to get it to work again. Even weirder, re-flashing the board using CCS Uniflash won't make the exception go away.
We stepped through the data abort handler code generated by Halcogen (the file is called dabort.S) and we noticed our particular case isn't contemplated (it ends up branching to custom_dabort). The ESM and TCRAM status registers are all 0.
We tried this with several programs and it's always a str that causes the problem (the target address of the str varies from program to program). Notice, however, that without repeatedly pressing the RST button the programs work fine.
We checked the DFSR Register of the CPU and its value signaled a Memory Access synchronous parity error.
Any help on this will be appreciated.