arm中断分析

本文介绍了中断向量表的基本概念及其在裸机程序和操作系统中的应用。详细解释了不同类型的中断,包括复位、SWI及IRQ等,并阐述了它们在Bootloader与内核中的实现方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

中断向量表

在跑裸机程序时候在程序的开始位置放置就是中断向量表

0x0   复位

0X4  Undef

0x8  SWI

.

.

.

0X18 外部中断请求 IRQ

0x1c 快速中断请求  FIQ

这些中断的实现都是在UBOOT或者是bootloder的代码里面实现的

 

进入到内核操作系统之后 内核或从新再建立一个中断向量表,当然地址也可以自己配置可以是从0开始也可以不是

主要是在trap_init()函数里面实现,他是把处理中断的函数拷贝到对应位置,当中断出现的时跳转到对应位置去处理

当然中断的处理大概有如下几个步骤:

1 中断发生

2 cpu发生中断跳到异常处理函数如后

3  保存被中断的现场

     执行中断处理函数

     恢复

大致就是这样,本文重点是:中断向量表是由bootloader 和kernel各自提供,以及放置的位置。当然对中断分类有所了解,一般在写程序用到的中断是SWI或者是IQR,对应IRQ中断如何添加IRQ中断的处理函数也是常用到的。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值