|
知识路径: > 计算机软件与网络基础知识 > 嵌入式系统 > 嵌入式操作系统 >
|
相关知识点:18个
|
|
|
|
大多数嵌入式处理器架构都提供了异常和中断机制,允许处理器中断正常的执行路径。这个中断可能由应用软件触发,也可由一个错误或不可预知的外部事件来触发。而大多数EOS则提供异常和中断处理的“包裹”功能,使嵌入式系统开发者避免底层细节。
|
|
|
|
异常是指任何打断处理器正常执行,迫使处理器进入特权执行模式的事件。异常可以分为同步异常和异步异常。同步异常是指程序内部与指令执行相关的事件引起的异常,例如,内存偶地址校准异常、除数为零异常等;异步异常是指与程序指令不相关的外部事件产生的异常,例如,系统复位异常、数据接收中断等。
|
|
|
同步异常可以分为精确异常和不精确异常。精确异常是指处理器的程序计数器可以精确地指出引起异常的指令。而在流水线或指令预取的处理器上则不能精确地判断引起异常的指令或数据,这时的异常称为不精确异常。
|
|
|
异步异常可以分为可屏蔽的异常和不可屏蔽的异常。可以被软件阻塞或开放的异步异常称为可屏蔽的异常,否则,为不可屏蔽异常。不可屏蔽的异常总是被处理器处理,例如,硬件复位异常。许多处理器具有一个专门的不可屏蔽中断请求线(NMI),任何连接到NMI请求线的硬件都可以产生不可屏蔽中断。
|
|
|
所有的处理器按照定义的次序处理异常,虽然每一种嵌入式处理器处理异常的过程不尽相同,但一般都会按照优先级次序来处理。从应用程序的观点看,所有的异常都具有比操作系统内核对象更高的优先级,包括任务、队列和信号量等。
|
|
|
中断也称为外部中断,是一个由外部硬件产生的事件引起的异步异常,大多数嵌入式处理器架构中将中断归为异常的一类。实时内核最重要的指标是中断关了多长时间。所有的实时系统在进入临界代码时都要关中断,执行完临界代码之后再开中断。中断延迟时间是指关中断的最长时间与开始执行中断服务子程序的第一条指令的时间之和,中断恢复时间是微处理器返回到被中断的程序代码所需要的时间。
|
|
|
从应用的观点来看,异常和外部中断是外部硬件和应用程序通信的一种机制。一般来讲,异常和中断可以在如下两个方面用在设计中:内部错误和特殊条件管理、硬件并发和服务请求管理。
|
|
|
|
计时器是实时嵌入式系统的一个组成部分。时间轮转调度算法、存储器定时刷新、网络数据包的超时重传以及目标机监视系统的时序等都严格依赖于计时器。许多嵌入式系统用不同形式的计时器来驱动时间敏感的活动,即硬件计时器和软件计时器。硬件计时器是从物理计时芯片派生出来的,超时后可以直接中断处理器,硬件计时器对精确的延迟操作具有可预测的性能。而软件计时器是通过软件功能调度的软件事件,能够对非精确的软件事件进行有效的调度,使用软件计时器可以减轻系统的中断负担。
|
|
|
|
(1)实时时钟:存在于嵌入式系统内部,用来追踪时间、日期的硬件计时设备。
|
|
|
(2)系统时钟:用来追踪从系统加电启动以来的事件时间或流失时间,可编程的间隔计时器驱动系统时钟,计时器每中断一次,系统时钟的值就递增一次。
|
|
|
(3)时钟节拍:它也称为时钟滴答,是特定的周期性中断。中断之间的间隔取决于不同的应用,一般在10ms~200ms之间。而且时钟节拍率越快,系统的额外开销就越大。
|
|
|
(4)可编程计时器:一般是集成在嵌入式系统内部的专门计时硬件,用做事件计数器、流失时间指示器、速率可控的周期事件产生器等。使用独立的硬件计时器可以有效地降低处理器的负载。
|
|
|
(5)软件计时器:它是应用程序安装的计数器,每次时钟中断,会递减一次,当计数器到达0时,应用的计时器超时,系统会调用安装的超时处理函数进行有关处理。
|
|
|
|
从系统开发者的观点看,I/O操作意味着与设备的通信,对设备初始化、执行设备与系统之间的数据传输以及操作完成后通知请求者。从系统的观点看,I/O操作意味着对请求定位正确的设备,对设备定位正确的驱动程序,并保证对设备的同步访问。
|
|
|
I/O设备、相关的驱动程序等共同组合成嵌入式系统的I/O子系统。下图是一个典型的微内核系统的层次模型图。
|
|
|
|
|
I/O子系统定义一组标准的I/O操作函数,以便于对应用隐藏设备的特性。所有的设备驱动程序都符合并支持这个函数集,给应用提供一个能够跨越各种类型I/O的设备的统一的接口。
|
|
|
I/O子系统通常维护一统一的设备驱动程序表,使用I/O子系统的工具函数,可以将任何驱动程序安装到此表或从表中删除。另外,还使用一个设备表来跟踪为每个设备所创建的实例。
|
|
|