Use FIQ register + comments.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17297 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
59efebff1e
commit
a1fa57fc01
1 changed files with 7 additions and 7 deletions
|
@ -122,7 +122,7 @@ void irq_handler(void)
|
||||||
}
|
}
|
||||||
asm volatile( "add sp, sp, #8 \n" /* Cleanup stack */
|
asm volatile( "add sp, sp, #8 \n" /* Cleanup stack */
|
||||||
"ldmfd sp!, {r0-r7, ip, lr} \n" /* Restore context */
|
"ldmfd sp!, {r0-r7, ip, lr} \n" /* Restore context */
|
||||||
"subs pc, lr, #4 \n"); /* Return from FIQ */
|
"subs pc, lr, #4 \n"); /* Return from IRQ */
|
||||||
}
|
}
|
||||||
|
|
||||||
void fiq_handler(void)
|
void fiq_handler(void)
|
||||||
|
@ -135,12 +135,12 @@ void fiq_handler(void)
|
||||||
"sub lr, lr, #4 \r\n"
|
"sub lr, lr, #4 \r\n"
|
||||||
"stmfd sp!, {r0-r3, ip, lr} \r\n"
|
"stmfd sp!, {r0-r3, ip, lr} \r\n"
|
||||||
"mov r0, #0x00030000 \r\n"
|
"mov r0, #0x00030000 \r\n"
|
||||||
"ldr r0, [r0, #0x518] \r\n"
|
"ldr r0, [r0, #0x510] \r\n" /* Fetch value from IO_INTC_FIQENTRY0 */
|
||||||
"sub r0, r0, #1 \r\n"
|
"sub r0, r0, #1 \r\n"
|
||||||
"ldr r1, =irqvector \r\n"
|
"ldr r1, =irqvector \r\n"
|
||||||
"ldr r1, [r1, r0, lsl #2] \r\n"
|
"ldr r1, [r1, r0, lsl #2] \r\n" /* Divide value by 4 (TBA0/TBA1 is set to 0) and load appropriate pointer from the vector list */
|
||||||
"blx r1 \r\n"
|
"blx r1 \r\n" /* Jump to handler */
|
||||||
"ldmfd sp!, {r0-r3, ip, pc}^ \r\n"
|
"ldmfd sp!, {r0-r3, ip, pc}^ \r\n" /* Return from FIQ */
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -197,7 +197,7 @@ void system_init(void)
|
||||||
unsigned short i;
|
unsigned short i;
|
||||||
/* Reset interrupt priorities to default values */
|
/* Reset interrupt priorities to default values */
|
||||||
for(i = 0; i < 23; i++)
|
for(i = 0; i < 23; i++)
|
||||||
DM320_REG(0x0540+i*2) = ( (i*2+1) << 8 ) | i*2 ;//IO_INTC_PRIORITYx
|
DM320_REG(0x0540+i*2) = ( (i*2+1) << 8 ) | i*2 ;/* IO_INTC_PRIORITYx */
|
||||||
|
|
||||||
/* Turn off all timers */
|
/* Turn off all timers */
|
||||||
IO_TIMER0_TMMD = CONFIG_TIMER0_TMMD_STOP;
|
IO_TIMER0_TMMD = CONFIG_TIMER0_TMMD_STOP;
|
||||||
|
|
Loading…
Reference in a new issue