打印

为什么要学习ucos

[复制链接]
楼主: crazy2012
手机看帖
扫描二维码
随时随地手机跟帖
41
i55| | 2013-10-7 23:49 | 只看该作者 回帖奖励 |倒序浏览
NE5532呢?

使用特权

评论回复
42
crazy2012|  楼主 | 2013-10-8 08:23 | 只看该作者
i55 发表于 2013-10-7 23:41
100us的任务算个j8,5年前我开始学ucos的时候用72M的STM32跑33us的systick毫无压力,更何况任务切换跟sys ...

我用的是1块多的10几兆频率,单时钟周期8位机。

使用特权

评论回复
43
crazy2012|  楼主 | 2013-10-8 08:31 | 只看该作者
i55 发表于 2013-10-7 23:41
100us的任务算个j8,5年前我开始学ucos的时候用72M的STM32跑33us的systick毫无压力,更何况任务切换跟sys ...

更有恶心的是有时候会遇到300ns分辨率的时序。写程序都是汇编凑指令的。:L

使用特权

评论回复
44
雨落沉轩| | 2013-10-8 08:31 | 只看该作者
我也想知道用ucos2的企业多不多,不知道了学了用处大不大

使用特权

评论回复
45
shizaigaole| | 2013-10-8 08:53 | 只看该作者
用实时操作系统,好处两点:

1. 任务的可控性。任务的最大执行时间,可控。

2.健壮性。 由于操作系统参与调度,程序写的可以比较像上位机,操作次序的处理被淡化。
大量的任务通讯,同步,互斥的机制也保证了程序结构的简单性

使用特权

评论回复
46
chenbb8| | 2013-10-8 08:53 | 只看该作者
雨落沉轩 发表于 2013-10-8 08:31
我也想知道用ucos2的企业多不多,不知道了学了用处大不大

会UCOS证明了你有RTOS的基础~

使用特权

评论回复
评论
shizaigaole 2013-10-8 09:01 回复TA
从实用的角度来说,有研究UCOS的精力,不如做自己的一套驱动库,和常用程序框架。 因为恐怕90%的应用,UCOS之类不是必须的 
shizaigaole 2013-10-8 08:59 回复TA
主要是,大部分人有自己的一套方法,不用UCOS搞起来也很快 
shizaigaole 2013-10-8 08:59 回复TA
UCOS之类的要想用的合理,任务划分的合理,也要费一番脑筋。 程序不大的话,前后台是最方便的。 甚至有的大一点的程序,用前后台处理,一样方便  
47
m564522634| | 2013-10-8 09:43 | 只看该作者
NE5532 发表于 2013-10-7 20:38
“实时操作系统”这个名字本来就是误导人的,“实时”的含义是可以同时处理多个任务,但是每个任务都不能 ...

这个实现是困难了,10us的任务你就是裸机中断实现起来也麻烦了,定时器是可以开到10us但你的任务运行时间你能保证不超过10us吗,可能还要运行其他的任务。这种东西只能在时间误差请允许情况CPU尽量在规定时间内去运行这个任务,这个不管是uc/os还是前后台都一样。uc/os的实时性确实不是100%的能保证只能说对时间要求高的任务可以尽量去满足了,但他的稳定性和在大型程序中逻辑的简单性对于开发者来说还是有吸引力的

使用特权

评论回复
48
m564522634| | 2013-10-8 09:49 | 只看该作者
没有真正的实时,真正的实时只能通过中断来保证,这在哪里都一样。用不用uc/os是关键是有许多人做前后做多了有自己的一套快速的解决方法。用uc/os调起来的话可能更麻烦了这个看个人了有自己现成的肯定用现成的稳定的好。

使用特权

评论回复
49
NE5532| | 2013-10-8 11:16 | 只看该作者
i55 发表于 2013-10-7 23:14
"每10uS响应任务1次"——用神马MCU实现什么样的任务?讲给我听听让我也乐一乐。 ...

EPSON MU-110II针式打印机针头控制,用uCOS做一下看看,让我乐一乐呢。

使用特权

评论回复
50
i55| | 2013-10-8 13:19 | 只看该作者
crazy2012 发表于 2013-10-8 08:23
我用的是1块多的10几兆频率,单时钟周期8位机。

8位机就别考虑神马RTOS,老老实实玩你的前后台吧。

使用特权

评论回复
评论
NE5532 2013-10-8 13:24 回复TA
32位机也别见“机”就上OS,到需用时自需用。 
51
i55| | 2013-10-8 13:34 | 只看该作者
NE5532 发表于 2013-10-8 11:16
EPSON MU-110II针式打印机针头控制,用uCOS做一下看看,让我乐一乐呢。

打印针头控制无非是接收和处理外来数据、控制针头电磁铁两个任务么。如果用ucos实现,如果电磁铁任务太密集就搞一个独占的任务,处理完之前输出忙状态不接受外部数据,如果电磁铁任务能忙得过来就可以同时接收数据。你不用ucos不也要这么处理么?

使用特权

评论回复
52
i55| | 2013-10-8 13:51 | 只看该作者
32位单片机,本身就是给RTOS设计的,比如CM3的pendsv、svc中断、CONTROL寄存器,就是让你跑RTOS的,不去跑反而用自己用惯了的前后台还沾沾自喜,正应了那句学不会新把戏的老狗的那句英谚,You can't teach an old dog new tricks

使用特权

评论回复
评论
dong_abc 2013-10-8 19:48 回复TA
同意,systick这个名字的由来也说明这一点。 
53
NE5532| | 2013-10-8 14:24 | 只看该作者
i55 发表于 2013-10-8 13:34
打印针头控制无非是接收和处理外来数据、控制针头电磁铁两个任务么。如果用ucos实现,如果电磁铁任务太密 ...

要跑OS,还要做到能跟上这个速度,需要多快的MCU?另外Atmel用Mega8做的那个软USB,还够时间跑OS么?我不是反对OS,是反对“用了OS就永远不会回到前后台系统”这种谬论。

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
xiaoyuan_ly + 1 同意这个说法,不是拍马屁。
54
NE5532| | 2013-10-8 14:25 | 只看该作者
i55 发表于 2013-10-8 13:51
32位单片机,本身就是给RTOS设计的,比如CM3的pendsv、svc中断、CONTROL寄存器,就是让你跑RTOS的,不去跑 ...

可惜我们不是狗,我们是工程师,狗会玩的花样越多,越受宠。
但是同样的任务,我们用越多的花样完成,意味着更高的成本和更多的风险。

使用特权

评论回复
评分
参与人数 1威望 +4 收起 理由
xiaoyuan_ly + 4 高手一个,鉴定完毕!!!
55
xiaoyuan_ly| | 2013-10-8 15:48 | 只看该作者
本帖最后由 xiaoyuan_ly 于 2013-10-8 16:07 编辑
m564522634 发表于 2013-10-7 16:17
我正在跑,个人感觉uc/os跑好了不可能不想去写前后台的程序去了。前后台程序好像简单但是他的逻辑思维有要 ...

“而uc/os了他自己带了一个任务调度器,每个任务什么时候执行什么时候这个任务处于等待状态那么调度器就可以去执行其他的任务去了,大大减少了CPU的空转。” 那也是你自己去安排调度器该什么时候该切换任务,还是需要你去统筹的考虑各个任务的负荷,只不过任务间的耦合程度降低了。这样的结果是有代价的,那就是需要消耗CPU的一些资源,这些资源的消耗如果你认为值,那就使用操作系统了(利大于弊);如果你认为不值或者说当你的前后台都没办法满足你的任务负荷时,你说使用这个操作系统还有用吗,那不是再画蛇添足吗?! 在正确的时间内得到正确的结果--- 这和有没有操作系统没关系,和项目目标有关系。就如当你的前后台都没办法满足你的任务负荷时,这时就需要更高的处理速度来选型和满足,而不是选什么操作系统。当然,如果你配个G级或百G速度的CPU那就什么话不说了(至少我现在接触的项目都没有那样的要求),那就完全要去选用操作系统;这时的资源共享和高效使用才是主要矛盾了,你只不过需要考虑的是成本代价的要求了哦。

使用特权

评论回复
56
xiaoyuan_ly| | 2013-10-8 15:55 | 只看该作者
i55 发表于 2013-10-8 13:51
32位单片机,本身就是给RTOS设计的,比如CM3的pendsv、svc中断、CONTROL寄存器,就是让你跑RTOS的,不去跑 ...

这话说的有点过了,不过从某种程度也反映出,你只能做个一般的工程师,而做不了总工级别的。 鉴定完毕。

使用特权

评论回复
57
xiaoyuan_ly| | 2013-10-8 16:57 | 只看该作者
KC_CEC 发表于 2013-10-5 12:56
我也一直没有用过UCOS这种大家常用的系统,一般来说一个合作式调度器加上状态机可以解决很多问题了 ...

操作系统本质上也是一个状态机,只是一个复杂状态机。

使用特权

评论回复
58
i55| | 2013-10-8 19:05 | 只看该作者
xiaoyuan_ly 发表于 2013-10-8 15:55
这话说的有点过了,不过从某种程度也反映出,你只能做个一般的工程师,而做不了总工级别的。 鉴定完毕。 ...

我能不能做总工是你这种东西能评价的吗?你算个什么东西。

使用特权

评论回复
评论
xiaoyuan_ly 2013-10-8 20:48 回复TA
不好意思,这里向你道歉了!!! 当我没说好吧,谢谢!!! 
59
i55| | 2013-10-8 19:11 | 只看该作者
NE5532 发表于 2013-10-8 14:24
要跑OS,还要做到能跟上这个速度,需要多快的MCU?另外Atmel用Mega8做的那个软USB,还够时间跑OS么?我不 ...

跟你说32位单片机,你硬往8位上面扯。我一直反对在8位机上面跑RTOS,付出的代价太大(RTOS消耗的时间和空间都是8位机那点资源无法支撑的),完全是削足适履的行为。

明白了,这里都是一些只会玩8位单片机的菜鸟级别的。

使用特权

评论回复
60
dong_abc| | 2013-10-8 19:57 | 只看该作者
看看20楼的这个系统用前后台如何实现?不是很复杂的应用哦 @xiaoyuan_ly  @NE5532  @m564522634  @shizaigaole

系统中有2个事件:E1、E2,和一个共享设备。

紧急处理(中断)部分:
2个事件都必须在0.5ms内响应,执行时间都为0.1ms。

滞后处理(任务)部分:
E1必须在10ms内完成,实际处理时间最短为5ms。
E2必须在50ms内完成,实际处理时间最短为20ms。

两个事件的滞后处理部分,都需要独占访问共享设备,但占用时间很短,都只有0.5ms。

使用特权

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

本版积分规则