This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Having problems with bank switching

Hello,

I'm using RTX51-Full and Keil MicroVision3 IDE for my Dallas 8051-architecture microcontroller. The compiler, assembler and linker that I use are C51, A51 and B51, correspondingly.

I decided to activate code bank switching in favor of having larger code space. I did everything as it is said in the manual provided by Keil for code bank switching. I allocated a 32KB of common area and four banks. I mapped this common area to the internal 64KB on-chip code flash. All interrupt routines are in this area. Bank areas are located on an external flash memory having a size of 256KB.

So far so good. The system seems to run correctly but when I fire a specific interrupt vector, CPU is resetted by watchdog timer. And moreover, its behaviour is sproadic.

I have a task dedicated to kick a watchdog timer integrated-circuit which is wired to my CPU. It monitors the health conditions of all other tasks in my program and if it observes any abnormality with them, then it relinquishes this watchdog circuitry to reset the CPU. And it seems, somehow, this task does it so or it stops operating without having any reason around.

The system worked fine until I employed code bank switching.

Any ideas about what might be going wrong?

Thanks...

0