mcf52xx系列ISR向量表实际是一个数组cyg_hal_interrupt_handlers[],那么数组里保存的ISR入口地址是什么时候存进去的呢?,原来用户在添加ISR的时候会通过cyg_drv_interrupt_attach()函数,该函数将该ISR的入口地址按中断向量号顺序存入ISR向量表数组。具体实现如下:
#define HAL_INTERRUPT_ATTACH( _vector_, _isr_, _data_, _object_ ) \ CYG_MACRO_START \ cyg_uint32 _index_; \ HAL_TRANSLATE_VECTOR((_vector_), _index_); \ if (cyg_hal_interrupt_handlers[_index_] \ ==(CYG_ADDRESS)&hal_arch_default_isr) \ {