24小时联系电话:18217114652、13661815404

中文

您当前的位置:
首页>
电子资讯>
技术专题>
嵌入式单片机开发的中...

技术专题

嵌入式单片机开发的中断处理


众所周知,一方面,在嵌入式系统中普遍使用单片机的一个重要原因是它们比MPU 和通用CPU 具有及时性优势。低延迟的外设中断和中断嵌套是确保MCU实时性能的极大保证。另一方面,嵌入式系统单片机开发软件的开发中随着系统功能的日益复杂,无论是否采用RTOS,多任务处理都是不可避免的。在裸奔系统中,为了获得时间紧迫的任务来获得第一响应,通常有必要实现外围中断嵌套,该嵌套中断属于基于外围设备的硬件中断嵌套。在RTOS中,分配了所有系统任务。具有特定优先级的内核会根据优先级进行调度,实际上它实现了一组基于优先级的软件中断嵌套。嵌套在RTOS中的任务软件使用内核滴答计时器中断来连续查询RTOS任务准备列表中每个任务的优先级,以实现任务切换,而外围硬件中断不一定需要嵌套。 

      由于中断嵌套对于嵌入式单片机开发设计非常重要,所以什么是中断嵌套?在具体说明中断嵌套之前,有必要先谈谈嵌入式MCU的中断工作机制和中断优先级: 

      编写准系统的工程师知道,核心CPU一次只能执行一个任务/程序代码/指令,例如数据计算以及与片上外围设备的交互通信。代码的执行顺序由用户自己编写,CPU逐行获取,解码和执行。乘积函数的实现在主函数(通常称为主程序)的while1)循环中,并由其他函数不断调用。但是,在实际的工作环境中,许多事件是随机发生的,例如网络通信,外部IO输入和其他不确定事件。此时,CPU必须放下当前正在执行的工作,但要对这些紧急情况做出响应并及时读取网络消息。处理和响应网络通信需求以及及时的外部IO请求。这种处理称为中断。 

      嵌入式单片机开发中的内核CPU异常和各种外设操作可以生成响应中断,并由中断控制器统一管理。这样,CPU可以专注于不产生中断时顺序执行的任务,并且仅在产生中断时才通过中断控制器中断CPU(通过向CPU产生高/低信号,此过程称为打断)。请求),如果此时启用了CPU全局中断,则CPU将组合中断向量表和中断优先级配置,根据中断优先级(如果同时发生多个外设中断),从中断向量表中取出很高优先级中断服务程序的ISR地址将当前CPU运行时环境压入堆栈,然后跳转到中断ISR地址。如果CPU全局中断已关闭,则当前中断请求将被忽略。 

 

       S12核心CPU的中断/异常处理流程图如下: 


 中断响应-中断ISR和实时中断 

      产生中断时,中断控制器会向核心CPU请求中断响应。 

      典型的响应是CPU运行预先准备的中断ISR

 

请输入搜索关键字

确定