当前位置: 首页 > news >正文

Linux 一个简单的中断信号实现

1.查看手册,学习中断处理图

流程:(次级源->开关)源挂起开关  到 处理优先级中断挂起标志 CPSR里面的开关(图中未展现) 最后cpu处理

此次我们先使用k1按键实现中断,即是eint8

2.此次仅涉及一个中断挂起,步骤较简单,有的寄存器未涉及处理。

寄存器挂起后,通过写1清除对应位

  • 硬件设计逻辑

    • 中断标志位通常由硬件自动设置为 1,表示中断发生。硬件设计者选择通过写 1 来清除中断标志位,因为这样可以避免在软件清除中断标志时意外地清除其他标志位的风险。这个方法使得中断控制逻辑更为简单和可靠。
  • 防止误操作

    • 如果通过写 0 清除中断标志,开发者可能在编写代码时不小心误写其他的 0,导致其他不该清除的标志位被误清除。通过写 1 来清除特定位的设计可以避免这种误操作。
  • 效率考虑

    • 有些硬件设计使用写 1 清除来减少指令周期,因为写 1 清除通常只需一条指令,而写 0 可能需要多条指令。
  • 与其他寄存器的行为一致

    • 在某些微控制器和处理器架构中,这种写 1 清除标志位的设计是一个普遍的模式,这样可以在设计和操作这些寄存器时保持一致性,降低使用上的复杂性。

3.源挂起后面的开关(中断屏蔽寄存器INTMSK)设置为可服务。(enit8到enit23都在enit8_23里,属于其次级)

4.同样处理完成后写1清除中断挂INTPND)

5.通过中断偏移寄存器可以得知是否已经清除,方便后续操作

6.有的源挂起有自己的次级源挂起,同样需要先开启服务,处理后再关闭。

这种就类似小组成员有问题,要通过组长向上级发送,小组成员是次级源,组长是源,而没有次级源的直接就可以直接中断,相当于自己代表自己,不用向小组长请求。而本次操作的enit8_23,是源,其次级是enit8,这个才是案件的中断,既是后面的第三四张图,前两张是举例。

按键的寄存器,同样处理完要清除

7.当然要想使用按键还需要设置触发方式,此次使用下降沿触发,因为原本为高电平,按下后变为低电平,由高到低

8.前面的操作讲完,处理清除位时,要从前往后清除,因为如果先清除后面的,前面的又会持续发送中断信号,还有就是注意要在汇编里面先打开cpsr的开关(中断禁止位),否则接收不到中断

9.如果有需要还可以设置中断模式,此次就不需要了

相关文章:

  • 【网络安全 | 渗透工具】Cencys+Shodan使用教程
  • 【C语言】---- 位操作处理
  • KCP实现原理探析
  • 【python计算机视觉编程——4.照相机模型与增强现实】
  • 【操作系统】线程同步之自旋锁
  • SQLite3 数据类型深入全面讲解
  • 猎板道出PCB免费打样真相:制造成本究竟给了谁?
  • AI技术颠覆游戏开发:谷歌DeepMind GameNGen实时生成《DOOM》探秘
  • Linux下安装MySQL8.0
  • 文本数据分析-(TF-IDF)(1)
  • MySQL——事务与存储过程(四)综合案例——存储过程应用
  • 【ESP8266】macos 下 sdk 环境搭建
  • 第二届金牌导游大赛活动方案
  • 士兰微 SC32F5432 通过配置寄存器方式 将管脚配成开漏输出模式和TTL输入模式
  • Kafka【十四】生产者发送消息时的消息分区策略
  • 地理位置编码GeoHash编码 介绍
  • flutter之常用数据类型
  • CSS3动画——飞行的小精灵
  • 3.创建型设计模式详解:生成器模式与原型模式的深度解析
  • 用MobaXterm工具的Linux远程SSH登录
  • AI观察|算力饥渴与泡沫
  • 海南儋州市委副书记任延新已赴市人大常委会履新
  • 俄外长与美国务卿通电话,讨论俄美关系及乌克兰问题
  • 中国纪检监察报刊文:要让劳动最光荣成为社会的崇高风尚
  • 消费维权周报|上周违规经营类投诉较多,涉诱导加盟等
  • 《九龙城寨之围城》斩获香港金像奖九项大奖,包括最佳影片