论文部分内容阅读
中断是整个计算机系统必不可少的重要组成部分。它对输入输出处理、多道程序和分时操作、人机联系的实时处理、事故处理、程序的监视和跟踪以及多处理机系统中各机的联系等方面都起着重要的作用[1]。嵌入式系统可以没有操作系统支持,但对中断的处理无处不在。在嵌入式系统的实际应用中,往往需要进行大量的中断处理,需要面对大量的外部中断源发出的中断信号,这些中断信号在很多情况下是无序的,而各个任务的完成,需要一系列中断信号组成的有序的中断序列。我们将这种情况称为复杂中断。现有的中断机制已经难以应付这种复杂的中断。因此,一个高效、稳定的中断处理机制,一个能有效地应对无序、复杂的中断请求的中断处理机制,无疑将为嵌入式系统的设计和应用提供很大的灵活性,提高了嵌入式系统的工作效率。本文针对在嵌入式系统中如何将收到的无序的中断信号进行合理的调度和有序的处理展开研究。主要分析了传统的单片机和外部中断控制器的中断处理方式,研究了Linux操作系统中对于中断的处理机制,最后针对在不支持多任务操作系统的嵌入式系统中如何使多个任务能够得到有序的执行,而不受无序的中断信号的干扰,提出一种基于有穷状态自动机的中断处理机制,该机制采用了两段式的方式来尽量获取中断信号,再将获取的中断信号按照有穷自动机的工作原理进行序列化调度,以应对无序的复杂中断请求带来的麻烦。第二章主要探讨研究目前没有操作系统支持的嵌入式系统中的中断处理机制。目前在没有操作系统支持的嵌入式系统中的中断处理仅仅依靠处理器的处理能力或中断控制器的处理能力来完成任务。当面对复杂中断时,系统很容易陷入逻辑混乱,造成系统无法正确工作甚至系统崩溃。同时也对设计人员的工作造成很大困扰。第三章主要研究Linux的中断处理方式。包括中断系统初始化过程、中断和异常的硬件处理、中断处理过程和Linux的软中断机制。分析了部分在Linux中对中断处理的实现代码。第四章提出了一种新型的基于有穷状态自动机的中断机制,主要应用于无操作系统支持的嵌入式系统中。该中断机制引入自动机工作原理,使无序的中断信号在自动机的管理下能够有序地完成各个任务。实现对多任务的实际需求的更好支持。