linux学习记录

一、异常
1.异常类型

2.IRQ中断流程

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

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

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

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

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

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

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

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

相关推荐
r_oo_ki_e_7 小时前
Java Map 集合学习笔记
java·笔记·学习
笨鸟先飞的橘猫8 小时前
skynet——sharetable学习
学习·skynet
liuyicenysabel8 小时前
大模型学习笔记 · 第八篇 · 进阶:偏好对齐与多卡训练
人工智能·笔记·学习
Funing711 小时前
FreeRTOS学习day1:Keil 工程配置与 FreeRTOS 链表机制理解
数据结构·学习·链表
心中有国也有家11 小时前
使用 DevEco Studio 配置 Flutter 鸿蒙签名
学习·flutter·华为·harmonyos
灯澜忆梦11 小时前
MySQL 完整学习路线
学习·mysql
森林古猿112 小时前
再论斜率优化
c++·学习·算法
心中有国也有家13 小时前
鸿蒙Flutter开发环境从零搭建教程(Windows/macOS双平台·避坑版)
学习·flutter·华为·harmonyos
渣渣灰飞13 小时前
MySQL 系统学习 第二阶段 第三章 DQL(Data Query Language)第三节:ORDER BY + LIMIT(排序 + 分页)
数据库·学习·mysql
十月的皮皮14 小时前
C语言学习笔记20260706-栈的压入、弹出序列验证
c语言·笔记·学习