DSPRelated.com
Forums

Watchdog reset won't re-execute code

Started by sanj...@gmail.com December 4, 2007
I have a question about what should happen after a watchdog reset. I'm using CCS 3.1 and a F2812 eZdsp board.

After I flash the chip, The PC is at 3DC000, from this point, I hit run and my code begins executing. I purposely have a watchdog reset in there. When this watchdog times out the reset occurs but never gets back to my code. Once I hit halt, the PC is at 3FFC00. It stays there forever.

In CCStudio, if I hit Debug...Reset CPU, it will go to this same address (3FFC00). But if I hit Debug...Restart, it then goes to 3DC000, and is able to execute my code again.

My question is, how do I get the watchdog timeout to go back to the 3DC000 and restart my code automatically?

Some of my linker file is pasted below for reference.

Not sure if the .reset or vectors being DSECT have anything to do with it.

Thanks in advance for any advice!

MEMORY
{
PAGE 0:

...
FLASH_HG : origin = 0x3DC000, length = 0x008000
/* FLASH_G : origin = 0x3E0000, length = 0x004000 */
...
...
BEGIN : origin = 0x3F7FF6, length = 0x000002
ROM : origin = 0x3FF000, length = 0x000FC0
RESET : origin = 0x3FFFC0, length = 0x000002
VECTORS : origin = 0x3FFFC2, length = 0x00003E
...
...
}

SECTIONS
{
.text : > FLASH_HG, PAGE = 0
...
codestart : > BEGIN, PAGE = 0
...
.reset : > RESET, PAGE = 0, TYPE = DSECT
vectors : > VECTORS, PAGE = 0, TYPE = DSECT
...
...
}

Warm Regards,
Sanjaykumar T.