美食网站网站建设定位,网站建设新手教程视频,网站的建设费用属于什么科目,成都网站建设cdxwcx目录 外部事件与CPU的交互方式查询方式中断方式 什么是中断源S3C2440支持60个中断源FIQ和IRQ 中断处理流程将外设中断通知给CPUSUBSRCPND寄存器INTSUBMSK寄存器SRCPND寄存器INTMSK寄存器INTMOD寄存器INTPND寄存器 硬件中断处理是实时系统设计的最重要、最关键的问题。
外部事件… 目录 外部事件与CPU的交互方式查询方式中断方式 什么是中断源S3C2440支持60个中断源FIQ和IRQ 中断处理流程将外设中断通知给CPUSUBSRCPND寄存器INTSUBMSK寄存器SRCPND寄存器INTMSK寄存器INTMOD寄存器INTPND寄存器 硬件中断处理是实时系统设计的最重要、最关键的问题。
外部事件与CPU的交互方式
查询方式
程序不断地查询各设备的状态并做出相应的反应。该方式实现比较简单常用在比较单一的系统中比如一个温控系统中可以使用查询方式不断检测温度的变化。特点实现简单但CPU利用率很低不适合多任务的系统。
中断方式
当事件发生时硬件会设置某个寄存器CPU在每执行完一个指令时查看这个寄存器如果所关注的事件发生了则中断当前程序跳转到一个固定的地址处理这个事件处理完后返回到被中断的程序中继续运行。特点: 实现相对复杂但效率较高是常用的方法。
什么是中断源
中断源是指能够触发中断请求的事件或信号源。在计算机系统中中断源可以是硬件设备如键盘、鼠标、定时器等或软件程序如操作系统或应用程序发出的信号。当中断源触发中断请求时处理器会立即中断当前正在执行的任务转而去处理中断服务程序以响应中断事件。中断源的存在可以提高系统的响应速度和处理效率使得处理器能够及时处理重要的事件或任务。
S3C2440支持60个中断源 FIQ和IRQ
FIQFast Interrupt Request和IRQInterrupt Request是两种不同类型的中断请求。
IRQ是一种标准的中断请求用于处理一般的中断事件。它是由外部设备如键盘、鼠标、定时器等或软件程序发出的中断信号。当IRQ中断请求被触发时处理器会中断当前正在执行的任务保存当前的上下文并跳转到IRQ中断服务程序去处理中断事件。IRQ中断请求具有较低的优先级可以被其他中断请求打断。FIQ是一种快速中断请求用于处理紧急或高优先级的中断事件。与IRQ相比FIQ具有更高的优先级和更快的响应速度。FIQ中断请求通常由特定的硬件设备如DMA控制器、硬盘控制器等发出用于处理一些需要快速响应的关键任务。当FIQ中断请求被触发时处理器会立即中断当前任务保存当前的上下文并跳转到FIQ中断服务程序去处理中断事件。由于FIQ具有较高的优先级它可以打断正在执行的IRQ中断请求。
总结来说IRQ用于处理一般的中断事件而FIQ用于处理紧急或高优先级的中断事件。FIQ具有更高的优先级和更快的响应速度适用于一些对实时性要求较高的任务。
IRQ模式下中断处理程序需要自己保存R8到R12这几个寄存器退出中断处理时需要自己恢复这几个寄存器而FIQ模式由于这几个寄存器都有back寄存器(fiq_R8…)模式切换时CPU自动保存这些值到back寄存器退出FIQ模式时自动恢复所以这个过程FIQ比IRQ快。FIQ比IRQ有更高优先级如果FIQ和IRQ同时产生那么FIQ先处理。
中断处理流程 中断控制器汇集各类外设发出的中断信号【中断控制器通常具有多个中断输入引脚每个引脚对应一个外设的中断信号。当外设发出中断请求时相应的中断输入引脚会被置为高电平或触发一个特定的信号。中断控制器会监测这些引脚的状态并确定哪个外设发出了中断请求】中断控制器会将中断请求的优先级进行排序然后将最高优先级的中断请求发送给CPU。CPU保存当前程序的运行环境然后调用中断服务程序 (ISR)来处理中断。在ISR中通过读取外设的相关寄存器来识别中断的类型并进行相应的处理。
将外设中断通知给CPU SUBSRCPND寄存器
SUBSRCPND寄存器用来标明子中断 (如:INT_RXDO)是否发生。S3C2440有15个子中断SUBSRCPND中每一位对应一个子中断当这些子中断发生时相应的位被置为1清除子中断只需向SUBSRCPND寄存器中相应位写入1。 INTSUBMSK寄存器
INTSUBMSK寄存器用来屏蔽SUBSRCPND寄存器所标示的中断。INTSUBMSK寄存器中某位被设为1时相应的子中断被屏蔽。设为0时表示子中断被允许。 SRCPND寄存器
SRCPND中每一位用来标明一个 (或一类)中断是否已经发生。例如: SUBSRCPND寄存器中的子中断INT_RXDO发生了且没有被INTSUBMSK屏蔽则SRCPND的INT UARTO位被置1。SRCPND寄存器的清除与SUBSRCPND寄存器相似若想清除某一位往此位写入1。 INTMSK寄存器
INTMSK寄存器用来屏蔽SRCPND所标示的中断。INTMSK某位被设置为1时对应的中断被屏蔽设置为0时相应中断被允许。INTMSK只能屏蔽设为IRQ的中断不能屏蔽设为FIQ的中断。 INTMOD寄存器
当INTMOD寄存器中某位被设置为1时它所对应的中断源会被设置为FIQ模式即此中断发生时CPU将进入快速中断模式这通常用来处理特别紧急的中断。当该位被置为0时表示为IRQ模式。 INTPND寄存器
经过中断优先级仲裁器选出优先级高的中断后这个中断在INTPND寄存器中的相应位被置1随后CPU将进入中断模式处理它。同一时间内此寄存器只有一位被置1在ISR中可以根据这个位确定中断类型。清除该中断时往这个位写入0。