对于掌握一款单片机(Coretex-M系列定位就是高端单片机,呵呵,和Cortex-A系列的应用处理器定位是两个档次)来说,其中断机制是必须要掌握的,所以作为一个单片机开发者,编写相应的中断服务程序是最基本的要求之一了。前面提到过,本来在第八篇系列就该写写中断的使用方法了(其实这都算晚了,呵呵),不过那会儿玩TSI玩的正在热头上就趁热打铁的写了TSI模块,以致于拖到现在才开始写中断,哈哈,所以不多说废话了,直接进入正题。
Kinetis的中断机制其实也即是Cortex-M4核的机制,ARM从Cortex-M3核系列(ARMv7-M架构)开始就引入了嵌套向量中断控制器(NVIC)来管理其中断功能,其主要的特点包括:
(1)可嵌套中断支持,这点不用细说了,几乎大多数内核都支持中断嵌套,不过可能嵌套的级数有些不同;
(2)向量中断支持,Cortex-M系列通过查询中断向量表找到相应的ISR(中断服务程序)入口,并跳转执行;
(3)动态优先级调整,即支持软件运行时改变中断优先级,其实飞思卡尔的HCS12也支持这个,嘿嘿;
(4)中断延迟大大缩短,引入了一些新特性,例如咬尾中断,晚到中断;
(5)中断可屏蔽,支持条件性屏蔽即只屏蔽优先级低于某个阈值的中断,当然也可以屏蔽全部中断了;
|