嵌入式学习笔记(34)S5PV210中断处理的编程实战

news2024/12/26 16:22:36

6.8.1中断控制器初始化

主要工作有:第一阶段绑定异常处理程序到异常向量表;禁止所有中断源;选择所有中断类型为IRQ;清理VICnADDR寄存器为0。

为什么要禁止所有中断源:

因为中断一旦打开,因为外部或硬件自己的原因产生中断后一定就会寻找isr,而我们可能认为自己用不到这个中断就没有提供isr,这时它自动拿到的就是乱码,程序可能跑飞,所以不用的中断一定要禁掉。一般的做法是先全部禁止,然后逐一打开自己感兴趣的中断,一旦打开就必须给这个中断提供相应的isr并绑定好。

6.8.2中断的使能与禁止

思路是先根据中断号intnum判断这个中断属于VIC几,然后在用中断号减去这个VIC的偏移量,得到这个中断号在本VIC的偏移量,然后1<<x位,写入相应的VIC的INTENABLE/INTENCLEAR寄存器即可。

6.8.3绑定自己实现的isr到VICnVECTADDRx

(1)先要搞清楚2个寄存器的区别:VICnVECTADDRx和VICnADDR。

VICnADDR是将真正产生中断的VICnVECTADDRx中isr的地址复制到VICnADDR中。

(2)VICVECTADDR寄存器一共有4*32个,每个中断源都有一个VECTADDR寄存器,我们应该将自己为这个中断源写的isr地址丢到这个中断源对应的VECTADDR寄存器中即可。

6.8.4真正的中断处理程序如何获取isr

当发生中断时,硬件会自动把相应中断源的isr的地址从VICnVECTADDR寄存器中推入到VICnADDR寄存器中,所以我们第二阶段的第二步irq_handler中,只需要到对应的VICnADDR寄存器中去拿出isr地址,调用执行即可。

总结:第3步绑定isr到VICnVECTADDR和第4步中断发生时第二阶段的第二部分如何获取isr地址,这两步是相关的。这两个的结合技术,就是我们一直在说的210的硬件自动寻找isr的机制。

整个中断的流程梳理:

整个中断的工作分为2部分:

第一部分是我们为中断响应而做的预备工作:

1.初始化中断控制器

2.绑定写好的isr到中断控制器

3.相应中断的所有条件使能

第二部分是当硬件产生中断后如何自动执行isr:

1.第一步,经过异常向量表跳转入IRQ/FIQ的入口

2.第二步,做中断现场保护(在start.S中),然后跳入irq_handler

3.第三步,在irq_handler中先搞清楚是哪个VIC中断了,然后直接去这个VIC的ADDR寄存器中取isr来执行即可。

4.第四步,isr执行完,中断现场恢复。直接返回继续做常规任务。

嵌入式物联网的学习之路非常漫长,不少人因为学习路线不对或者学习内容不够专业而错失高薪offer。不过别担心,我为大家整理了一份150多G的学习资源,基本上涵盖了嵌入式物联网学习的所有内容。在评论区私信“嵌入式”0元领取学习资源,让你的学习之路更加顺畅!记得点赞、关注、收藏、转发哦!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1049059.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

秦时明月卡牌版攻略,最强的推图阵容推荐

这篇文章提供了关于秦时明月卡牌版游戏最强推图攻略2023的详细信息&#xff0c;以帮助玩家在游戏中创建最强的推图阵容。让我们一起来看看这些新的信息吧。 关注【娱乐天梯】&#xff0c;获取内部福利号 秦时明月卡牌版强大的推图组合提议 推图游戏中&#xff0c;绝对不可忽视的…

ros使用rviz订阅Image类型话题,显示yolov7目标检测结果

开发板深度相机系统Xavierrealsense D455ubuntu18.04 1、首先启动yolov7的ros节点&#xff0c;发布话题/image。 2、终端输入rviz&#xff0c;回车打开rviz&#xff0c;Add——>Image&#xff1a; 3、展开Image选项&#xff0c;选择要订阅的topic&#xff0c;左下角就显示出…

中秋佳节,华为手机如何拍月亮?

今年中秋你在哪里过&#xff1f;又到中秋佳节月圆夜&#xff0c;一年一度最期待的拍月亮环节来了&#xff01;分享几个华为手机拍月亮小技巧&#xff0c;共赏中秋月色~

【Vue2.0源码学习】生命周期篇-挂载阶段(mount)

文章目录 1. 前言2. 挂载阶段分析3. 总结 1. 前言 模板编译阶段完成之后&#xff0c;接下来就进入了挂载阶段&#xff0c;从官方文档给出的生命周期流程图中可以看到&#xff0c;挂载阶段所做的主要工作是创建Vue实例并用其替换el选项对应的DOM元素&#xff0c;同时还要开启对…

DIY手工坊商城小程序的作用有哪些

自己动手做的东西往往更具自豪感&#xff0c;也能锻炼自身的动手能力&#xff0c;而DIY手工坊无疑是小孩子、年轻人喜欢的地方&#xff0c;无论自己做还是成品都具备自由性、不受规格类型局限&#xff0c;比如手机壳、绘画、手工积木、雕塑等。 而对商家来说&#xff0c;经营收…

赋能工业数字化转型|辽宁七彩赛通受邀出席辽宁省工业互联网+安全可控先进制造业数字服务产业峰会

2023年9月25日下午&#xff0c;由软通动力信息技术&#xff08;集团&#xff09;股份有限公司主办的“工业互联网安全可控先进制造业数字服务产业峰会”在辽宁沈阳顺利举办。省市区各级政府、科研院所领导、技术专家、企业高管以及生态合作伙伴代表等齐聚一堂&#xff0c;共同探…

Konva事件机制

前言 不同于HTML或SVG标签可以直接绑定事件&#xff0c;Canvas是使用JavaScript来绘制内容&#xff0c;这意味着其内容没有具体的DOM&#xff0c;所以Canvas渲染引擎都会自己实现一套事件机制。Konva的事件机制支持图形的选中、拖拽等交互处理&#xff0c;同时还支持单个图形对…

微信小程序案例2-1:学生信息

文章目录 &#xff08;二&#xff09;准备图像素材&#xff08;三&#xff09;编写小程序页面结构 单击[确认] 清空页面结构文件index.wxml内容 修改页面配置文件index.json&#xff0c;不适用navigation-bar组件 删除全局配置文件app.json&#xff0c;删除渲染器配置&a…

一键开启默认打印机共享功能,如何用powershell编写一个一键开启windows本地默认打印机共享的脚本

环境: Win10 专业版 Win11专业版 powershell 问题描述: 一键开启默认打印机共享功能,如何用powershell编写一个一键开启windows本地默认打印机共享的脚本 解决方案: 修改Windows注册表来实现打印机共享:(未成功)打开注册表编辑器:按下Win + R组合键,输入"re…

手机,汽车大卖背后,华为生态进入发展新阶段

监制 | 何玺 排版 | 叶媛 从8月底至今&#xff0c;华为手机、汽车的热度就没有消退过。 如今的华为产品&#xff0c;从手机到AR眼镜&#xff0c;从智慧屏到汽车&#xff0c;几乎全线都处在一机难求、一车难求状态。 9月25日举行的华为秋季全场景新品发布会&#xff0c; 更是…

实验三十三、三端稳压器 LM7805 稳压性能的研究

一、题目 LM7805 输出电压、电压调整率、电流调整率以及输出纹波电压的研究。 二、仿真电路 电路如图1所示。集成稳压芯片采用 LM7805CT。 三、仿真内容 &#xff08;1&#xff09;测量图1&#xff08;a&#xff09;LM7805CT 的电压调整率&#xff0c;测量条件为 I O 50…

【数据结构与算法】通过双向链表和HashMap实现LRU缓存 详解

这个双向链表采用的是有伪头节点和伪尾节点的 与上一篇文章中单链表的实现不同&#xff0c;区别于在实例化这个链表时就初始化了的伪头节点和伪尾节点&#xff0c;并相互指向&#xff0c;在第一次添加节点时&#xff0c;不需要再考虑空指针指向问题了。 /*** 通过链表与HashMa…

算法与数据结构-Trie树

文章目录 什么是“Trie 树”&#xff1f;如何实现一棵 Trie 树&#xff1f;Trie 树真的很耗内存吗&#xff1f;Trie 树与散列表、红黑树的比较 什么是“Trie 树”&#xff1f; Trie 树&#xff0c;也叫“字典树”。顾名思义&#xff0c;它是一个树形结构。它是一种专门处理字符…

SolidWorks 入门笔记03:生成工程图和一键标注

默认情况下&#xff0c;SOLIDWORKS系统在工程图和零件或装配体三维模型之间提供全相关的功能&#xff0c;全相关意味着无论什么时候修改零件或装配体的三维模型&#xff0c;所有相关的工程视图将自动更新&#xff0c;以反映零件或装配体的形状和尺寸变化&#xff1b;反之&#…

软考高级之系统架构师之计算机基础

概述 今天是9月28日&#xff0c;距离软考高级只剩37天&#xff0c;加油&#xff01; 概念 三种周期&#xff1a; Clock Cycle&#xff1a;时钟周期&#xff0c;CPU主频&#xff0c;又称为时钟频率&#xff0c;时钟周期是时钟频率的倒数Instruction Cycle&#xff1a;指令周…

人工智能 与 搜索引擎的较量

随着科技的不断进步&#xff0c;人工智能&#xff08;AI&#xff09;已经渗透到了我们生活的方方面面&#xff0c;搜索引擎也不例外。AI与传统搜索引擎之间的较量成为了科技界和互联网用户关注的热点话题。 人工智能 与 搜索引擎的较量 A - 搜索引擎B - 人工智能AI 的优势理解力…

感谢信 | 企企通赋能鲜丰水果搭建特色数字化供应链协同系统,领跑中国水果连锁品牌

近日&#xff0c;由企企通携手鲜丰水果股份有限公司&#xff08;以下简称“鲜丰水果”&#xff09;打造的一站式数字化采购供应链管理平台成功上线。 鲜丰水果项目顺利上线后&#xff0c;客户对企企通项目团队的努力付出作出了高度评价&#xff0c;并收到了来自鲜丰水果的感谢信…

Java中String转换为double类型

这次的java作业是写一个数字转换的小项目&#xff0c;其中从输入框中获取的是String类型&#xff0c;但是要进行数字操作&#xff0c;此时要用到很多操作String类型数据的方法了。 从javafx输入框中获取到String类型后&#xff0c;首先是要判断是否能转换为数字或者小数形式&a…

多线程 dispatch

51423 https://blog.csdn.net/yanhaijunyan/article/details/115083522

问题 - 谷歌浏览器 network 看不到接口请求解决方案

谷歌浏览器 -> 设置 -> 重置设置 -> 将设置还原为其默认值 查看接口情况&#xff0c;选择 All 或 Fetch/XHR&#xff0c;勾选 Has blocked cookies 即可 如果万一还不行&#xff0c;卸载浏览器重装。 参考&#xff1a;https://www.cnblogs.com/tully/p/16479528.html