向量中断和非向量中断

向量中断 非向量中断
向量中断与非向量中断的区别
     推荐向量中断就是不同的中断有不同的入口地址,非向量中断就只有一个入口地址,进去了再判断中断标志来识别具体是哪个中断。向量中断实时性好,非向量中断简单
     向量中断控制器VIC具有32个中断请求输入,可将其编程分为3类,FIQ,向量IRQ和非向量IRQ。
     FIQ(fast interrpt request)快速中断请求要求具有最高优先级。如果分配给FIQ的请求多于一个,VIC将中断请求相或后向ARM处理器产生FIQ信号。当只有一个中断被分配为FIQ时可实现最短的FIQ等待,但如果分配给IFIQ级的中断多于1个,FIQ服务程序需要读取FIQ状态寄存器来识别产生中断请求的FIQ中断源!向量IRQ具有中等优先级。该级别可分别32个请求中断的16个。32个请求种的任意一个都可分配到16个向量IRQ slot中的任意一个,其中slot0具有最高优先级非向量IRQ的优先级最低

向量中断 非向量中断
     向量者,矢量也,即指方向,门路。
     向量中断------由硬件提供中断服务程序入口地址;
     非向量中断------由软件件提供中断服务程序入口地址;
 
     向量中断模式用于RESET、NMI、异常处理。当向量中断产生时,控制器直接将PC赋值,如跳到0x0000000d处,而在0x0000000d地址处通常放置ISR服务程序地址LDR PC, =ISR_HANDLER。
     非向量中断模式,有一个寄存器标识位,跳转到统一的函数地址,此函数通过判别寄存器标识位和优先级关系进行中断处理。向量中断模式是当CPU读取位于0x18处的IRQ中断指令的时候,系统自动读取对应于该中断源确定地址上的指令取代0x18处的指令,通过跳转指令系统就直接跳转到对应地址函数中,节省了中断处理时间提高了中断处理速度。例如 ADC 中断的向量地址为0xC0,则在0xC0处放如下代码:ldr PC,=HandlerADC 当ADC中断产生的时候系统会自动跳转到HandlerADC函数中处理中断。 
      非向量中断模式处理方式是一种传统的中断处理方法,当系统产生中断的时候,系统将INTPND寄存器中对应标志位置位,然后跳转到位于0x18处的统一中断函数中;该函数通过读取INTPND寄存器中对应标志位来判断中断源,并根据优先级关系再跳到对应中断源的处理代码中处理中断。
中断向量模式和向量模式是中断处理的两种不同方式。 在向量模式中,不同的中断有不同的入口地址。向量中断控制器(VIC)将中断请求分为不同的类别,如FIQ、向量IRQ和向量IRQ。FIQ具有最高优先级,向量IRQ具有中等优先级,向量IRQ的优先级最低。每个中断请求可以分配到相应的向量IRQ slot中的一个入口地址。这种方式具有较好的实时性和灵活性。\[1\] 而在向量模式中,所有中断共享一个入口地址。当发生中断时,ARM处理器会跳转到指定的中断解析程序,通过判断中断状态寄存器找到对应的中断源,然后跳转到相应的中断执行程序。这种方式相对简单,但灵活性较差。\[3\] 总结来说,向量模式中断具有不同的入口地址,可以实现较好的实时性和灵活性;而向量模式中断只有一个入口地址,相对简单但灵活性较差。\[1\]\[3\] #### 引用[.reference_title] - *1* *3* [向量中断向量中断](https://blog.csdn.net/michaelcao1980/article/details/20461505)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [8086中断向量](https://blog.csdn.net/qq_51677513/article/details/124079613)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值