Important note for MOD5441X and probabbly nano54415 users...
Posted: Fri Apr 19, 2013 10:05 am
We have had some serious interrupt latency problems with the MOD54415
We have not seen the problem on the NANO and this is probably due to not having the flex bus turned on.
The short story adding ...
sim1.ccm.misccr|=0x0700;
To the hardwareinit function in nburn\mod5441x\system\bsp.c file
(or you can #include <sim.h> and add that line ANYWHERE it will get executed)
Seems to fix the issue...
The long story...
We have a lot of code in our system that looks like:
if ( pDHCPTick )
{
pDHCPTick();
}
This compiles to something like:
moveal pDHCPTick,%a0
testl %a0
beqw skip
jsr @a0
skip:
This processor has an aggressive pipeline and it seems that the system
attempts to load the @a0 in case the branch is not taken
This causes an access to address 0 that is not mapped, and the bus then freezes until the bus timeout interval has passed.
The one line above shortens the bus timeout interval to as short as possible.
We are also looking at other ways to resolve this and have an active discussion going with freescale about this.
We have not seen the problem on the NANO and this is probably due to not having the flex bus turned on.
The short story adding ...
sim1.ccm.misccr|=0x0700;
To the hardwareinit function in nburn\mod5441x\system\bsp.c file
(or you can #include <sim.h> and add that line ANYWHERE it will get executed)
Seems to fix the issue...
The long story...
We have a lot of code in our system that looks like:
if ( pDHCPTick )
{
pDHCPTick();
}
This compiles to something like:
moveal pDHCPTick,%a0
testl %a0
beqw skip
jsr @a0
skip:
This processor has an aggressive pipeline and it seems that the system
attempts to load the @a0 in case the branch is not taken
This causes an access to address 0 that is not mapped, and the bus then freezes until the bus timeout interval has passed.
The one line above shortens the bus timeout interval to as short as possible.
We are also looking at other ways to resolve this and have an active discussion going with freescale about this.