/* * Most of the older ColdFire parts use the same simple interrupt * controller. This is currently used on the 5206, 5206e, 5249, 5307 * and 5407 parts. * * The builtin peripherals are masked through dedicated bits in the * Interrupt Mask register (IMR) - and this is not indexed (or in any way * related to) the actual interrupt number they use. So knowing the IRQ * number doesn't explicitly map to a certain internal device for * interrupt control purposes.
*/
/* * IMR bit position definitions. Not all ColdFire parts with this interrupt * controller actually support all of these interrupt sources. But the bit * numbers are the same in all cores.
*/ #define MCFINTC_EINT1 1 /* External int #1 */ #define MCFINTC_EINT2 2 /* External int #2 */ #define MCFINTC_EINT3 3 /* External int #3 */ #define MCFINTC_EINT4 4 /* External int #4 */ #define MCFINTC_EINT5 5 /* External int #5 */ #define MCFINTC_EINT6 6 /* External int #6 */ #define MCFINTC_EINT7 7 /* External int #7 */ #define MCFINTC_SWT 8 /* Software Watchdog */ #define MCFINTC_TIMER1 9 #define MCFINTC_TIMER2 10 #define MCFINTC_I2C 11 /* I2C / MBUS */ #define MCFINTC_UART0 12 #define MCFINTC_UART1 13 #define MCFINTC_DMA0 14 #define MCFINTC_DMA1 15 #define MCFINTC_DMA2 16 #define MCFINTC_DMA3 17 #define MCFINTC_QSPI 18
#ifndef __ASSEMBLER__
/* * There is no one-is-one correspondance between the interrupt number (irq) * and the bit fields on the mask register. So we create a per-cpu type * mapping of irq to mask bit. The CPU platform code needs to register * its supported irq's at init time, using this function.
*/ externunsignedchar mcf_irq2imr[]; staticinlinevoid mcf_mapirq2imr(int irq, int imr)
{
mcf_irq2imr[irq] = imr;
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.