Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
fiq:<br />
get_fiq_stack<br />
/* someone ought to write a more effiction fiq_save_user_regs */<br />
irq_save_user_regs<br />
bl do_fiq<br />
irq_restore_user_regs<br />
此处也很简单,就是发生了快速中断FIQ的时候,保存IRQ的用户模式寄存器,然后调用函数<br />
do_fiq,调用完毕后,再恢复IRQ的用户模式寄存器。<br />
其中do_fiq()是在:<br />
u-boot-1.1.6_20100601\opt\EmbedSky\u-boot-1.1.6\cpu\arm920t\interrupts.c<br />
中:<br />
┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳<br />
void do_fiq (struct pt_regs *pt_regs)<br />
{<br />
}<br />
printf ("fast interrupt request\n");<br />
show_regs (pt_regs);<br />
bad_mode ();<br />
┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻<br />
和前面提到过的do_undefined_instruction的一样,就是打印寄存器信息,然后跳转到<br />
bad_mode()去重启CPU而已。<br />
#else<br />
irq:<br />
fiq:<br />
#endif<br />
.align 5<br />
get_bad_stack<br />
bad_save_user_regs<br />
bl do_irq<br />
.align 5<br />
get_bad_stack<br />
bad_save_user_regs<br />
bl do_fiq<br />
此处就是,如果没有定义CONFIG_USE_IRQ,那么就用这段代码,可以看到,都只是直接调用<br />
do_irq和do_fiq,也没做什么实际工作。