MOD5234 eTPU interrupt
MOD5234 eTPU interrupt
Has anyone ever succesfully used interrupts with the eTPU on a MOD5234?
-
- Posts: 85
- Joined: Mon Apr 28, 2008 7:32 am
Re: MOD5234 eTPU interrupt
Hi Roland,
I see that nobody has replied either way. I have not used eTPU interrupts on 5234, but I'll give it a try next week and get back to you.
Joe
I see that nobody has replied either way. I have not used eTPU interrupts on 5234, but I'll give it a try next week and get back to you.
Joe
Re: MOD5234 eTPU interrupt
I found a problem with the interrupts. It is not allowed to have more than one interrupt using the same level & priority settings.
I had assumed that if I used all the default levels and priorities for the various interrupts that there would be no conflict, but this is not the case.
The levels and priorities that are used by the system software can be found by searching the system files for all the "SetInc" calls.
I have attached a file originally sent to me by NetBurner, which contains the information obtainied by searching for all "SetInc" calls in the system files. I have added the asterisks to indicate where there is possible conflict in the MOD5234 interrupts.
I am going to test my modified code, where I have carefully selected levels and priorities for all the interrupt sources I use to ensure there is no two using the same settings. This means not using the default levels/priorities for eTPU interrupts.
I will let you know if this solves my problem.
I had assumed that if I used all the default levels and priorities for the various interrupts that there would be no conflict, but this is not the case.
The levels and priorities that are used by the system software can be found by searching the system files for all the "SetInc" calls.
I have attached a file originally sent to me by NetBurner, which contains the information obtainied by searching for all "SetInc" calls in the system files. I have added the asterisks to indicate where there is possible conflict in the MOD5234 interrupts.
I am going to test my modified code, where I have carefully selected levels and priorities for all the interrupt sources I use to ensure there is no two using the same settings. This means not using the default levels/priorities for eTPU interrupts.
I will let you know if this solves my problem.
- Attachments
-
mod5234-82_intsrcs.txt
- (7.25 KiB) Downloaded 385 times
Re: MOD5234 eTPU interrupt
There is definitely a major problem if you have multiple interrupts with the same priority and level. Every enabled interrupt must be unique. This is detailed in all of the Freescale reference manuals. I have seen a a few problems occur when there are multiple interrupt sources with the same level and priority. The most common issue I have seen is simply a processor lock up, sometimes a trap reset. NetBurner provides debug functions to check all of the configured interrupt vectors and reports errors if they are not unique:
C:\nburn\MOD5234\system\SysLogIntCheck.cpp
C:\nburn\MOD5234\system\StdioIntCheck.cpp
C:\nburn\MOD5234\system\SysLogIntCheck.cpp
C:\nburn\MOD5234\system\StdioIntCheck.cpp
Re: MOD5234 eTPU interrupt
A useful diagnostic, not mentioned in any of the manuals! It does not seem to handle the special case of the edge port sources which have a fixed midpoint priority, but whose ICRN registers when read return 0 in the priority field. The VectorNames arrays include labels for CAN1 interrupts which are not supported by the MCF5234, but they do not include labels for the eTPU interrupt sources.lgitlitz wrote:There is definitely a major problem if you have multiple interrupts with the same priority and level. Every enabled interrupt must be unique. This is detailed in all of the Freescale reference manuals. I have seen a a few problems occur when there are multiple interrupt sources with the same level and priority. The most common issue I have seen is simply a processor lock up, sometimes a trap reset. NetBurner provides debug functions to check all of the configured interrupt vectors and reports errors if they are not unique:
C:\nburn\MOD5234\system\SysLogIntCheck.cpp
C:\nburn\MOD5234\system\StdioIntCheck.cpp
Interrupts of the same level and priority are allowed if they are sourced from different interrupt controllers. I overlooked this when I flagged conflicts in the default level/priority settings, I have attached mod5234_intsrcs.txt file to include the INTC value, and this removes the conflicts between default level/priority values in the system files. I have not done the same update for 5282 information.
So it seems there never was a level/priority conflict, so I am back to my original problem of why I can't get the eTPU to interrupt!
- Attachments
-
mod5234_intsrcs.txt
- (4.93 KiB) Downloaded 364 times