找回密码
 注册
搜索
查看: 2010|回复: 14

[讨论] 一个比较困惑的问题

[复制链接]
发表于 2010-9-30 00:54:11 | 显示全部楼层 |阅读模式
一个芯片具有一个中断引脚,该引脚向ARM芯片产生中断请求,告诉ARM的,但是产生中断后,芯片的中断引脚持续保持中断的电平,想问下怎样才能让芯片恢复初始电平,以等待下次产生触发电平呢??
发表于 2010-9-30 11:17:47 | 显示全部楼层
产生中断后,进入中断服务程序,第一步就是屏蔽其他优先级平等和低的中断

请求,然后开始处理中断服务,在此过程中,如果有优先级更高的中断,会

暂时停止当前处理,去处理优先级高的那个中断;等处理完优先级高的,继续

处理当前中断,当处理完成后,恢复所有中断请求许可,然后有其他中断,就

会进入相应的中断入口;

通俗一点讲,就是:中断请求-->进入中断处理-->屏蔽其他中断请求,并清

                  中断标志位-->处理中断服务-->处理完毕,恢复所有中

                  断请求-->等待中断

如此反复,不知道讲明白没有
点评回复

使用道具 举报

发表于 2011-1-24 16:08:03 | 显示全部楼层
汗,千万别这么说,我只是觉得多个朋友多条路,多个兄弟多扇窗

   能有机会一块儿交流就是交朋友途径最好的诠释,呵呵

   对也罢,错也罢,只是一点自己的理解,技术越交流,思路越开阔

   [em08][em08][em08]
点评回复

使用道具 举报

发表于 2011-1-24 15:58:46 | 显示全部楼层
HOBBY兄,你太神武了,人品不错, 我们理解能力低下(知识不全面导致),你却还自责讲解不到位。

我无比惭愧!
点评回复

使用道具 举报

发表于 2011-1-23 15:30:52 | 显示全部楼层
呵呵,我讲的那个流程里面有:处理完毕,然后恢复所有中断请求

  这个恢复中断请求的动作,就是把当前的中断标志清除,并把中断

  口恢复为原来的待中断状态

      言外之意,就是在你处理完这个中断服务程序之后,把这个中端口

  恢复成高电平,并且清除中断标志,以保证再次中断能够进来中断接口

  看来讲得还是不够详细,呵呵

      理解了这个操作机制,那些设电平、标志之类的操作都是执行步骤

  而已,懂得在什么时候去做什么事,然后决定怎么做,这才是关键,呵呵
点评回复

使用道具 举报

发表于 2011-1-20 16:12:30 | 显示全部楼层
以下是引用hobby_803在2010-9-30 11:17:47的发言:
产生中断后,进入中断服务程序,第一步就是屏蔽其他优先级平等和低的中断

请求,然后开始处理中断服务,在此过程中,如果有优先级更高的中断,会

暂时停止当前处理,去处理优先级高的那个中断;等处理完优先级高的,继续

处理当前中断,当处理完成后,恢复所有中断请求许可,然后有其他中断,就

会进入相应的中断入口;

通俗一点讲,就是:中断请求-->进入中断处理-->屏蔽其他中断请求,并清

                                                                                                                                                中断标志位-->处理中断服务-->处理完毕,恢复所有中

                                                                                                                                                断请求-->等待中断

如此反复,不知道讲明白没有


LZ着眼点应该是EINT的PIN脚电平,比如低电平有效,那么当该PIN成低电平后,进入中断服务程序后,什么时候这个脚会重新置成高电平
点评回复

使用道具 举报

发表于 2011-2-10 16:05:15 | 显示全部楼层
hobby_803
好人啊。。。
点评回复

使用道具 举报

发表于 2011-3-9 12:11:07 | 显示全部楼层
hobby_803是好人,但似乎没有回答楼主的问题。

楼主是在问产生中断请求的芯片怎么样再把已置高的电平恢复成原先的低电平。

如果此芯片和ARM芯片之间只有这一根管脚是中断相关的,那么只能ARM芯片通过其他与此芯片的接口(比如uart,hpi)发命令来通知此芯片可以恢复中断口了,然后这个恢复动作是在芯片中自己完成的(因为这个中断管脚是它自己驱动的),ARM芯片只能发命令。
点评回复

使用道具 举报

发表于 2011-4-26 17:01:17 | 显示全部楼层
hobby_803

比喻的太恰当了,牛人!
点评回复

使用道具 举报

发表于 2011-4-26 14:10:57 | 显示全部楼层
哈哈,时间长没上开看,有高手来交流啊

  LS两位兄弟讲的很对,中断的机制对于主系统和外设之间的通信很重要,
  LZ之所以会这么问,或许是对这个机制没有太深入的去思考和理解,就
  单独LZ提出的这个问题来说,LS两位的回答很正确了,或许我们可以延伸
  一点,举个例子来说明:

  我们把北京比作是主系统,也就是这里的ARM主芯片;把其他一个小城市
  比作是外围芯片的话,他们之间连接的那个中断连线可以看做是高速公路,
  小城市着火了,需要报告给北京,于是就派了一辆车沿着高速公路去北京。
  
  这里被派去的汽车就好比带着的中断信息(电平沿的跳变),如果ARM芯片
  不想做这个外设的处理,那么北京就可以把城门关闭,这样汽车也就进入
  不到北京了;如果按照LS两位兄弟那种做法,这时北京通过电话(IIC/SPI)
  给小城市,告诉小城市的人,北京正在开会(ARM正在工作),不处理其他事务
  你们有事也不要派车过来。

  哈哈,不知道这个比喻是否得当,希望对其他兄弟的中断理解有点帮助
点评回复

使用道具 举报

发表于 2011-4-19 15:13:48 | 显示全部楼层
以下是引用naturemalett在2011-3-9 12:11:07的发言:
hobby_803是好人,但似乎没有回答楼主的问题。

楼主是在问产生中断请求的芯片怎么样再把已置高的电平恢复成原先的低电平。

如果此芯片和ARM芯片之间只有这一根管脚是中断相关的,那么只能ARM芯片通过其他与此芯片的接口(比如uart,hpi)发命令来通知此芯片可以恢复中断口了,然后这个恢复动作是在芯片中自己完成的(因为这个中断管脚是它自己驱动的),ARM芯片只能发命令。

对的,芯片的引脚怎么改变电平,是芯片自己变的,一般芯片spec会有写怎么清除中断,比如读一下,或者写一下芯片的寄存器等。
arm必须在中断恢复之前,按照spec把中断引脚电平恢复。
点评回复

使用道具 举报

发表于 2011-7-10 21:46:10 | 显示全部楼层
讲的很铭泰
点评回复

使用道具 举报

 楼主| 发表于 2011-7-8 09:27:17 | 显示全部楼层
谢谢兄弟们的解答,小弟明白啦[em01]
点评回复

使用道具 举报

发表于 2011-12-9 15:48:00 | 显示全部楼层
都是一帮牛人啊,听的云里雾里的,不过,感谢,学习当中。
点评回复

使用道具 举报

发表于 2011-12-22 14:50:26 | 显示全部楼层
恩 讲的很明白 通俗易懂!
对新学的人很有帮助!
受教了!
hobby_803
值得尊敬啊[em01]
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-12-23 23:19 , Processed in 0.049214 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表