myfaith 发表于 2007-12-3 19:58

LZ只会唬人...

iC921 发表于 2007-12-3 21:09

人越多,楼越空

程序匠人 发表于 2007-12-3 21:34

刚把这帖推荐到首页,进来一看,有点失望

原来想补补OS的课,结果遇到lz大忽悠了。<br /><br />这道题如果OS能做到,匠人也能裸奔做到,连c也不用,就用汇编(而且也许可以用最便宜的4位机芯片做到)。

程序匠人 发表于 2007-12-3 21:40

补充一个观点

os比裸奔高级,但是不代表用OS的人比裸奔的人高级;<br />c比asm高级,但是不代表用C的人比用ASM的人高级;<br />电子CAD比手工绘图高级,但是不代表用CAD的人比手工绘图的人高级;<br />傻瓜相机比非傻瓜相机高级,但是不代表用傻瓜相机的人比用非傻瓜相机的人摄影技术更高。<br /><br />有时,情况可能正好相反。<br /><br />不要把新技术和高技术当作炫耀的本钱。我们只是有幸站在了巨人的肩膀上而已。<br /><br />(修改原因:漏字)<br />

xwj 发表于 2007-12-3 21:46

呵呵,匠人姐姐好久没来了,咋一来就扔砖头呢?

https://bbs.21ic.com/upfiles/img/200712/200712321466793.gif

程序匠人 发表于 2007-12-3 21:54

呵呵,强帖总是要留个名嘛

混个脸熟。<br />

拾梦人 发表于 2007-12-3 22:03

应用级的例子不能提高国人地位

如题<br /><br />如果我出一个军工的题目,比如:不限制使用的51CPU数量,给你一个信号源,你来做一个挑战极限采样速率、且稳定可靠的系统。这时候OS只会成为障碍,很简单,高频才能上OS,而高频又意味着硬件不可靠,在恶劣环境下,多核低频才是好的设计。而且这样的设计必须借助OS的理论才能实现,不光是一个片子内部的OS理论,还有集群理论,再好的单机OS都无能为力。<br /><br />还是那句话,如果你甘心做一辈子低端应用,就拒绝裸奔吧。出题是没意义的。。。

hq_y 发表于 2007-12-3 22:04

匠人媚媚还需要混个脸熟吗?呵呵~~~~~~~~

os比裸奔高级,但是不代表用OS的人比裸奔的人高级;<br /><br />同意;<br /><br />c比asm高级,但是不代表用C的人比用ASM的人高级;<br /><br />犹豫~~~~~~~<br /><br />电子CAD比手工绘图高级,但是不代表用CAD的人比手工绘图的人高级;<br /><br />不同意~~~~~~~`<br /><br />傻瓜相机比非傻瓜相机高级,<br /><br />好像现在都是数码相机了;<br />分成专业型数码相机和业余数码相机;<br /><br /><br />但是不代表用傻瓜相机的人比用非傻瓜相机的人摄影技术更高。<br /><br />同意~~~~~~~`<br /><br />

wxj1952 发表于 2007-12-3 22:05

哥们,才三天。

多留些日子才好。(多好的应聘机会....)题目不复杂,没有故意刁难似地来个一二十个任务让人裸奔/OS。<br /><br />好像听谁说“此题无解,现实中根本不可能有2.8秒长的任务。出题不合理!”<br /><br />我刚才想了一下:时间坐标是相对的,如果把题目中的时间坐标缩小100倍,也就是F05运行5ms,F07x运行7ms/或者不分割连续运行28ms,时钟变秒表,合理了?“有解”了?这样的程序解有什么不一样?<br />&nbsp;&nbsp;&nbsp;&nbsp;马上又有人要站出来说我错了......<br /><br /><br />贴出答案后,不扔砖头,也把自己不同的答案贴出来,是真君子。非常赞同。<br />&nbsp;&nbsp;&nbsp;&nbsp;不过应该贴在我前面,好处是:也许有猎头通过此帖寻人才呢。<br /><br />&nbsp;&nbsp;&nbsp;

dai_weis 发表于 2007-12-3 22:05

150楼了,留个纪念

好不容易弄到的,呵呵,这么高的楼找些干货不容易,别无他意,学习一下OS和裸奔的思想,尽管我还停留在裸奔上面,不过实在是MCU的内存太小客户太抠,放不下OS只能大冷的天奔跑了。

IceAge 发表于 2007-12-3 22:10

我还是没看懂题目的意思

这与&nbsp;os&nbsp;或者没有&nbsp;os&nbsp;有什么关系?当然,如果有&nbsp;os,&nbsp;这道为&nbsp;os&nbsp;量身定做的题很简单,不过裸奔也不难。我不想写程序了,给出一点思路:<br /><br />假设只允许使用一个中断(两个这题就没有意义了),那么只要中断能重入即可。也就是说,只要保护好计时的&nbsp;500&nbsp;ms&nbsp;任务的现场,就能满足要求。对&nbsp;51,有一点小小的技巧,就是&nbsp;reti&nbsp;的处理,&nbsp;调用一次可以恢复中断以重入。<br /><br />Timer_Interrupt:<br />&nbsp;&nbsp;&nbsp;acall&nbsp;_reset_timer&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;开放中断,&nbsp;reset&nbsp;timer.&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;acall&nbsp;&nbsp;&nbsp;Task_500ms&nbsp;;调用&nbsp;计时任务<br />&nbsp;&nbsp;&nbsp;if&nbsp;(timeout(60))&nbsp;goto&nbsp;_task_700ms<br />&nbsp;&nbsp;&nbsp;ret<br /><br />_task_700ms<br />&nbsp;&nbsp;&nbsp;acall&nbsp;F071<br />&nbsp;&nbsp;&nbsp;....<br />&nbsp;&nbsp;&nbsp;acall&nbsp;F075<br />&nbsp;&nbsp;&nbsp;ret<br /><br />_reset_timer:<br />&nbsp;&nbsp;&nbsp;...<br />&nbsp;&nbsp;&nbsp;reti<br /><br />这里裸奔的关键之处是让&nbsp;F071&nbsp;等变成了&nbsp;背景&nbsp;程序,定时器的作用仅仅是启动他们,之后相当于&nbsp;定时中断&nbsp;只运行&nbsp;一个&nbsp;500ms&nbsp;的程序。如果认为&nbsp;500&nbsp;ms&nbsp;太长,可以用状态机原理把它分成若干时间片。<br /><br />不过,我个人认为:如果资源允许,os&nbsp;显然会比&nbsp;裸奔&nbsp;更好,尽管初期需要花费相当的苦工,但未来会事半功倍。<br /><br />

平常人 发表于 2007-12-3 22:11

LZ把时间坐标缩小100倍,是不是准备给自己找台阶下?

?????

iC921 发表于 2007-12-3 22:19

估计匠人看到我的142楼更失望?

看上去,这个问题太让人关心了。可惜没那个水平,俺算是目不识丁呢……闪

aihe 发表于 2007-12-3 22:30

楼主意思就是,分片执行嘛

分片执行不用OS也能做,说实话什么是OS我也不清楚<br />只知道每个程序只能运行若干时间<br />看楼主的意思好像每个函数都是独占运行<br />如果不是独占运行的话,网上大多数大虾都能做<br />如果是独占运行,在运行函数1~4时,函数5不知道怎么运行<br />如果在运行1~4时,可以不运行5时,我会考虑这样<br />既然你运行2.8秒固定,我以后补偿可以吧<br />再说我拿个外接时钟芯片,一分钟报警一次也可以吧,不算两个MCU吧<br />其实,我觉得与OS相干不大<br />我是学不成者,希望各位不要见笑

wxj1952 发表于 2007-12-3 22:59

看了144楼

农民周正龙用的什么照相机,让中国的高科技专家/顶尖级人才那么没面子。而且忽悠了全世界。

athlon64fx 发表于 2007-12-3 23:00

re:

无解就是无解,题本身都自相矛盾,还不承认。<br /><br />1、用单CPU做一个精确的时钟。<br />2、以此时钟为基准,每秒钟运行一次一个500ms开销的任务,设其为F05()。<br /><br />既然楼主把主帖改了,要改就改得完善一点嘛,一步到位,建议再改改,&nbsp;好帖出答案。

zusen 发表于 2007-12-3 23:46

呵呵,不能被打断~~

就是说不能用中断,,,<br />敢问楼主,用到中断就算不上裸跑了?、<br />你本身规则已经超出来裸跑的定义了<br /><br />就如OS里没有时钟节拍

mapleyang 发表于 2007-12-3 23:48

匠人是个mm?

咋可能呢?<br />为啥有人叫匠人姐姐,有人叫匠人mm的?<br />

IceAge 发表于 2007-12-4 01:35

不能被打断? os 能做到的,裸奔绝对也能做到

os&nbsp;的好处并不是体现在这样的地方,而是可以在搭建复杂的程序框架方面节省很多的精力。搂主的这个题目出的不好,不能很好的表达&nbsp;os&nbsp;的优势所在,不过,我想在一个论坛里,很难有一个题目能表达os&nbsp;的优势。<br /><br />不能被打断,也很简单,时钟任务夹在F071(),F072(),F073(),F074()之间既可。<br /><br />int&nbsp;task_state&nbsp;=&nbsp;0;<br />int&nbsp;timer&nbsp;=&nbsp;60;<br /><br />One_Second_Timer()&nbsp;<br />{<br />&nbsp;&nbsp;UpdateClock();<br />&nbsp;&nbsp;switch&nbsp;(task_state)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;0:&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Task_500ms();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(--timer&nbsp;==&nbsp;0)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;timer&nbsp;=&nbsp;60;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;task_state++;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;1:&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;F071();&nbsp;task_state++;&nbsp;break;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;2:&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;F072();&nbsp;task_state++;&nbsp;break;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;3:&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;F073();&nbsp;task_state++;&nbsp;break;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;4:&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;F074();&nbsp;task_state=0;&nbsp;break;<br />&nbsp;&nbsp;}<br />}<br />

IceAge 发表于 2007-12-4 01:39

timer = 60 应为 timer = 56

页: 1 2 3 4 5 6 7 [8] 9 10 11 12 13 14 15 16 17
查看完整版本: **lz说湖南人好斗,