打印

ucosii操作系统是不是一定要用systick?

[复制链接]
3740|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hxiaomai|  楼主 | 2012-8-29 18:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
lelee007| | 2012-8-29 18:57 | 只看该作者
这个用来作任务调度的时间基准,在中断中进行任务切换,任务在这种情况下的切换是靠从中断返回时的弹栈完成的,你要用延迟来替代这个tick的话,这种时间片的任务调度策略你就不要指望用了

使用特权

评论回复
板凳
hxiaomai|  楼主 | 2012-8-29 21:30 | 只看该作者
多谢啦

使用特权

评论回复
地板
airwill| | 2012-8-29 21:58 | 只看该作者
并非必须. 但 SysTick 就是为了时间基准设计的, 非常适合 OS 提供时间基准.
所以大家不约而同地使用了它, 你非要用其他的定时器也是可以的.
但没有那必要非要换别的定时器

使用特权

评论回复
5
abin0415| | 2012-8-29 22:42 | 只看该作者
SysTick不难吧,估计LZ一天就搞定了,还可以有半天时间玩游戏。

使用特权

评论回复
6
zhangxu985| | 2012-9-4 14:07 | 只看该作者
4楼回答的很到位,另外,systick的设置很简单,看一下相关例程。

使用特权

评论回复
7
无帝老三| | 2016-11-17 15:35 | 只看该作者
airwill 发表于 2012-8-29 21:58
并非必须. 但 SysTick 就是为了时间基准设计的, 非常适合 OS 提供时间基准.
所以大家不约而同地使用了它,  ...

systick的时间设置为多少比较合适?有没有推荐的范围?

使用特权

评论回复
8
airwill| | 2016-11-17 20:29 | 只看该作者
推荐 1mS 到 10mS 之间, 当然如果任务数少一点, 还可以设置得更短些

使用特权

评论回复
9
nicholasldf| | 2016-11-22 10:06 | 只看该作者
如果不需要delay等延迟服务,无限时等待信号量、队列等,,,可以不用ostick,,要自己主动去放弃CPU,,但是很少人会这么去用,,,节拍只占用很少的CPU资源,,但是带来很多的方便。。。

使用特权

评论回复
10
xzp114| | 2016-12-21 10:56 | 只看该作者
其实你需要明白一个道理,uCOS的运行所谓的多任务,其实就是将CPU的单线时钟分割成一些小的时间片,而这个时间片则是uCOS实现多任务切换的最小时间单位,而这个时间片则是硬件cpu提供给uCOS系统的心跳时钟,置于这个时钟是由啥提供并不重要,可以用Timer,也可以是外部Eint,我现在用的就是外部给一个固定的1ms的时钟信号来触发我的cpu的外部中断,由这个中断信号来给ucos的心跳时钟!

使用特权

评论回复
11
范寿铭| | 2017-2-16 08:20 | 只看该作者
不用  用一个timer也可以,不过systick就是为时间片轮转而生

使用特权

评论回复
12
renxiaolin| | 2017-2-16 08:51 | 只看该作者
那其实你们忽略啦一个重要的问题,systick是在cpu内部的,其他定时器是在cpu核外部的,在中断上,systick的优先级也比所有定时器的高,
那systick天生就是为os的节拍设计的,可以说要上os,那么systick是系统时钟基本是确定的,举个例子,你要上个几十层的高楼,这个楼有电梯,那电梯的设计就是为啦上比较高的楼层,但你可以选择爬楼梯,也能到,就这样

使用特权

评论回复
13
hillchina| | 2017-2-16 09:40 | 只看该作者
http://pan.baidu.com/s/1pLTm2kb  ucosii机制,看完这个就明白了

使用特权

评论回复
14
renxiaolin| | 2017-2-16 15:27 | 只看该作者
hillchina 发表于 2017-2-16 09:40
http://pan.baidu.com/s/1pLTm2kb  ucosii机制,看完这个就明白了

那个我看啦,中间有几集要收费,不厚道

使用特权

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

本版积分规则

0

主题

16

帖子

0

粉丝