linux学习记录

一、异常
1.异常类型

2.IRQ中断流程

1.cpu每个指令周期检查是否发送异常;

2.若发现异常,保存CPSR(程序状态寄存器),将当前处理模式设置为ARM、IRQ模式,将被打断应用程序地址的下一个指令保存到LR寄存器,例如当前程序地址为0x6000008,LR为0x6000004,即下一个指令的地址;

3.PC指针指向0x18,程序到0x18取出指令,这个指令跳转到中断异常处理函数;

4.中断异常处理函数中,分三步处理

①保护现场:寄存器、CPU状态入栈;

②根据中断号,跳转到对应的中断处理函数中执行;

③执行完毕恢复现场:寄存器、CPU状态出栈

5.恢复现场后,PC指向原来中断的地方,重新回到断点执行程序

相关推荐
吃着火锅x唱着歌4 分钟前
深度探索C++对象模型 学习笔记 第六章 执行期语意学(1)
c++·笔记·学习
xxwl58520 分钟前
工作室小测的部分记录
c++·学习·算法
程序员zgh23 分钟前
C++ 万能引用与完美转发
c语言·开发语言·c++·经验分享·学习
lazy H1 小时前
Maven 依赖爆红怎么办?IDEA 中 Maven 项目常见问题和解决方法总结
java·后端·学习·maven·intellij-idea
lazy H1 小时前
Spring Boot 连接 MySQL 失败怎么办?常见报错原因和解决方法总结
spring boot·后端·学习·mysql·spring
skywalk81631 小时前
段言项目推进6.15 @ Dumate+Trae
开发语言·学习·编程
承渊政道1 小时前
【MySQL数据库学习】(MySQL复合查询)
数据库·学习·mysql·bash·database·数据库开发·数据库架构
云和数据.ChenGuang2 小时前
metrics的解释 人工智能
人工智能·深度学习·学习·机器学习·概率论
fanged2 小时前
Linux_Driver_Tutorial(1)(TODO)
学习
星恒随风2 小时前
C++ string 入门(一)
开发语言·c++·笔记·学习