Day 20 例外和中断机制的定义

大多数的嵌入式处理器会提供例外(exception)和中断(interrupt)这两个功能,允许处理器去中断异常的状况,这些异常的状况,有可能是软件、程序设计错误、外部事件等等所产生的,所以才需要有这两个功能。

嵌入式作业系统通常会提供一种叫包裹器(wrapper)的功能,主要是把一些比较低阶的问题先放在一边,让写程序的人把重点放在比较重要的错误处理上面,老实说,这种方式,有时很容易造成误解,认为不重要的就可以不管它,其实,问题还是存在,只是优先处理重要的事情,这很像我们在处理工作时,通常会优先处理紧急的工作一样,处理完紧急的工作还是要处理剩下的,有时间可以处理的工作一样。

我们在此先简单定义一下,甚麽是例外?甚麽是中断?

例外(exception):就是处理器正常运作时,突然插入一个紧急或者特殊的状况,让处理器不得不先处理这个事件。例外分成同步与非同步两种。甚麽叫同步跟非同步,简单说同步,就是自己内部产生的异常,让处理器不得不处理内部的异常状况。而所谓的非同步,就是外部事件所产生的异常,例如说前篇所说的信号发送异常,这类都是属於外部所产生的问题,所以处理器就得要非同步的处理这类状况。

中断(interrupt),也就是上述的例外(exception)所产生的一种动作,因为要处理同步跟非同步的状况,就一定要中断正常的处理程序,所以中断就是一个必然的动作。

已经进入第20天了,时间过得真快,再继续努力学习了!


<<:  Day 20. Zabbix 问题回报与纪录介绍

>>:  18. 订OKRs新手常见错误

Day 22 Selenium模组一

今天的影片内容为介绍另一个强大的模组—Selenium 有了它,我们就可以随心所欲地控制浏览器并执行...

【学习笔记】 .NET 5/Core Console 在 Linux 平台排程运行

这次尝试用 .NET5 在 Linux 做 Console 排程器并定期发送每日剩余零花钱讯息到我跟...

Day26 :【TypeScript 学起来】Class 与 Interface 的使用

我们在前面的时候有提过 interface 是用来定义物件的型别,对物件的形状进行描述。在物件导向程...

[Day 13] Update 更新资料

现在有几个collection在ProductController.php中 public func...

【设计+切版30天实作】|Day21 - PainPoints - 怎麽切出标题底下的highlight 装饰?

大纲 昨天完成header的部分了,所以接下来就会进入main的部分,今天要完成的是「PainPoi...