首页 > 编程知识 正文

中断号为08h的中断向量存放在哪里,中断向量与中断源的关系

时间:2023-05-06 04:51:06 阅读:276145 作者:1610

中断向量
中断源的识别标志,可用来形成相应的中断服务程序的入口地址或存放中断服务程序的首地址。

运行过程
在中断响应过程中,CPU通过从接口电路获取的中断类型号(中断向量号)计算对应中断向量在表中的位置,并从中断向量表中获取中断向量,将程序流程转向中断服务程序的入口地址。


图一 中断函数声明

图二 配置中断服务函数

图三 设置中断服务函数的底层库函数

举例
上图是利用山外K60库配置PORTC和DMA0的中断服务函数实例
图二中PORTC_IRQHandler是需要设置的中断服务程序(用户自己设置),PORTC_VECT0Rn是中断向量表中的中断向量(K60底层已设置)。set_vector_handler函数的意义是将PORTC_IRQHandler的地址(PORTC_IRQHandler在图一中是定义的函数名,在图二中代表该函数在内存中的首地址)“赋值”给中断向量PORTC_VECT0Rn。
简单来说,set_vector_handler(PORTC_VECT0Rn, PORTC_IRQHandler);的作用是把PORTC_IRQHandler添加到中断向量表中。
K60在获取中断类型号(码)后,经计算(中断类型码*4)得到该中断类型服务子程序入口地址在中断向量表的位置(即中断向量PORTC_VECT0Rn),然后从中取出这个地址(PORTC_IRQHandler),转到相应的子程序(void PORTC_IRQHandle())。

简单来说,中断向量指向地址,该地址下存放的是用户需要在中断时执行的函数。
先获取中断类型号,再在中断向量表中找中断向量,指向一个地址,执行其中的中断服务程序。

下图为山外K60平台部分中断号类型声明和中断向量表编号声明

如有错误,欢迎指正!

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。