异常和中断有什么联系和区别?ARM Cortex-M3 处理器最多能支持多少种异常?它们的优先级是如何规定的?
1个回答
关注
展开全部
Cortex-M3处理器的优先级是由8位寄存器确定的,但不同的芯片厂商可能只实现其中的几位。ARM要求最少实现3位。优先级数值越小,优先级越高。优先级可以分为抢占优先级和亚优先级,抢占优先级决定了是否可以中断当前服务例程,亚优先级决定了同一抢占优先级下哪个异常先响应。优先级可以有8种分配方式,从0到7组,每组有不同的抢占优先级和亚优先级的位数。例如,第0组只有亚优先级,第4组只有抢占优先级。
咨询记录 · 回答于2023-03-24
异常和中断有什么联系和区别?ARM Cortex-M3 处理器最多能支持多少种异常?它们的优先级是如何规定的?
异常和中断的联系是:它们都是由某些事件触发的,都会导致处理器暂停当前程序,跳转到相应的服务例程执行。异常和中断的区别是:异常是由处理器内部产生的同步事件,如硬件错误、系统调用、断点等;中断是由处理器外部产生的异步事件,如外设请求、定时器溢出等。
Cortex-M3处理器最多能支持11种系统异常(同步)和240种外部中断(异步),以及一个不可屏蔽中断(NMI)。
它们的优先级是由8位寄存器确定的,但不同的芯片厂商可能只实现其中的几位。ARM要求最少实现3位。优先级数值越小,优先级越高。优先级可以分为抢占优先级和亚优先级,抢占优先级决定了是否可以中断当前服务例程,亚优先级决定了同一抢占优先级下哪个异常先响应。
Cortex-M3处理器使用向量表来存储每种异常的服务例程入口地址,向量表可以重定位到不同的地址空间。当一个异常发生时,处理器会根据异常号从向量表中取出对应的入口地址,并跳转到服务例程执行。Cortex-M3处理器还会在异常处理的开始和结束时自动执行入栈和出栈操作,保存和恢复一些寄存器的值。其中LR寄存器会被赋予一个特殊的值EXC_RETURN,用于指示异常返回时的状态。
优先级能简短回答吗?
Cortex-M3处理器的优先级是由8位寄存器确定的,但不同的芯片厂商可能只实现其中的几位。ARM要求最少实现3位。优先级数值越小,优先级越高。优先级可以分为抢占优先级和亚优先级,抢占优先级决定了是否可以中断当前服务例程,亚优先级决定了同一抢占优先级下哪个异常先响应。优先级可以有8种分配方式,从0到7组,每组有不同的抢占优先级和亚优先级的位数。例如,第0组只有亚优先级,第4组只有抢占优先级。
本回答由意法半导体(中国)投资有限公司提供