Rev 2411 | Rev 2465 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2411 | Rev 2414 | ||
---|---|---|---|
Line 159... | Line 159... | ||
159 | * |
159 | * |
160 | * The default mode for interrupt servicing (Interrupt Mode) |
160 | * The default mode for interrupt servicing (Interrupt Mode) |
161 | * can not be used because of nested interrupts (which can occur |
161 | * can not be used because of nested interrupts (which can occur |
162 | * because interrupt are enabled in higher levels of interrupt handler). |
162 | * because interrupt are enabled in higher levels of interrupt handler). |
163 | */ |
163 | */ |
164 | inline static void switchToIrqServicingMode() |
164 | inline static void switch_to_irq_servicing_mode() |
165 | { |
165 | { |
166 | /* switch to Undefined mode */ |
166 | /* switch to Undefined mode */ |
167 | asm volatile( |
167 | asm volatile( |
168 | /* save regs used during switching */ |
168 | /* save regs used during switching */ |
169 | "stmfd sp!, {r0-r3} \n" |
169 | "stmfd sp!, {r0-r3} \n" |
Line 281... | Line 281... | ||
281 | static void irq_exception_entry() |
281 | static void irq_exception_entry() |
282 | { |
282 | { |
283 | asm("sub lr, lr, #4"); |
283 | asm("sub lr, lr, #4"); |
284 | setup_stack_and_save_regs(); |
284 | setup_stack_and_save_regs(); |
285 | 285 | ||
286 | switchToIrqServicingMode(); |
286 | switch_to_irq_servicing_mode(); |
287 | 287 | ||
288 | CALL_EXC_DISPATCH(EXC_IRQ) |
288 | CALL_EXC_DISPATCH(EXC_IRQ) |
289 | 289 | ||
290 | load_regs(); |
290 | load_regs(); |
291 | } |
291 | } |