Part Number: TMS320F28379D
Dear TI experts,
I have the following problem with a function:
- If I place the function into the flash, it runs nicely without any problems
- If I place the function into the RAM and execute the code with the debugger, it runs as well without any problems
- If I place the function into the RAM and it is executed "standalone" without any debugger intervention, it crashes and causes a watchdog reset
I cannot identify any suspicious code that could cause this behaviour, I think it must have something to do, with the size of the function, or with the placement of the function in the RAM. If I reduce the code size of the function (even code that is not executed during the function call!), it will also run nicely from the RAM. What really surprises me is the fact, that I don't see the crash, when the code is executed with the debugger. I am aware, that the debugger disables the watchdog, but my application has an additional "user watchdog" that monitors the program flow of CPU2 (this is the CPU where the suspicious function is exectued). CPU1 checks the program flow of CPU2
In the map-file I see, that the function is placed in global shared RAM, in fact at address 0x1_8000 which is the start address of GS12_RAM. The size of the function is 0x305 (16 Bit words I suppose)
If the problem is related with the code size or the placement of the function, I would expect to get a warning, or an error from the linker or from the compiler.
Can I retrieve any additional information after the watchdog reset, apart from the information that the reset cause was a watchdog reset? The RESC-register provides the information, that the reset cause was a watchdog reset.