嵌入式学习---ARM中断控制系统

这篇具有很好参考价值的文章主要介绍了嵌入式学习---ARM中断控制系统。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  • 硬件中断处理是实时系统设计的最重要、最关键的问题。

外部事件与CPU的交互方式

查询方式

  • 程序不断地查询各设备的状态,并做出相应的反应。该方式实现比较简单,常用在比较单一的系统中,比如一个温控系统中可以使用查询方式不断检测温度的变化。
  • 特点:实现简单;但CPU利用率很低,不适合多任务的系统。

中断方式

  • 当事件发生时,硬件会设置某个寄存器;CPU在每执行完一个指令时,查看这个寄存器,如果所关注的事件发生了,则中断当前程序,跳转到一个固定的地址处理这个事件,处理完后返回到被中断的程序中继续运行。
  • 特点: 实现相对复杂,但效率较高,是常用的方法。

什么是中断源

  • 中断源是指能够触发中断请求的事件或信号源。在计算机系统中,中断源可以是硬件设备(如键盘、鼠标、定时器等)或软件程序(如操作系统或应用程序)发出的信号。当中断源触发中断请求时,处理器会立即中断当前正在执行的任务,转而去处理中断服务程序,以响应中断事件。中断源的存在可以提高系统的响应速度和处理效率,使得处理器能够及时处理重要的事件或任务。

S3C2440支持60个中断源

嵌入式学习---ARM中断控制系统,嵌入式学习,学习,arm开发

FIQ和IRQ

FIQ(Fast Interrupt Request)和IRQ(Interrupt 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先处理。

中断处理流程

嵌入式学习---ARM中断控制系统,嵌入式学习,学习,arm开发

  • 中断控制器汇集各类外设发出的中断信号【中断控制器通常具有多个中断输入引脚,每个引脚对应一个外设的中断信号。当外设发出中断请求时,相应的中断输入引脚会被置为高电平或触发一个特定的信号。中断控制器会监测这些引脚的状态,并确定哪个外设发出了中断请求】,中断控制器会将中断请求的优先级进行排序,然后将最高优先级的中断请求发送给CPU。
  • CPU保存当前程序的运行环境,然后调用中断服务程序 (ISR)来处理中断。
  • 在ISR中通过读取外设的相关寄存器来识别中断的类型,并进行相应的处理。

将外设中断通知给CPU

嵌入式学习---ARM中断控制系统,嵌入式学习,学习,arm开发

SUBSRCPND寄存器

  • SUBSRCPND寄存器用来标明子中断 (如:INT_RXDO)是否发生。S3C2440有15个子中断,SUBSRCPND中每一位对应一个子中断,当这些子中断发生时,相应的位被置为1清除子中断只需向SUBSRCPND寄存器中相应位写入1。

嵌入式学习---ARM中断控制系统,嵌入式学习,学习,arm开发

INTSUBMSK寄存器

  • INTSUBMSK寄存器用来屏蔽SUBSRCPND寄存器所标示的中断。INTSUBMSK寄存器中某位被设为1时,相应的子中断被屏蔽。设为0时,表示子中断被允许。

嵌入式学习---ARM中断控制系统,嵌入式学习,学习,arm开发

SRCPND寄存器

  • SRCPND中每一位用来标明一个 (或一类)中断是否已经发生。例如: SUBSRCPND寄存器中的子中断INT_RXDO发生了,且没有被INTSUBMSK屏蔽,则SRCPND的INT UARTO位被置1。SRCPND寄存器的清除与SUBSRCPND寄存器相似,若想清除某一位,往此位写入1。

嵌入式学习---ARM中断控制系统,嵌入式学习,学习,arm开发

INTMSK寄存器

  • INTMSK寄存器用来屏蔽SRCPND所标示的中断。INTMSK某位被设置为1时,对应的中断被屏蔽,设置为0时,相应中断被允许。INTMSK只能屏蔽设为IRQ的中断,不能屏蔽设为FIQ的中断。

嵌入式学习---ARM中断控制系统,嵌入式学习,学习,arm开发

INTMOD寄存器

  • 当INTMOD寄存器中某位被设置为1时,它所对应的中断源会被设置为FIQ模式,即此中断发生时,CPU将进入快速中断模式,这通常用来处理特别紧急的中断。当该位被置为0时,表示为IRQ模式。

嵌入式学习---ARM中断控制系统,嵌入式学习,学习,arm开发

INTPND寄存器

  • 经过中断优先级仲裁器选出优先级高的中断后,这个中断在INTPND寄存器中的相应位被置1,随后,CPU将进入中断模式处理它。同一时间内,此寄存器只有一位被置1;在ISR中可以根据这个位确定中断类型。清除该中断时,往这个位写入0。

嵌入式学习---ARM中断控制系统,嵌入式学习,学习,arm开发文章来源地址https://www.toymoban.com/news/detail-776991.html

到了这里,关于嵌入式学习---ARM中断控制系统的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 嵌入式ARM设计编程(四) ARM启动过程控制

    文章和代码已归档至【Github仓库:hardware-tutorial】,需要的朋友们自取。或者公众号【AIShareLab】回复 嵌入式 也可获取。 一、实验目的 (1) 掌握建立基本完整的ARM 工程,包含启动代码,C语言程序等; (2) 了解ARM启动过程,学会编写简单的C 语言程序和汇编启动代码并进行

    2024年02月06日
    浏览(60)
  • AUTOSAR汽车电子嵌入式编程精讲300篇-基于AUTOSAR架构的AT控制系统研究与实现

    目录 前言 国内外研究现状   国外研究现状   国内研究现状

    2024年02月07日
    浏览(60)
  • STM32的中断系统详解(嵌入式学习)

    中断是处理器中的一种机制,用于响应和处理突发事件或紧急事件。当发生中断时,当前正在执行的程序会被暂时中止,处理器会跳转到中断处理程序(也称为中断服务例程),对中断事件进行处理。处理完中断后,处理器再返回到被中断的程序继续执行。 中断可以分为内部

    2024年02月12日
    浏览(73)
  • 嵌入式学习---ARM时钟体系

    按 一定电压幅度 , 一定时间间隔 连续发出的脉冲信号。它是一个周期性的信号,每个周期内包含一个上升沿和一个下降沿。时钟脉冲的上升沿和下降沿通常用于触发和同步各个电子元件的操作,例如CPU的指令执行、数据传输、寄存器更新等。 时钟频率是指时钟脉冲的频率

    2024年01月16日
    浏览(61)
  • 嵌入式培训机构四个月实训课程笔记(完整版)-Linux ARM驱动编程第二天-ARM中断、定时器、看门狗(物联技术666)

    链接:https://pan.baidu.com/s/1E4x2TX_9SYhxM9sWfnehMg?pwd=1688 提取码:1688 上午:中断           吕峰老师 下午:定时器 教学内容: 一、中断 ARM 中断分为二级,分为一级中断和二级中断,二级中断为子中断,对于 ARM 来说有 50 个中断源, 其中有 32+ ( EINT23-4 ) 23-4+1-2=50 子中断源

    2024年02月19日
    浏览(60)
  • ARM+LINUX嵌入式学习路线

    嵌入式学习是一个循序渐进的过程,如果是希望向嵌入式软件方向发展的话,目前最常见的是嵌入式Linux方向,关注这个方向,大概分3个阶段: 1、嵌入式linux上层应用,包括QT的GUI开发 2、嵌入式linux系统开发 3、嵌入式linux驱动开发 嵌入式目前主要面向的几个操作系统是,

    2024年02月02日
    浏览(64)
  • 嵌入式学习52-ARM1

    知识零散: 1.flash:                                                                                                                                                           nor flash    可被寻地址                                               

    2024年04月14日
    浏览(37)
  • 华清远见嵌入式学习——ARM——作业3

    led.h led.c uart.h uart.c main.c

    2024年01月21日
    浏览(55)
  • 华清远见嵌入式学习——ARM——作业2

    目录 作业要求: 现象: 代码: 思维导图: 模拟面试题: GPIO实验——3颗LED灯的流水灯实现

    2024年02月03日
    浏览(43)
  • 【嵌入式学习-STM32F103-TIM-定时中断和外部时钟】

    1、定时器基本定时,定一个时间,然后让定时器每隔一段时间产生一个中断,来实现每隔一个固定时间执行一段程序的目的,比如要做一个时钟、秒表或者使用一些程序算法 2、定时器输出比较的功能,输出比较这个模块最常见的用途是产生PWM波形,用于驱动电机等设备,使

    2024年02月12日
    浏览(69)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包