1 2 3 | interrupt_base: ... EXCEPTION(0x0500, ExternalInput, do_IRQ, EXC_XFER_LITE) |
1 2 3 4 5 | .align 5; //32 bytes aligned ExternalInput: NORMAL_EXCEPTION_PROLOG; addi r3,r1,STACK_FRAME_OVERHEAD; xfer(0x0500, do_IRQ); |
1 2 3 4 5 | li r26, ExternalInput@l; /*IVOR only uses the low 16-bits*/ mtspr SPRN_IVOR4, r26; ...... lis r4, interrupt_base@h /*IVPR only uses the high 16-bits*/ mtspr SPRN_IVPR, r4 |
1 2 | local_irq_disable()/local_irq_enable() local_irq_save()/local_irq_restore() |
1 2 3 4 5 6 7 8 | #ifdef CONFIG_BOOKE asm volatile("wrteei 0" : : : "memory"); #else register unsigned long rval; asm volatile("mfmsr %0\n" : "=r" (rval)); rval &= ~MSR_EE; /*MSR_EE = 1<<16*/ asm volatile("mtmsr %0" : : "r" (rval) : "memory"); #endif |
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |