kuainiao

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

ecos提供了很好的中断函数,可以方便的创建中断而不用动底层的东西。

现分析一下其中的实现机制。

假如一个ARM7有32个中断源,ECOS系统会做一个缺省中断程序表。

hal_interrupt_handlers:
        .rept   CYGNUM_HAL_ISR_COUNT
        .long   hal_default_isr
        .endr

而如何改变默认的中断程序呢?就是通过api函数cyg_interrupt_create().例如:有IRQ中断进入,ecos会调用函数hal_IRQ_handler()(需要移植的函数)得到目前的中断号,然后根据中断号查找中断程序表里面的程序执行。如果我们没有通过cyg_interrupt_create()写入特定的处理程序,ecos会调用hal_default_isr进行处理。

      这个机制非常方便的让我们处理中断。

posted on 2013-01-21 11:46  kuainiao  阅读(381)  评论(0编辑  收藏  举报
View Code