> My concern is that the existing code doesn't do this.
You've found a bug in the code. Fix it.
The priorities don't really matter most of the time. They only apply when interrupts at the same level happen at near-exactly the same time, or when interrupts have been masked out for a while and multiple interrupts at the same level are all active. Then the controller has to use the priority bits to decide which one to present to the CPU.
If you do have multiple interrupts with the same priority at the same time then the interrupt controller will probably present a mangled interrupt vector. These sort of intermittent bugs are really hard to track down.
> the corresponding vector table entries all point to the same interrupt
> handler, so doest that make this OK?
I don't think so. The interrupt controller generates a vector, not the service address. it is likely the hardware will select "all vectors" and you could end up with an AND or an OR of the different vectors.
> In MCF52235RM Rev. 7, in section 15.3.8.1 it refers to Table 15-6,
> but that is an incorrect reference;
Please raise a support request with Freescale. You've found a serious error in that manual. I have Rev 6, and it has four PAGES of interrupt sources listed in that section. When they created Rev 7 they managed to kill this table.
The Rev 6 PDF has 660 pages. Rev 7 has 656, so it looks like they only left these four pages out.
If you look at the Reference Manual Addendum - it doesn't list that Rev 7 has this problem either. so they need to fix the Manual and fix the Addendum until they can fix the manual.
Click on "Support" and then "Create Service Request". You may need to exchange messages with them a few times until they can see the problem you're reporting.
Read the Rev 6 manual here:
http://www.scribd.com/doc/47705663/User-Manual#outer_page_228
Send me a Private Message with your email address and I'll email you Rev 6.
Tom