打印
[NUC120]

HOT大叔NUC120助学板第三贴之续----中断设置之来龙去脉

[复制链接]
6396|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 缥缈九哥 于 2012-9-14 12:10 编辑

     非常感谢关于GPIO小练一贴神的指点,同时响应HOT大叔的号召,记下神点拨之感受,铭记不要知其然要知其所以然,懂其机理,但本人水平有限,理解有些肤浅,请见谅!
     从GPIO小练中关于外部中断0设置说开来,1.图1中中断响应函数名为什么为EINT0Callback?
   
    原因为:DrvGPIO_EnableEINT0(E_IO_FALLING, E_MODE_EDGE, EINT0Callback);设置其中断处理函数为EINT0Callback。

    2.此函数是如何实现中断响应的呢?
    原因:图2中DrvGPIO_EnableEINT0函数的第三个入口参数类型为GPIO_EINT0_CALLBACK(其定义为typedef void (*GPIO_EINT0_CALLBACK)(void);),也就是在函数体内函数EINT0Callback的开始地址指向了_pfEINT0Callback(static void (*_pfEINT0Callback)(void);----DrvGPIO.c中)的地址。
   
     
    3._pfEINT0Callback这个函数又是如何与中断响应关联的呢?
    原因:
    Cortex M0异常的处理:摘自中文手册
NVIC区分和处理所有支持的异常,所有异常在“处理器模式“处理. NVIC结构支持32(IRQ[31:0])4级离散中断优先级. 所有的中断和大多数系统异常可以配置为不同优先级. 当中断发生时,NVIC将比较新中断与当前中断的优先级,如果新中断优先级高,则立即处理新中断.
当接受任何中断时,ISR的开始地址可从内存的向量表中取得. 不需要确定哪个中断被响应,也不要软件分配相关中断服务程序(ISR)的开始地址。
    其中断异常向量表在startup_NUC1xx.s中定义如下图:
   
     而EINT0_IRQHandler这个函数(具体函数键下图)又实现了如下功能:
      ①清中断
      ②如果_pfEINT1Callback定义则实现该函数的功能
      
     基于MDK的LPC1100处理器开发应用中关于异常中断向量表有如下描述:
     CMSIS对系统异常处理函数以及普通的中断处理函数名得定义也有所不同。系统异常处理函数名需加后缀_Handler,而普通中断处理函数名则加后缀_IRQHandler,这些异常处理函数被定义为weak属性的,以便在其他的文件中重新实现时不出现重复定义的错误。(关于基于MDK的LPC1100处理器开发应用的描述不甚理解,望赐教!)

相关帖子

沙发
Cube| | 2011-3-27 19:37 | 只看该作者
俺~顶贴啊~菜农的裤子给的香~与楼主坐等菜农精华~

使用特权

评论回复
板凳
U灬U| | 2011-3-27 21:43 | 只看该作者
悲剧 俺没看明白 迷糊 今天看的晕了 明天再看:dizzy:

使用特权

评论回复
地板
hotpower| | 2011-3-28 01:32 | 只看该作者
晕,神农也有权利发裤子的!!!
手机发不了裤子,俺要发就只能明天晚上了

使用特权

评论回复
5
Swallow_0322|  楼主 | 2011-3-28 13:34 | 只看该作者
多谢大叔给条裤子!O(∩_∩)O哈哈~

使用特权

评论回复
6
Cube| | 2011-3-29 13:34 | 只看该作者
菜农给的裤子香~

我给自己加裤子,结果威望-100

有阴影了的。。。

使用特权

评论回复
7
Swallow_0322|  楼主 | 2011-3-29 16:07 | 只看该作者
:P

使用特权

评论回复
8
ichuangj| | 2011-5-12 11:11 | 只看该作者
mark

使用特权

评论回复
9
plc_avr| | 2011-5-13 07:58 | 只看该作者
顶一下,继续努力!我就不用掏腰包了,;P

使用特权

评论回复
10
Swallow_0322|  楼主 | 2011-5-13 17:30 | 只看该作者
9# plc_avr

:P
;P

使用特权

评论回复
11
lixupengarm| | 2011-5-23 18:16 | 只看该作者
mark!!

使用特权

评论回复
12
JIESHENG189| | 2011-6-16 09:12 | 只看该作者
学习中

使用特权

评论回复
13
hotpower| | 2011-6-21 12:38 | 只看该作者
中断是最基本和最需要掌握的

使用特权

评论回复
14
tao560532| | 2011-8-13 08:48 | 只看该作者
确实,楼主讲的很详细啊

使用特权

评论回复
15
TANG2008| | 2011-9-7 11:35 | 只看该作者
谢谢楼主的中断详解,收获不少。

使用特权

评论回复
16
西行侠客| | 2013-2-27 13:58 | 只看该作者
中断很重要也很精髓啊,要好好学习下

使用特权

评论回复
17
perpetuity| | 2014-9-4 10:36 | 只看该作者
楼主将的很详细,之前没玩过回调函数,还不知道该怎么下手   这下可以试试了

使用特权

评论回复
18
centuryair| | 2015-1-16 15:27 | 只看该作者
Mark

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

121

主题

1393

帖子

4

粉丝