Strange ICTRL related behaviour on Axiom CME555@40MHz
"mworksjjf" <[email protected]>
| Newsgroups | gmane.comp.hardware.motorola.microcontrollers |
|---|---|
| Message-ID | <[email protected]> |
Hi all,
I'm having problems with an Axiom CME555 board, running at 40MHz
(MF=9), with ICTRL set to 0x7 (for no serialization and no show
cycles).
When I debug the code in CodeWarrior (running from external RAM) I
occasionally see an "Instruction Storage Exception". Other times
when I stop the debugger the program counter is pointing at locations
in internal flash.
I've found that:
Running at 40MHz with ICTRL = 0x0 (Axiom) => no problem
Running at 20MHz with ICTRL = 0x7 (Axiom) => no problem
Running at 40MHz with ICTRL = 0x7 (Axiom) => failure
Running at 40MHz with ICTRL = 0x7 (Phytec) => no problem
Originally I was working with some complex code that was hooked up to
the external interrupt (PIT). However, I've now reproduced the
failure using just the standard CodeWarrior Axiom 555 example (main.c
shown below).
In the default configuration for that example ICTRL is set to 0x0 and
everything work ok; after continuing on from the system call I stop
the debugger and it's in the while loop. If however, I set ICTRL to
0x7 then after continuing on from the system call the program counter
is off somewhere unexpected in memory.
Any ideas / suggestions?
Thanks,
Jon.
------------------------------------
Example Project:
void main()
{
int i=0;
printf("Welcome to CodeWarrior!\r\n");
system_call(); // generate a system call exception to
demonstrate the ISR
while (1) { i++; } // loop forever
}
-----------------------------------------------------------
To learn more about Freescale Microcontrollers, please visit
http://www.freescale.com/mcu
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/MPC500/
<*> To unsubscribe from this group, send an email to:
[email protected]
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/