发新帖我要提问
12
返回列表
打印

嵌入式多任务实时内核 邀请您一起来实现

[复制链接]
楼主: JUROON
手机看帖
扫描二维码
随时随地手机跟帖
21
highgear| | 2009-4-15 01:56 | 只看该作者 回帖奖励 |倒序浏览

我也晕啊!居然被人说成“典型的脑残题“

小衲还准备了一个更复杂的方案,的确是脑残了。
关于走马灯,我不多说了,两个程序早就贴出了,装盲人没有意思。那玩意连mcu都不用,就能做出来,方案如下:
555,CD4060, 29F64
别再装盲人,也别因为你们不知道原理就胡乱诬蔑。
 

http://www.21icbbs.com/club/bbs/list.asp?boardid=11&page=1&t=3302320&tp=21icbbs%u6C34%u5E73%u771F%u7684%u5F88%u4F4E%uFF0C%u6CA1%u6709%u9AD8%u624B%uFF1F%u82E5%u5982%u6B64%uFF0C%u4E0D%u5982%u5173%u4E86
相关链接:http://www.21icbbs.com/club/bbs/list.asp?boardid=11&page=1&t=3302320&tp=21icbbs%u6C34%u5E73%u771F%u7684%u5F88%u4F4E%uFF0C%u6CA1%u6709%u9AD8%u624B%uFF1F%u82E5%u5982%u6B64%uFF0C%u4E0D%u5982%u5173%u4E86

使用特权

评论回复
22
冷漠| | 2009-4-15 10:36 | 只看该作者

highgear果然高手啊。

21IC仅此一位能解此题。看来我这1,000元是输定了。

还是18楼圈圈清醒:
“无聊。连续2.8s运行的任务不被任何打断,还要保持0.5s的任务运行 

任何单CPU的系统都做不到,windows做不到,linux也做不到。”

圈圈就看懂了“连续运行的独立不相关任务”的意思,两任务互不相关,highgear 凭什么把它们分割成多个小片?!装聪明,所长这么教你的?

根本无解的题目,highgear在那装腔作势“我能解,以此为证....”贻笑大方。

他比圈圈还厉害?比xwj还厉害!比hotpower还厉害?

21IC顶级高手啊。当年没一个人写出裸奔程序,没想到还有一个highgear高手深藏不露,一年半以后才冒出来:“21IC都是笨蛋,你们不会把独立不相关的任务分割成碎片吗?”

“21IC高手都是废物,连这都想不到,关门得了。”

这是哪个精神病院跑出来的?
 
 

使用特权

评论回复
23
冷漠| | 2009-4-15 11:03 | 只看该作者

highgear果然高手啊。

“关于走马灯,我不多说了,两个程序早就贴出了,装盲人没有意思。那玩意连mcu都不用,就能做出来,方案如下:
555,CD4060, 29F64
别再装盲人,也别因为你们不知道原理就胡乱诬蔑。”
******************************************************************

高啊。  别人的走马灯程序讨论的是如何8路LED以不同的频率和花样“并发”运行、闪烁的问题。

highgear:“我会!那玩意连mcu都不用,就能做出来,方案如下:555,CD4060, 29F64。 别再装盲人,也别因为你们不知道原理就胡乱诬蔑。”

高!实在是高!
研究什么OS多任务“并发”运行,玩个走马灯用555就行了呗,菜鸟都会。要你们高手有什么用!

两任务并发有什么难?把F05、F28分割成碎片不就完了。嗨,真是14亿人只有highgear一人想到了。

到最后,研究OS两任务如何并发执行的1952出国研究去了,而highgear还在讲习所看大门玩555。





使用特权

评论回复
24
juroon| | 2009-4-17 13:25 | 只看该作者

冷漠的问题想说明什么呢?

分时执行任务很简单,有没有os都可以,连中断也可以不用。

有种程序设计方法是使用状态机,在不用os时一般通过它来实现分时。
mainLoop()
{
    proc1();
    proc2();
    proc3();
    ……
}

main()
{
    initial();
    for(;;){
        mainLoop();
    }
}
如果不知道状态机算我白说。
每个处理过程不等带任何资源,只有条件合适时才做处理然后进入下一个状态并等待再次被调用。这种设计方法对程序员的逻辑水平要求非常高,维护也比较困难。
之前做过一个产品就是按这种方法实现的,包括DVB协议,GUI,及其他的一些处理,是一个带有网络下载功能的引导程序。

另外,
我最初提问的意图是看看各位用os的,真理解os吗?
知道什么叫优先级翻转吗?
知道任务状态机吗?
知道阻塞和唤醒的机制吗?
当你调用同步api时,知道它每个参数是干什么的,怎样设置符合你设计的要求吗?

不管东西如何,我在动手做事情。可能各位觉得干这玩意就是没事找事,可是我自己高兴,无论是反对或者意见我都会考虑,也不试图把我自己的想法强加给谁。
但是,如果那位能够真正看过这“玩意”,交流才更有意义。

使用特权

评论回复
25
inter_zhou| | 2009-4-17 14:59 | 只看该作者

做技术前,先做人!

使用特权

评论回复
26
学生D| | 2009-4-17 15:25 | 只看该作者

丁立星朋友麻烦看清题目。

这道题的答案没那么简单,如若你想的状态机,别人早做出来了。别人并不是都不如你,什么都不懂。你可以问一下HOTpower,他对这道题的看法。如若太简单,就不会写到国际教材上了。
您也打算写一本国际教材?佩服。

至少应该先计算一下,这道题目要求是可调度的吗?计算公式知道吧?

并不是什么任务要求都可以上来就解,就状态机什么的。不可调度的多任务系统根本无解,您还花时间?


一道题终结拥OS与反OS之争 

这是一个实际应用的例子。实现目标:

1、用单CPU做一个精确的时钟。
2、以此时钟为基准,每秒钟运行一次一个500ms开销的任务,设其为F05()。
3、每分钟到达时,运行一次另一个独立任务,运行开销2.8秒,设其为F28()。


要求:2任务独立不相关,运行时间连续受限。

叙述一下这个题目的意思,当每分钟到达时,任务F282运行,这段时间软件耗费2.8秒,这样时钟的秒位任务F05肯定要丢数。怎么解决?

使用特权

评论回复
27
juroon| | 2009-4-20 13:02 | 只看该作者

re 学生D 朋友

冷漠的题目我觉得大概还是理解的。

简单说一下思路:
1、初始化的时候设置好Timer,并提供一个读取time的接口。此timer相当于一个wallclock。
   完成其他初始化工作。
   之后进入循环。
2、任务一:
    状态1,记录wallclock保存在一个变量中然后进入状态2
    状态2,比较wallclock与记录时间的差,如果达到设定时间进入状态3,否则继续;
    状态3,把任务拆成多个子步(我不知道这个任务是什么,怎么分布说不清)
    ……
    返回状态1.
3、任务二:
    和任务一类似。
4、还用一些辅助的:
如uart、spi、i2c、adc等驱动,都采用类似的方法。

可能说的不是很清楚,大概的意思意思吧。

我觉得争论用不用os真的没有什么意义。自己有手段达到自己的目标就好了,技术上的整理往往没有结果,因为双方可能都对而不是一正一反这么简单。

我上这发贴子,不是想挑起争论。是希望能够认识一些对rtos有兴趣,又喜欢钻研的朋友。对一个样例的研究肯定可以帮助我们提高,至于这个样例是JDSoE还是ucOS或者什么其他的反而无所谓。

一群人总比一个人更有想法。
一群人总比一个人能做更多的事。


使用特权

评论回复
28
学生D| | 2009-4-20 20:10 | 只看该作者

马上就可以看出丁立星的7年研究OS的深厚功力。向你学习了

“叙述一下这个题目的意思,当每分钟到达时,任务F282运行,这段时间软件耗费2.8秒,这样时钟的秒位任务F05肯定要丢数。怎么解决?”
*******************************************************************
希望能抓住主题。
“怎样去解决互斥任务F28连续运行时,F05的丢数问题。”很一般的OS问题。

您是来交OS朋友的,不是来找状态机同僚的。对吧?没什么,随便问问而已。

一道题看来真是一道好题,它能马上看出一个可裁剪的OS的功能。


when(wait(TIME,1)
{
F05();
}

when(wait(TIME,60)
{
F28();
}

所有互斥,信号问题,OS都隐含解决了,不用编程员考虑。(希望LZ的操作系统有这些基本功能。)


使用特权

评论回复
29
mohanwei| | 2009-4-20 20:26 | 只看该作者

不管有意无意,这帮人又糟蹋了楼主的好贴了

不管任何时代,探索精神都是不可或缺的,“老外已有”不是遮羞布,中国吃“造不如买,买不如租”的亏还少么?自己做不了,就一边凉快去,不要在旁边对主动探索的同胞鸹噪……

按照他们的理论,那个用74数字电路搭了一个CPU的老外岂不是要被口水淹死了?可惜恰恰相反,都“老外就是牛……”,就没人去讽刺老外“大学数电课上的东东”“随便拿个FPGA调调IP都做出来了”……

我力挺楼主。

使用特权

评论回复
30
McuPlayer| | 2009-4-20 20:35 | 只看该作者

首先声明,我支持楼主

楼主原意用自己的努力为Open source社区做贡献,是我所钦佩的,虽然我没有那么多的经历和能力去做。

关于挺OS和反OS之争,不觉得很幼稚吗?
合适的就是好的,我在不同的项目中分别有用OS,不用OS,用自家的准OS情况。

使用特权

评论回复
31
McuPlayer| | 2009-4-20 20:44 | 只看该作者

我也经常去sourceforge和opencores

我至少五年了从这些open source社区学到过很多东西,我一直怀着感恩的心去login到社区。

“对Open Source社区的贡献,中国甚至小于越南”听到这句话的时候,心里真不是滋味。
但Open Source社区华人的声音,很多是旅洋的和台湾的,也是不争的事实。

真不想再听到这些没有意义的争论,继续支持楼主。

使用特权

评论回复
32
McuPlayer| | 2009-4-20 20:54 | 只看该作者

建议楼主改用7zip压缩

因为WinRAR是商业软件,是有License的,国外很多OpenSource的工程师不若我们灵活,可能会无法解压。

使用特权

评论回复
33
学生D| | 2009-4-20 21:23 | 只看该作者

支持楼主:写一篇中国人的OS。

写成书出版才好。

使用特权

评论回复
34
highgear| | 2009-4-20 22:35 | 只看该作者

只顾着鄙视wxj1952的马甲冷漠,学生D,竟然忘了顶楼主

罪过,罪过。

我做过os内核,深知做一个os之不易,对于丁兄的os,无论水平高低,能否推广,一颗勇于探索之心,跃然纸上,令人赞服,特此顶之!!!

同时,丁兄的用状态机“把任务拆成多个子步“,这是实践得出的真知,仅凭着一点,就可以看出丁兄是一个高手,再次顶之!!!

我不反os,我所反对的是在低档的mcu上贬低裸奔,特别是一些自以为看了一些书,而毫无实际经验夸夸其谈的井蛙。

关于学生D等言论,还好他们知趣,把尖酸刻薄过激言论改了,丁兄就不必介怀了。


使用特权

评论回复
35
juroon| | 2009-4-21 12:01 | 只看该作者

谢谢各位的支持

如题,感谢的话就不在重复了。:)

我感觉这个版面是21ic中最活跃的一个。关于技术的讨论是最多的。

各位都是有水平的,如果能够平和一些对其他人,在此游走时自己的心情也会更好的。毕竟大家是因为有相类似的喜好才聚到本版面的。

另外,我因为工作原因上网非常非常不方便,跟各位交流的机会比较少。

我想,按照上面朋友的建议,后面一段时间写一些文档,使用开源的压缩包。

使用特权

评论回复
36
machunshui| | 2009-4-21 12:27 | 只看该作者

支持楼主实干

支持楼主实干,

讨厌某些人,

尽是嘴上功夫

使用特权

评论回复
37
123jj| | 2010-10-4 07:21 | 只看该作者
LZ实在,支持楼主实干!

《一道题终结OS非OS之争》?
实在看不出争什么?非OS系统解决不了的,OS系统当然也解决不了,怎么能 终结OS非OS之争?争什么?
不过现在的双核或多核MPU能解决,连最便宜的二块多钱的LS2051单片机也能解决,分二道程序各自运行互不相关的二个程序,小菜一碟。 :lol

使用特权

评论回复
38
aihe| | 2010-10-4 21:04 | 只看该作者
支持楼主
有那些是非之争还不如多花些时间研究一下对方为什么要这样做
任何东西都有好处和坏处,事物总有两个面
还有希望大家文明用语,现在上海都是说文明世博,我们也文明论坛:lol

使用特权

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

本版积分规则