5741|9

62

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

中断方式下,arm(嵌入式的linux)读双口ram的驱动中,读ram只能一直处于阻塞状态,只有中断来了才能唤醒读。只能这样吗? [复制链接]

中断方式下,arm(嵌入式的linux)读双口ram的驱动中,读ram只能一直处于阻塞状态,只有中断来了才能唤醒读。只能这样吗?
而不能象单片机的中断那样,来了中断直接进入中断函数进行处理。
此帖出自Linux开发论坛

最新回复

可以设置成非阻塞的吧?  详情 回复 发表于 2011-8-9 14:12
点赞 关注

回复
举报

75

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
初次接触系统的线程设计是吗?

操作系统里面,使用中断线程来实现中断程序功能的。在无中断时,该线程是被挂起的,有中断时被唤醒执行相应功能。

习惯就好。既然系统升级了(从单片机的裸跑到现在的OS),那思维方式也要跟着升级。
此帖出自Linux开发论坛
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
谢谢shuiyan 的指教。

如果是“中断时被唤醒执行相应功能”这样的做法的话,那当下一个中断来了,而我还没有处理完上一个中断的数据,这种情况我该怎么办?

还有,一般情况下,中断处理双口ram收发数据的流程是怎样的?谢谢大家指导
此帖出自Linux开发论坛
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

4
 
DPRAM驱动不是很懂
中断的话要看优先级等其它因素
而且建议不要在中断服务程序中进行太多的数据处理,中断服务程序应尽量简洁,数据处理放到中断触发的其他任务去做为好
此帖出自Linux开发论坛
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(中级)

5
 
一般情况下,中断处理双口ram收发数据的流程是怎样的?
此帖出自Linux开发论坛
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

6
 
顶,
还请有经验的朋友指教
此帖出自Linux开发论坛
 
 
 

回复

92

帖子

0

TA的资源

一粒金砂(初级)

7
 
请教shuiya :
   无中断时,该线程是被挂起的?
    如何实现,例如我现在有个外部中断,在中断来了后,马上实现读写,我的中断中利用了中断上下部分机制,上半部分为具体的读部分,在用户空间线程执行时,是一直组塞在read调用的,只有当中断来临后才马上进入上文进行读取,那这样不是一直阻塞在中断的上文了吗?
    请赐教!
    谢谢!
此帖出自Linux开发论坛
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

8
 
引用 2 楼 xiaogang2000 的回复:
谢谢shuiyan 的指教。

如果是“中断时被唤醒执行相应功能”这样的做法的话,那当下一个中断来了,而我还没有处理完上一个中断的数据,这种情况我该怎么办?

还有,一般情况下,中断处理双口ram收发数据的流程是怎样的?谢谢大家指导


在中断中不要做太多的事情,越简单越好,这个原则和单片机设计中是一致的。而中断线程才是真正进行中断处理的一段程序。

中断线程,其实已经不是中断程序了,和普通的线程都是同样的等级,会被系统任务调度管理的。在这里面做任何事都不会造成系统阻塞。

不过,正如你所担心的:一个未处理完,下一个来了怎么办?

首先,中断来了,是通知CPU可以做处理了(读写外部RAM),但是并不是说,CPU必须立即去处理。操作的主动权在CPU,中断标志位会被置位,直到中断线程完成一次处理,可以进行下一次处理。

然后,你算一下,以现在CPU的运算速度,到底有多少可能会发生这样的中断事件拥挤?当然,如果你的cpu是从端,对数据的处理没那么快,可能会碰到,不过中断的设计,本来就是为了防止数据处理不及时造成的数据丢失,只要不去处理,中断就一直悬而未决,而数据就一直保持着。这也是双口RAM的一个标准。
此帖出自Linux开发论坛
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

9
 
双口RAM是为了在两个CPU之间快速交换大量数据的。所以为了防止有误操作,有完善的机制进行保护。

一方获取了RAM的操作权,RAM就会自动产生一个BUSY信号,另一方就无法操作RAM了,直到有操作权的CPU结束此次操作,或者中途释放操作权。

这个就有点类似OS中的资源占用,互斥变量等等了。

在程序设计中,也是判断相应的状态,本方是否能获得RAM的操作权,若可以,就进行操作,若不行,则设好触发条件,将线程挂起睡眠,直到RAM被对方释放,触发“READY”条件,线程才会被唤醒并开始操作RAM。

至于读写RAM就是普通的总线操作了,应该不需要多说了。
此帖出自Linux开发论坛
 
 
 

回复

7815

帖子

57

TA的资源

裸片初长成(中级)

10
 

回复 楼主 majuncheng 的帖子

可以设置成非阻塞的吧?
此帖出自Linux开发论坛
 
个人签名

强者为尊,弱者,死无葬身之地

 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表