什么是中断优先级?什么是中断向量表?
·首先,什么是中断?中断是指在主程序执行过程中出现了特定的触发条件,也就是中断源。当发生中断时,CPU会暂停当前正在运行的程序,转而去处理中断程序。处理完成后,再返回原来被暂停的位置继续运行。
·其次,什么是中断优先级?中断优先级是指当有多个中断源同时申请中断时,CPU会根据中断源的轻重缓急进行裁决,优先处理更加紧急的中断源。
·最后,什么是中断嵌套?当一个中断程序正在运行时,又有新的更高优先级中断源申请中断,CPU就会再次暂停当前中断程序,然后去处理新的中断程序,处理完成后依次进行返回。
接下来,我们来了解STM32的中断。Cortex-M3内核支持256个中断,其中包括16个内核中断和240个外部中断,具有256级的可以编程设置的中断优先级。但是STM32F1只是用了M3内核的一部分,它只含有84个中断源,其中包括16个内核中断和68个外部可屏蔽中断,而这68个外部可屏蔽中断,F103系列芯片又只有60个,所以具体到每个芯片型号可用的中断还是以数据手册为准。
这是我截取的数据手册部分中断表,可以看到每个中断都是有一个固定的地址,由于硬件的缘故,中断源产生中断时,都是到相应中断源固定的地址去执行中断程序。
为什么中断函数可以写在任意位置?这是因为在固定地址这里,由编译器自动加上了跳转到中断函数的代码,这样就实现了由固定地址到任意位置执行程序了。这些中断的固定地址列表就是说的中断向量表了。我们编程中基本不需要管这个中断向量表,编译器已经帮我们做好了。STM32有这么多中断,是怎么管理它们的呢?这里就要提到NVIC了,NVIC全名叫做嵌套中断向量控制器,NVIC是一个内核外设,是内核专门用来管理中断的。当外部有很多中断同时进来,NVIC就按照程序配置好的优先级,给这些中断排好队,依次送入CPU执行。
我们现在来看看NVIC具体是怎么管理中断的。NVIC将优先级分为抢占优先级和响应优先级,当一个中断设置了抢占优先级,那么它可以打断其他正在执行的中断,也就是刚才说的中断嵌套,抢占优先级控制着中断嵌套,而响应优先级控制排队顺序。NVIC用优先级寄存器的4位来将抢占优先级和响应优先级进行组合。如下图所示,我们可以使用程序选择使用哪种中断分组模式,例如选择第二组,可以将零到三级的抢占优先级和响应优先级任意组合。同时,我们还可以配置中断的响应优先级为0到3级的任意级别。对于具有高抢占优先级的中断,我们可以进行嵌套处理;而对于具有高响应优先级的中断,我们可以优先执行。当多个中断同时发生时,具有高抢占优先级的中断可以优先处理,而具有高响应优先级的中断则可以按照数据手册中的中断号进行排序。
青岛恒星科技学院2024届毕业生校园招聘会成功举办
12月22日,由山东省人力资源和社会保障厅主办,青岛恒星科技学院和青岛市公共就业和人才服务中心、李沧区人力资源和社会保障局共同承办,李沧团区委协办的“就选山东”高校毕业生2023年省级集中招聘活动现代轻工纺织产业专场暨青岛恒星科技学院2024届毕业生校园招聘会在体育馆成功举办。本次招聘会吸引了近60...
华为一手养肥的这家小巨人,真这么值钱吗?
半个月前,灿勤科技登陆科创板,A股市场再迎5G通信产业链中的硬科技公司。灿勤科技作为全球重要的射频器件制造商,拥有多项核心技术,是全国首批专精特新“小巨人”企业和第五批制造业单项冠军企业,在2020年中国电子元件百强企业排名中,位列第21名。值得一提的是,灿勤科技获得了国家集成电路产业投资基金二期的...
从硅谷看全球科技发展趋势
本文节选自中信证券前瞻研究系列报告22《美国调研:从硅谷看全球科技发展趋势》,作者为中信证券前瞻研究分析师许英博。美国:在半导体和半导体设备领域具备显著竞争优势美国半导体优势显著。2016年,全球半导体产业销售额为3389亿美元,其中美国半导体厂商贡献了1639亿美元,占据48.4%的市场份额。在全...
行走中国·2023年海外华文媒体云南行启动 感知“有一种叫云南的生活”
中新网昆明(罗婕缪超)“行走中国·2023年海外华文媒体云南行”活动26日正式启动,来自世界六大洲20余位海外华文媒体代表人士走进“彩云之南”,感知“有一种叫云南的生活”。此次活动由云南省人民政府侨务办公室、中国新闻社云南分社主办,为期5天,海外华文媒体代表们将踏访云南昆明、保山、德宏等地,体验多彩...