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

[复制链接]
gooog 发表于 2007-12-8 11:56 | 显示全部楼层

裸奔和使用os的区别

裸奔就是自己为一个项目架构程序,哪怕你为了这个项目自己架构一套os,都应该叫做裸奔。

os就是使用商业化的os(或者开源os),这些os的代码都是事先经过测试的。其任何一行代码都可能经过了成千上万次检验。

个人看法。
hq_y 发表于 2007-12-8 12:00 | 显示全部楼层

在裸奔和OS之间,是一个逐渐变化的过程

在标准的前后台程序之间,开始慢慢有意无意的吸收OS的一些特征;
演变为了嵌入式裸奔~~~~~~~``

每一个人根据自己的嵌入对象(宿主)和行业特征、规模的不同,做出来的嵌入式裸奔风格不同,是完全可以理解的;

裸奔不是万能的,但是没有裸奔是万万不能的;
OS  不是万能的,但是没有OS  是万万不能的;
5_0_5 发表于 2007-12-8 13:20 | 显示全部楼层

没有裸奔就没有OS,没有OS裸奔也不好进行

汇编--C
裸奔--OS
...

if(意义==1)
{
  ...   //争论
}
else
  萝卜!=白菜;

俺的浅见:
        裸奔是行为
         OS是思想
没有裸奔就没有OS,没有OS裸奔也不好进行
yewuyi 发表于 2007-12-8 15:23 | 显示全部楼层

~~,自从俺知道所长想说什么为止

就发现其实根本不用争执了……


呵呵,其实都差不多,只是很多工程师根据自己经常做的项目做了自己认为的更好的优化,~~,没有什么本质区别。

呵呵,不过很佩服所长把代码封装成那样的本领,呵呵,俺写的太随意了……
hotpower 发表于 2007-12-8 15:25 | 显示全部楼层

所长想换人脑~~~

yewuyi 发表于 2007-12-8 17:07 | 显示全部楼层

所长以前说要写本书什么的……

后来就没了……

变成了一个BLOG,但基本上上面东西很少……


~~,似乎后来也没进行维护增加新东西?!
lau_jia 发表于 2007-12-8 22:20 | 显示全部楼层

我提倡裸奔

不过现如今想找这方面的工作,你不会os,面试你的人就会鄙视你,很多情况虽然我们的设计并不需要os,但是为了应付那些sb,你也没有办法。
bird777 发表于 2007-12-9 00:54 | 显示全部楼层

来点大实话.

OS是个趋势,它的思想在现代管理活动中到处可以看见.

农民:"嵌入式裸奔从宏观上看,是一个巨大的平均器,将处理事件平均化,谁冒泡就敲谁。"
其实仔细看看,OS也一样的.

1.不要在乎任务切换花费的几十个US.(当然任务也不要切的太细了.任务越多,说明这个系统越赚钱,否则...)
2.不要在乎临界状态对中断的响应的影响.(移植好了,实话说不用去计较)
3.不论是裸奔还是跑OS,"缓冲"是取得胜利的法宝之一.有时候,会同时冒出好几个泡泡,在飞到天花板上之前,消灭它们,就是好系统.
4.用上了OS,感觉没有裸奔爽,这个是不可能的,一定**认为不爽,那么就在task0(下),一路奔到底也可以,
时拍当然不能取消,它也属于农民说得"弱实时部分",这个开销一定要的.这样就和裸奔一个样.
5.一定要学习好农民的嵌入式裸奔思想,在今后上操作系统时,对任务的划分和内部上的处理分析检讨上不会举棋不定现象.

HOTPOWER的框架分析过,他看待任务大概只有两种:1周期性任务,2非周期性任务(事件触发的).周期性的任务全部交给定时器中断服务去做.非周期性的分析后,一些纳入周期性任务对待,一些用硬中断驱动.HOTPOWER的框架做小系统非常经典,因此建议小系统学习HOTPOWER,还比较省电.不要上OS了.




task0(){//弱实时部分/后台/模块怎么看都可以. 
    OSSemPend(X0_SEM, 8, &err);//case STATUS0: //if(EVENT0) //XX0_MainLoop()
}
task1(){
    OSSemPend(X1_SEM, 8, &err);//case STATUS1: //if(EVENT1) //XX1_MainLoop()
}
task2(){
    OSSemPend(X2_SEM, 8, &err);//case STATUS2: //if(EVENT2) //XX2_MainLoop()
}
task3(){
    OSSemPend(X3_SEM, 8, &err);//case STATUS3: //if(EVENT3) //XX3_MainLoop()
}
task4(){
    OSSemPend(X4_SEM, 8, &err);//case STATUS4: //if(EVENT4) //XX4_MainLoop()
}
task5(){
    OSSemPend(X5_SEM, 8, &err);//case STATUS5: //if(EVENT5) //XX5_MainLoop()
}
task6(){
    OSSemPend(X6_SEM, 8, &err);//case STATUS6: //if(EVENT6) //XX6_MainLoop()
}
task7(){
    OSSemPend(X7_SEM, 8, &err);//case STATUS7: //if(EVENT7) //XX7_MainLoop()
}

idel(){  // 真正后台
    ;//看个人发挥了.
}

一个样子的,缓冲最要紧.!!
sodwell 发表于 2007-12-9 09:03 | 显示全部楼层

re

我的观点就是能把项目做出来就行了,管他什么奔,哈哈
老狼 发表于 2007-12-9 11:42 | 显示全部楼层

我两个都赞同

我现在做的设备,基本上都是两个ARM,一个裸奔,作数据采集等实时性处理,另一个做人机界面,没办法,现在设备不上彩屏,卖不上好价钱!基本上都是320*240以上的彩屏,USB和网络接口也是必备的,在外加扩展卡,这部分用WINCE就很简单了,如果裸奔,编程序太浪费时间了。但是作数据采集等实时性处理的那个CPU,如果上了操作系统,那就是找死了,啥也干不了了!

machunshui 发表于 2007-12-9 14:44 | 显示全部楼层

无聊

无聊
yzqok 发表于 2007-12-11 14:07 | 显示全部楼层

俺路过...

hs426w 发表于 2007-12-13 14:17 | 显示全部楼层

学习~~

学习~~
LastNew 发表于 2007-12-13 18:13 | 显示全部楼层

如果所长的嵌入式裸奔改为自动分配内存会是什么样子了?

wangharry 发表于 2007-12-13 22:32 | 显示全部楼层
55953797 发表于 2007-12-14 14:53 | 显示全部楼层

大有受益!

bob.xue 发表于 2007-12-14 15:53 | 显示全部楼层

00太有才了~~~~~~

“就是用OS时任务是运行时由OS分片,而裸奔任务则是在运行之前由程序员分片。”

让人回味无穷哦~~~ 恐怕这就是 裸奔和OS的之间的精髓吧。
lh_gliet 发表于 2007-12-16 16:39 | 显示全部楼层

仔细看了

纯粹无聊
都一大把年纪的人了还争来争去干什么
gooog 发表于 2007-12-16 18:57 | 显示全部楼层

如果你感觉自己分片不累,就自己分喽

用过os以后,总想找有os系统的开发环境。
省事多了。
aihe 发表于 2007-12-16 21:03 | 显示全部楼层

每个人的境遇不一样

我支持所长的东西,让我们大家学习
但是有一点,我看法不一样,所有的人起点不一样
毕竟如果要深入了解,非得从ASM开始,基础的东西越了解,编程越好
不过如果,大家全在ASM里呆着,都没进步是吧
我的看法是,锄头是用来翻屋前屋后的,拖拉机是用来翻大片田地的,个有个的用处
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部