Code Warrior 2.7 provides simple examples to check out different feature of mpc5554.There is also a cook book with it which tells what code is doing.The cook book has one of the project which uses Fixed Interval Timer(FIT).The code works fine except and shows no error at compilation except that during debugging ...the statement whch uses registers defined in mpc5554.h is not executed.For example a statement like this..
SIU.PCR[114].R= 0x0303; /* Initialize GPIO as output. */
or
SIU.GPDO[114].R = ~SIU.GPDI[114].R;
doesn't work(it halts/stuck at IVOR0TRAP: b IVOR0TRAP in ivor_branch_table.s)
please help out..in desperate need for it.
Hello,
Can you step through the assembly and see where it fails?
My guess is that it is failing on the store instruction - when you try to move the SIU settings from the core into the SIU register.
At this point in the code can you see the SIU registers in a memory window? If not then I would suspect that there is not a valid MMU entry for the peripherial space, including the SIU.
Regards,
Dayve
As i mentioned earlier i am using Code Warrioir 2.7 and MPC5554 as target device
the SIU is included as peripheral as "SIU" named union has been defined in mpc5554.h.
i have attached two files with this reply.I hope they will help u in understanding my problem.One is the screenshot of the debugger(at the time when it got stuck) and other is mpc5554.h.
my bad...i should have double checked my project settings...the example was not meant for mpc5554..
anyway my life is still not easy..the cookbook includes examples of how to run the example code on mpc5554..now it gives linker error like this...
undefined __IVPR_value...the comments in the code mentions that __IVPR_value is "interrupt vector prefixed value referenced from a link file"...i cant find this link file..
I have the same problema with Link Error
: undefined: '__IVPR_VALUE'Referenced from 'initIrqVectors' in main.o
Link Error : undefined: '__IVPR_VALUE'Referenced from 'initIrqVectors' in main.o
Link failed.
I use MPC5517G Code warrior 2.8. I am really annoyed and it seems to be an issue with the examples? Can someone please offer some support?
Hello Sorin,
Which particular example are you referring to? Have you modified the example?
I've tested FIT one and I'm able to build it without any link errors.
__IVPR_VALUE is the symbol defined in the linker command file (5500_flash.lcf, 5500_ram.lcf)
it's defined as the address of memory dedicated to the interrupt handlers:
__IVPR_VALUE = ADDR(interrupts_flash);
I'd suggest you check whether the appropriate .lcf file includes the symbol definition + main.c module should include:
extern uint32_t __IVPR_VALUE;
Stanish