《嵌入式linux应用开发》2440 中断 体系结构

本文详细介绍了ARM处理器的七种运行模式,其中重点解释了usr模式和各种特权模式的区别,并阐述了用户模式与特权模式之间的转换机制。此外,文章还深入剖析了ARM中断流程,从主程序到中断向量表再到中断服务函数,以及中断服务函数的执行过程。同时,文章详细介绍了中断初始化流程,包括设置中断模式、中断源的工作方式、中断使能位、清除中断悬挂寄存器以及设置CPSR中断允许位等内容。最后,文章讲解了中断控制器中各个寄存器的关系,以及外部中断的特殊处理方式。
11 ARM 有七种运行模式,usr为用户模式,其他为特权模式,特权模式可以随意进入
    其他特权模式和用户模式,但用户模式不能随意进入其他模式,只能通过中断,swi(软中断),复位等,
    复位,swi进入svc模式,uboot要求运行在svc模式,在uboot最开始就将cpu调到
    svc模式,而linux kernel加载时要求cpu处在svc模式。

2 arm中断流程
    主程序----中断---->中断向量表----跳转---->中断服务函数----返回--->主程序

    中断服务函数内容包括:
    1保护现场(保存相关寄存器 r0-r12,lr或pc)
    2清中断
    3相关服务函数
    4恢复现场(恢复相关寄存器,恢复cpsr进入svc模式)  注意:恢复pc(回到主函数
    )和恢复cpsr(回到svc模式)必须同时执行

3 中断初始化流程:(操作以下时中断必须是关闭的)和《嵌入式linux应用开发》的
中断部分的代码比较

    1设置svc和IRQ模式下的sp指针
    2 设置中断源的工作方式(如上升沿或下降沿)
    3设置中断源的使能位,( 在程序中是EINTMASK)
    4 清除中断悬挂寄存器的所有pending位, (INTPEND)
    5打开中断屏蔽寄存器的相应MASK位  (INTMASK)
    6handler
    7设置CPSR中断允许I位,允许中断,
    (这是中断的总开关,也是最后一个开关,之后就等待中断发生,)

4 中断控制器中各个寄存器的关系
   所有的中断发生了都表现在 SRCPEND上,INTMSK用来屏蔽SRCPEND所标示的中断,
   没有被屏蔽的经过优先级仲裁,最高优先级的中断被标示在INTPEND上

5 对于外部中断,又多了 EINTPEND 和EINTMSK ,EINTMSK是外部中断的使能(不被屏
避就是使能),EINTPEND 当需要进一步判断是需要
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值