打印
[uCOS/RTOS]

UCOS中断时系统时钟到底走不走

[复制链接]
2113|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ddllxxrr|  楼主 | 2017-1-16 13:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这两天这个问题一直困咬着我。使我总想不明白。我的问题是UCOS一进入中断对吧,我这个中断我一但超过了系统时钟,比如10MS,那么系统时钟还走不走,不走应该对吧,那么,UCOS的心脏是不是就停止跳动了,这时我从中断返回,它又自动跳对么?????

相关帖子

沙发
feelhyq| | 2017-1-16 14:13 | 只看该作者
系统时钟是一直在走的,我们自己做基于cortex-M芯片的soc,通过FPGA仿真可以看得到。虽然另外一个中断服务程序超过了10ms,系统时钟只是每隔10ms去向CPU申请一次中断,CPU去仲裁先执行哪个中断,不管CPU的仲裁结果如何,不影响系统时钟的运行。系统时钟模块只知道计数器计数到0了之后置起请求中断标志位,然后重装,继续执行。

使用特权

评论回复
板凳
ddllxxrr|  楼主 | 2017-1-16 14:35 | 只看该作者
feelhyq 发表于 2017-1-16 14:13
系统时钟是一直在走的,我们自己做基于cortex-M芯片的soc,通过FPGA仿真可以看得到。虽然另外一个中断服务 ...

谢谢大神回答,分给你了

使用特权

评论回复
地板
feelhyq| | 2017-1-16 14:37 | 只看该作者
太客气了,谢谢你的20分

使用特权

评论回复
5
ddllxxrr|  楼主 | 2017-1-16 14:38 | 只看该作者
feelhyq 发表于 2017-1-16 14:37
太客气了,谢谢你的20分

那啥,明天结,好像当天,就是结不了,放心,我忘不了

使用特权

评论回复
6
feelhyq| | 2017-1-16 14:40 | 只看该作者
不要紧,我还真没想过赚取版主的积分呢,只是正好看到了就回复了下

使用特权

评论回复
7
ddllxxrr|  楼主 | 2017-1-16 14:42 | 只看该作者
feelhyq 发表于 2017-1-16 14:40
不要紧,我还真没想过赚取版主的积分呢,只是正好看到了就回复了下

呵呵

使用特权

评论回复
8
john_lee| | 2017-1-16 16:12 | 只看该作者
关键是看“丢不丢中断”!
在一般的CPU中,一个中断的“中断标志”只有1 bit,就是说,该标志只能记住“无”或“有”两种情况,而无法记住“累积”的中断次数。如果在该中断标志已置位的情况下,CPU又侦测到符合中断的条件,那么从逻辑上看,新的中断就“丢失”了。
举个例:A、B两个中断,A中断的优先级高于B中断,A中断的处理时间内发生了“两次”B中断,当A中断返回后,CPU仅仅会执行“一次”B中断服务,很明显,B中断丢失了一次。
对于绝大多数系统来说,丢失中断都是有负面影响的,有的还是不可接受的,象时钟节拍之类的,丢失了中断,计数就少了,看起来时间就慢了。

使用特权

评论回复
9
whtwhtw| | 2017-1-16 16:49 | 只看该作者
本帖最后由 whtwhtw 于 2017-1-16 16:50 编辑

这就要看中断优先级了,中断函数优先级低于系统时钟的都不影响时钟中断,高于系统时钟的中断就会出现楼上的情况
所以中断函数一般要求简洁,不要长时间运行。

使用特权

评论回复
10
hgjinwei| | 2017-1-16 17:04 | 只看该作者
还是想想怎么把你那超过心跳周期的中断优化掉吧,

使用特权

评论回复
11
皈依| | 2017-1-16 21:14 | 只看该作者
楼主可以好好的了解一下UCOS的中断,用户可使用的中断优先级是从3级开始的,那么还有0,1,2级呢~看看就了解了 嘿嘿~

使用特权

评论回复
12
徕泽| | 2017-1-17 09:10 | 只看该作者
学习了!

使用特权

评论回复
13
wsnsyy| | 2017-1-17 09:27 | 只看该作者
心跳停了能活?

使用特权

评论回复
14
oayzw| | 2017-1-17 12:52 | 只看该作者
明显找系统的茶

使用特权

评论回复
评论
g169321 2017-1-20 09:34 回复TA
你这个茶毛 
15
liuxiang5119| | 2017-1-19 11:38 | 只看该作者
皈依 发表于 2017-1-16 21:14
楼主可以好好的了解一下UCOS的中断,用户可使用的中断优先级是从3级开始的,那么还有0,1,2级呢~看看就了 ...

正解   ucos是有说明的  用户中断优先级从3开始  用户尽量不要使用0 1 2  
所以时钟走不走  看你打不打断时钟的节拍了   也就是用户中断优先级不要超过时钟节拍的优先级

使用特权

评论回复
16
feelhyq| | 2017-1-19 15:18 | 只看该作者
liuxiang5119 发表于 2017-1-19 11:38
正解   ucos是有说明的  用户中断优先级从3开始  用户尽量不要使用0 1 2  
所以时钟走不走  看你打不打断 ...

时钟走不走跟有没有中断,与用户中断优先级是否超过时钟节拍优先级没有任何的关系,即便系统节拍中断为最低优先级的中断,也不会影响其准确的运行与计时。即,一旦开启了系统时钟节拍,只要不关掉,它会永远的运行下去,一个系统时钟节拍一次。

使用特权

评论回复
17
feelhyq| | 2017-1-19 15:19 | 只看该作者
皈依 发表于 2017-1-16 21:14
楼主可以好好的了解一下UCOS的中断,用户可使用的中断优先级是从3级开始的,那么还有0,1,2级呢~看看就了 ...

时钟走不走跟有没有中断,与用户中断优先级是否超过时钟节拍优先级没有任何的关系,即便系统节拍中断为最低优先级的中断,也不会影响其准确的运行与计时。即,一旦开启了系统时钟节拍,只要不关掉,它会永远的运行下去,一个系统时钟节拍一次

使用特权

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

本版积分规则

个人签名:http://shop34182318.taobao.com/ http://shop562064536.taobao.com

2399

主题

6963

帖子

68

粉丝