GEC210(S5PV210)裸机驱动之中断系统

本文介绍了GEC210(S5PV210)开发板上中断系统的详细流程,包括从中断发生到服务程序执行的整个过程。文章探讨了中断驱动的编写思路,提供了一个基本框架,并强调了编写外设中断服务程序的关键步骤。内容涵盖了全局中断开启、异常向量表设置、中断使能和模式配置等,旨在帮助开发者理解并实现ARM平台的中断驱动。
摘要由CSDN通过智能技术生成

主机平台:Linux CentOS 6.5

arm平台:粤嵌GEC210开发板(S5PV210)


中断是arm里面很重要的一个部分,但S5PV210数据手册中中断那一章里讲的基本是一些概述性的内容,没有具体的中断实现流程,如果没有参考例程的话,完全不知到如何入手写一个中断程序。(或者其它地方有,但是我没有找到,哪位知道的麻烦告诉我一下)


下面把一些我认为比较重要的归纳下。因为是个人归纳的,而且有些地方涉及到芯片内部的操作,所以在某些细节方面可能会有不严谨的地方,这些地方我会加一些注释的,但在整体的流程上应该是没有问题的。

此外,下面所有的内容都以IRQ中断为例。


首先是:

中断系统接收到一个由外设来的中断信号时,会执行:

1.检测全局的IRQ中断是否打开。(注:这里也有可能是:若全局的IRQ中断没有打开,中断系统根本不会接收到中断信号)

2.若全局IRQ中断以打开,检查对应外设的中断在中断系统对应寄存器是否使能(注:同上,也可能并非检测)

3.若使能,将对应中断入口地址加载到其所在中断组的VIC0ADDRESS寄存器中,并置位对应的中断状态标志位。(注:这一步的位置不太确定)

4.跳转到异常向量表中,查找IRQ中断的对应入口地址,并进入此地址中执行通用中断服务程序,这个中断服务程序是所有IRQ中断共用的。

5.建立中断所需的环境(注:这里不太清楚具体做了那些工作,至少在我调试过程中,会自动将SP设置为IRQ模式下的对应值)

5.5.这步与中断系统无关,是在程序中通过中断系统的相关寄存器,从通用的中断服务程序跳转到与外设相关的特定中断服务程序。

6.当从特定中断服务程序返回时,会再次进入通用的中断服务程序,

7.从中断服务程序返回,恢复环境,此次中断结束


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值