2440-按键中断编程步骤

感慨于志锋能写出那么好的编程总结心得,6410的我就不重写了,自己写写2440的吧。(程序参考文件夹:Int_Test)

1、6410调试的条件之一是下载u-boot到Nand Flash中或者自己编写一份初始化代码由AXD命令烧写进去,而2440则不同,2440编程用uVision4作为编译器,开发板的初始化工作在汇编文件S3C2440A.s中编写好了。当然中断的初始化工作也在其中。6410中断采用中断向量控制器管理中断,编程比较简单。而2440采用中断向量表和多个寄存器配合工作,需要我们自己一个个操作,所以比较麻烦,但对学习很有帮助。

2、关于S3C2440A.s中中断初始化工作参考文档:中断的整个流程分析

3、在main函数中开始引脚初始化:函数在2440lib.c中定义(将对应的按键引脚设置为中断模式,并设置EXTINTn的中断信号触发方式。注:以下程序有些引脚是其他功能的)。

  

  

4、接下来是中断初始化(先为IRQ除外的其他部分异常设置异常处理函数,然后对中断过程相关的寄存器进行初始化,再对外部中断的专用寄存器做初始化)

   

  

5、最后是我们的测试函数

  

  在该函数中主要有以下几个步骤:

  • 配置GPGCON,设置6个按键对应的GPGx管脚功能为外部中断引脚EINT
  • 设置中断触发方式
  • 将按键中断处理程序(这里只需要函数名,接下来编写函数)注册,入口地址对应EINT8_23中断IRQ
  • 清除中断挂起寄存器和启动中断
  • 等待中断产生

 

6、编写中断处理函数

 

这里参考文件是比较通用的,除了测试函数外,可以不修改其他代码的情况下修改测试函数的功能。

posted on 2013-03-16 19:18  suwen  阅读(517)  评论(0编辑  收藏  举报

导航