This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

F28M35H52C: C2000 core GPIO state after watchdog reset on ARM core

Part Number: F28M35H52C

Hello,

I have custom device based on F28M35H52C processor. And there is problem with C2000 GPIO state on reset.

1. ARM core maps some GPIO pins to C2000 core on start. Without any additional configuration.

2. Watchdog on ARM core is enabled and C2000 core resets watchdog counter via IPC flags and some code on ARM core. So if C2000 core freezes, it doesn't set corresponding IPC flag in time, ARM core doesn't reset watchdog timer and controller resets. This is the way how I implemented watchdog for C2000 core.

3. C2000 core controls some peripheral via GPIO outputs.

Problem:

Both cores work, C2000 sets GPIO outputs, everythig works. Then I press Pause in Code Composer debugger on C2000 core. C2000 core freezes, ARM core watchdog resets controller after some time (as configured in watchdog registers). C2000 GPIO pins goes to low state. But after some time (100-200ms), they go back to the state, which was before reset. And stay at that state until I press Play in debugger.
There is no external pull-up on this pins.


Why does it work this way and how to avoid it?

In short: what is the state of the C2000 GPIO, if C2000 core paused in debugger, and  ARM core reseted by watchdog and then GPIO pins mapped to paused C2000 core after reset? Can this situation appear if C2000 booloader freezes somehow?

Edit: if on ARM core I check that C2000 core started my firmware before mapping pins to it, problem doesn't appear.