找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4884|回复: 1
打印 上一主题 下一主题
收起左侧

剪不断理还乱—Cortex-M4核的“异常”与“中断”那点事

[复制链接]
跳转到指定楼层
楼主
ID:82781 发表于 2015-6-24 16:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
            最近一直在看《ARM Cortex-M3权威指南》这本书,不知道被我翻看了多少遍了,感觉这本书的着迷之处在于每次看都会有点小收获、小心得,由衷的钦佩作者扎实的技术功底和严谨的科学态度(包括英文原著的作者和中文翻译的作者,都很NB,个人认为这本书是中文翻译最好的嵌入式书籍中的代表作之一)。我之前一直对MCU中的“异常”和“中断”这两个概念有点模糊,最近终于在这本书中找到了答案,欣喜之余,也把它记录了下来,同时本着share的思想,也开放给广大博友,共同进步,当然也可能有不准确的地方,可以随时博客中留言沟通交流。
            所谓“异常”,即所有能打断正常执行流的事件都可以称之为异常。平时,我们经常混合使用术语“中断”与“异常”这两个概念,这也是我老是弄混的原因,但是如果不加额外说明,则强调的都是它们对前台主程序所体现出来的“中断”性质,也就是说我们平时都以“中断”来统称。不过在一些用户手册上却常常将这两个单独分开来讲,所以我们还是有必要将这两者分个丁一卯二。我们知道Cortex-M3/M4的中断系统中前16个中断都是被称作系统异常,之后的240个中断称之为外部中断(即内核的外部统称外部中断),而准确来讲,中断与异常的区别在于,那 240 个中断对 CM3/CM4 核来说都是“意外突发事件”——也就是说,该请求信号来自CM3内核的外面,来自各种片上外设和外扩的外设,对CM3/CM4来说是“异步”的;而异常则是因CM3/CM4内核的活动产生的——在执行指令或访问存储器时产生,因此对CM3/CM4来说是“同步”的。
             所以说转牛角尖的话,这两者的确是存在区别的,哈哈,只不过我们平时不管三七二十一的都称之为中断罢了,毕竟这些只是概念上的东西,只是有助理解而已,但是为了科学的严谨考虑,我们也有必要对这两者有个准确的认识即可。
            好了,就写到这了,将这部分作为学习笔记记录下来,最后对《ARM Cortex-M3权威指南》这本书的作者表示感谢,呵呵。未完待续~


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:97043 发表于 2015-11-28 08:59 | 只看该作者
好东西,顶起来,让更多的人看到。我已经厌烦了一些所谓“大师”云里雾里的谈吐,喜欢看到这种简洁易懂的阐述。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表