打印

【讨论】“嵌入式裸奔”、“嵌入式OS”、“OS”各适合什么

[复制链接]
楼主: 农民讲习所
手机看帖
扫描二维码
随时随地手机跟帖
41
程序匠人| | 2007-12-6 19:37 | 只看该作者 回帖奖励 |倒序浏览

看所长的程序很眼熟,和匠人的风格有点类似

使用特权

评论回复
42
weimd| | 2007-12-6 19:50 | 只看该作者

占位听课

使用特权

评论回复
43
forthlab| | 2007-12-6 19:51 | 只看该作者

嗯,大家都是这样的,那么

用OS有啥区别?
能编程简单些么?bug少点么?
我最关心这个.

使用特权

评论回复
44
圆圈| | 2007-12-6 19:53 | 只看该作者

晕,所长不要误导后辈阿

有OS和没有OS差别还是很大的~~~  我不知道所长到底有没真正使用过OS,反正我是从单片机走过来的,两种风格都接触过用过的~~~

使用特权

评论回复
45
xwj| | 2007-12-6 20:10 | 只看该作者

当然,对于复杂应用.多线程的应用.有大型协议的应用OS就有优

用OS的最大好处就是很多复杂却通用的东西别人有做好现成的,
比如TCPIP、USB、文件系统、图形界面等,这些要是都靠自己去做的话那项目就不知道何年何月才能完成了,而且非得烦死不可:-)

再就是对于动态分配多线程的系统,使用OS也是必须的
而且,对于复杂的项目,以OS作为基础来把系统切划成互不相干的模块交给多人同步开发,也是可以明显加速项目进展的,更不会把项目的成败压在一个“高手”的身上。


总之,随着硬件性能、资源的日益丰富,随着开源的讨论日益普遍、资源日益增多,采用一个通用的硬件平台和一个通用(广泛使用)的核心还是有很多好处的;
但是,对于单片机这样的资源紧缺的小系统,一味的追求OS完全是没有必要的,也是不切实际的,稍微有点水平的程序员完全可以把裸奔的系统做的比OS下的更好、更稳定!

使用特权

评论回复
46
ahwei| | 2007-12-6 21:26 | 只看该作者

用不用os根据项目需求定,关键是用os的思想来写裸奔程序

使用特权

评论回复
47
平常人| | 2007-12-6 21:39 | 只看该作者

OS, SO, SOS......

OS? = Operating System
SO? So what?
SOS = ??

使用特权

评论回复
48
xwj| | 2007-12-6 21:42 | 只看该作者

救命啊!!!

使用特权

评论回复
49
ketp| | 2007-12-6 21:52 | 只看该作者

关于状态机

当状态比较复杂,特别是很多状态只是延时的时候,状态机就比较麻烦了,为了每一个延时都要产生一个状态,繁琐且代码难看。
但这个在os里也没法解决(使用os时,我在任务里一般也使用状态机)。有时候如果影响很小时,就经常偷懒直接调用os的延时函数了。

使用特权

评论回复
50
jack.king| | 2007-12-6 22:04 | 只看该作者

听课

对了。前辈们.我想问下什么是状态机我没有用过啊?

使用特权

评论回复
51
IceAge| | 2007-12-6 22:08 | 只看该作者

赞一个。这才是严肃认真的态度

比“终结“和“苹果与橙子哪一个好吃“更有意义。

os 的重要性与程序的复杂度成正比。
os 与 裸奔 的应用我看可以先划分 3 个地带 
1)裸奔 only 地带
2) 过度带
3) os only 地带

1,3 区应该不会有太多争议吧。资源紧缺型的低端应用(低端的定义应该很明确),用 os 纯属找抽。高端应用(高端的定义得先确定)还要裸奔纯属有病。那么,有争议的当属过度带,到底 裸奔 还是 全副武装,或者 半裸,抑或是皇帝的新装,这可是大有讲究的。



使用特权

评论回复
52
sz_kd| | 2007-12-6 22:13 | 只看该作者

同意不死等

同意不死等,用状态去决定程序的流程

使用特权

评论回复
53
IceAge| | 2007-12-6 22:22 | 只看该作者

我先说说我个人对 “半裸" 的看法

多数 mcu 应用场合,没有复杂的算法,以 io 控制形式为主。用 os 非常勉强,且不说资源消耗,就是学习时间,裸奔已经完成。但是不是说 os 没有一点可取之处,只要理解 os 的思想,可以做出一个紧凑的“调度“内核。这个调度不是 *动态* 的,因而可以省掉大量的内存开销,每个任务得自己切片,以使 时间片 可以轮转。这种 半裸 方法,我称之为:中断驱动多任务。

使用特权

评论回复
54
汽车电子| | 2007-12-6 22:55 | 只看该作者

便宜的消费类电子,几乎都是裸奔的

    一般对实时性要求不是很苛刻,空间也充裕的话,都跑OS

使用特权

评论回复
55
mapleyang| | 2007-12-6 23:39 | 只看该作者

re

程序控制简单,CPU性能低,开发工作量小些的裸奔
开发工作量大,需要多人合作,cpu性能又足够好的用嵌入式os

这么分应该没啥争议吧

本来就是用在不同场合的东西,非要分哪一个好干啥啊

所长的主题比那个1952的有意义多了

使用特权

评论回复
56
gouki_s| | 2007-12-7 08:59 | 只看该作者

所长大人容秉

所长大人,你有这工夫,为啥不把“放弃cpu”直接写成函数调用,也省得把每一个任务搞得支离破碎。

使用特权

评论回复
57
农民讲习所|  楼主 | 2007-12-7 10:07 | 只看该作者

嵌入式裸奔==优化过的半OS化

使用特权

评论回复
58
农民讲习所|  楼主 | 2007-12-7 10:09 | 只看该作者

回gouki_s

初学者的思维都是线性思维,所以用OS正好满足他们的要求。
菜鸟的死延时就是代表,而高年级的是用一把刀把死延时切成一片片的状态来对待。

使用特权

评论回复
59
gouki_s| | 2007-12-7 10:31 | 只看该作者

回所长大人

把死延时切成一块一块就是高年级拉,兴奋ing.........
所长大人,给你提个建议,也算造福一下我们这些初学者。
把你的裸奔写成一个协作式的os,不用抢占,也不用时间片轮转,任务主动放弃cpu(调用delay/wait函数时,或显式调用)。

使用特权

评论回复
60
hbicecream| | 2007-12-7 10:50 | 只看该作者

请问,所长

你这个结构能实现在低优先级任务正运行时,高优先级任务触发的及时响应吗?

使用特权

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

本版积分规则