教书育儿做科研分享 http://blog.sciencenet.cn/u/danfouer 以文会友,以理治学,文理交融,教学相长。

博文

2006SOPC竞赛工作备忘录

已有 3752 次阅读 2008-7-26 22:42 |系统分类:人物纪事| 学生竞赛

2006年4月27日至9月1日,我作为指导教师,和计算机科学学院的同学甲、同学乙,同学丙一起,共同代表中南民族大学参加了湖北省第一届ALTERA杯SOPC嵌入式设计大赛。

竞赛从4月27日至4月29日的培训开始,总共有将近七十个队参赛,分别来自湖北省数十所高校。台湾友晶公司提供每个参赛队一个DE2的开发板。应该说培训对后面的工作起到了一个“师傅领进门”的作用,只不过对于不同的学生境遇不同,有的进了大门,有的进了二门,有的则还在门外转悠,而且,转悠的是大多数。幸好,我们有同学甲——一个认为拿学位会耽误大好学习时光的“离经叛道”者,一个不适合现行教育体制的“酷爱学习”者。在参加培训以前,他已经自学掌握了FPGA的开发流程,并对在FPGA中设计CPU进行过探索。他的动手能力加上我的英文理解力,使我们在培训中进展顺利。而相对来说,同学乙的强项在硬件电路设计和制作,同学丙还是大二的学生,以前都没有接触过这方面的东西,我估计培训的的过程对他们来说:枯燥、漫长、而又难于理解。

培训完后4月30号我制作了一个进度表,当时的想法是让同学甲做NIOSII系统理解与UC/OS2移植,同学乙看懂DE2硬件资料并熟悉驱动程序,同学丙绘制DE2外围硬件原理图,五一之后作学习汇报——这是我读书时养成的习惯,项目组中的每个成员,人人是老师,人人是学生。只不过我这个真正的老师没有加入进去,因为,我五月十三结婚了。

等我结完婚回来,失败的气氛笼罩着全队——同学甲刚刚才配置好一个简单的NIOSII,同学乙找不着驱动程序在哪里,同学丙以为绘制电路就是把手册上的图搬到PROTEL中去,殊不知我的本意是让他掌握整体的硬件结构,每一个器件都希望他熟悉到管脚级,明白使用方法。如果只是搬图,还不如看手册上的。

新婚的男人本来就累些,如果再加上“迎评促建”的工作。好在我爱人的部队只放一周的婚假而她在筹备婚礼时已经修完。于是新婚第三天,她回部队单位,而我留在学校。我这时的工作是整理档案库中的试卷、实验报告和课程设计。发下去,收上来,就仿佛一把缺少几根龙骨的伞,打不全开,收不全拢。见老师就问试卷领了没,没全发下去时挨个打电话,没全收上来时再打一遍。说实话,打小我就爱整理书架,这回真是过足了瘾。只是,上面的三个孩子在做什么呢?

他们改变了我的计划,开始集体学习verlog语言,并告知我只有这样才有可能看懂DE2资料中的例程,真的是这样吗?我无暇顾及,迎评促建、期末考试和毕业论文占去了我几乎全部的时间。不过我们还是取得了进展,我们确定了题目。

要说这个题目的确定真是颇费周章,竞赛的要求是针对DE2板的特点,自行定题。我们为此至少讨论了五六次,每次都超过三个小时以上却毫无结果。无数的方案被提出,天上飞的,地下跑的,水里游的,太空爬的,真是“敢上九天揽月,可下五洋捉鳖”。无数的方案被否决,太难,太复杂,太不现实,已经有了,不适合。不过在这个过程中我们定下了选题原则——面向大众,充分利用DE2多媒体功能的消费类电子产品。只到最后一次讨论题目,又是三个多小时没有结果,一个计科系的研究生随口说了句“医疗方面呢?”如石破天惊,如醍醐灌顶。在五分钟内,拥有健康测量、健康学习,健康锻炼,健康记录、远程医疗五大功能的家庭健康专家方案诞生了。有健康学习,就可以使用上DE2的多媒体功能,有健康日记,就需要SD卡和FLASH,有远程医疗,就用得上DE2的网络功能,有健康锻炼,键盘鼠标这些交互工具都可以使用,真可谓人尽其才,物尽其用。

另外,驱动程序也是找得到的,只是隐藏在一大堆例程中,需要根据文件名去猜测,根据函数的样子去揣度。这对于没有任何工程经验的大二、大三学生是困难的。于是,我从例程中找出VGA最低层描点的函数,要同学甲据此找出书写汉字的方法。

这个时候已经是六月上旬,同学乙、同学丙都要去期末考试,只有同学甲一个人在研究这个VGA(他无疑又放弃考试了),但几天过去了,毫无进展。我也没有时间去过问,监考和毕业论文是这个时候必须要做的事,“迎评促建”也在加紧进行。我甚至让同学甲他们下来帮我整理试卷。不过我心里觉得,不会有这么难吧?

过了七月十号,学生考试完毕。这个时候出现了一个状况,原来指定的组长同学乙考试完后跑回家,只打了一个电话知会了我一声。我很生气,同学乙从去年就跟着我做事,这次让我非常的失望。组长他是当不了了。加上现在我打算将外围电路的部分尽可能的采用成型的模块,硬件的压力大为减轻。于是我在同学乙回来之前,对工作进行了调整,列出了每个人的任务清单并贴在墙上,指定同学甲作为组长,负责所有底层驱动程序的研究和编写,同学丙负责将同学甲研究出的驱动程序加以应用,编写应用程序。同学乙则负责外围的硬件电路。这成为了我们工作的一个转折点。同学甲在我的指点下,用VGA最低层描点的函数涂黑了液晶的一个区域。于是几天之类,写汉字的,画方框的,界面的底层函数均都建立起来。同时,外围电路在网上也都找到了相应的模块,前景似乎变得有些明朗了。

但外围电路进行的还是不是很顺利,原因很简单,人家不愿意和我们合作。测温我们原来打算用一块带传感器和压频传感器的模块,可以直接将温度信息通过PWM波的形式发出来,这对于我们FPGA系统来说是很方便处理的。但是人家一听说我们是大学的,量产遥遥无期就不给我们寄样片了。心电模块的厂商在武汉有,我亲自带着同学丙去这家公司,毫无希望,人家客客气气的用“公司规定,不准外借”八个字把我们给拒了。只有血压模块,在苏州有的卖。没办法,只有让同学乙试着做了。

我不是工作狂人,我一向认为生命需要一个过程,没有必要去赶时间,在该结婚的时候结婚,该生孩子时生孩子,现在该干嘛了,度蜜月!顺便到苏州去把血压模块带回来。于是,七月二十四号,学校“迎评促建”的工作告一段落后,我带上新婚妻子,向着苏杭进发了。

杭州三天,千岛湖两天,再返回杭州经苏州去南京,在空调大巴上,学校创新创业中心的陈主任给我打了个电话,说要提交一份中期报告,8月1号交。而现在是七月三十一号,我在千里之外,这报告能写得及吗?
写得及,一条短信,所有人到教研室,明天12点以前发到我电子邮箱。这叫作做事情的“杀气”。做人不能有“杀气”而做事必须有“杀气”。也就是不完成誓不罢休的精神。第二天中午在南京夫子庙悠闲的品尝过四八三十二道小吃之后,我在夫子庙旁的网吧正襟危坐,打开了附有中期报告的邮件。应该说,由于我们先前选题讨论工作做得相当充分,中期报告的结构和内容没有问题。但是,文笔之差实在令人无法恭维。现在的大学生剪切、复制、粘贴用多了,自己写句话来就像要他命一样。与我们民大优美校园所蕴含的文化底蕴,实在太不相称。

从南京经由黄山归来,八月五号。我父亲因心脏病复发住进了汉口协和医院。这个时候SOPC竞赛工作进入了一个新的阶段,一方面我们取得了很大的成果,像VGA的界面,像SD卡中的文件系统,都已经解决;另一方面,我们在多媒体上的应用遇到很大困难。由于选择了SPI模式对SD卡进行读取,传输速度不足以播放其中的声音文件。录音、摄像等工作更是尚未开始。由于编写应用程序的同学丙是个新手,同学甲需要花很大精力帮他调试界面的应用程序。

后面的日子过得很快,每天学生们都工作的很晚。由于只有一套DE2系统,我安排同学丙上午使用,同学甲下午使用,晚上根据进程需要安排。这样错开时间,使得DE2板的得到充分的应用。自己则在汉口和武昌之间奔忙,间断的了解一下进度。说实话,这时我也帮不上什么忙了,竞赛的规则也不允许我帮忙。我更多的是做一些决策,哪些功能是一定要有的,哪些功能是可以加强的,哪些功能是只能放弃的。

虽然平时一直有些局部的在线测试,但由于学生们缺乏对脱机测试重要性的认识,总认为在线测试和脱机测试的结果是一样的。脱机测试一直没有进行。这似乎是目前教育体制下学生们的一个通病,“想当然”,认为只要原理是对的就不会有问题,就不愿意去进行测试或是将重要的测试放在最后,这样一旦最后遇到问题,要么束手无策,要么没有时间修改。我们这次占了一点便宜的是,我们报告提交了之后,到第三天测试的最后一天才轮到我们测试,我们充分利用了这段时间,请来了自动化的几位老师,对PPT答辩和实物测试进行了排练。对测试中发现的Bug进行了处理。应该说,这样做对最终学生在答辩和测试现场的良好表现起了关键作用。

测试的时间是八月三十号下午一点半,到了八月三十号上午十一点,我们进行最后一次排练。主讲的同学甲讲得不错,内容,表达,时间都把握得很好,但在测试的时候出现了问题,血压模块测量的数据没能显示在显示器上。

这个时候已经到了中午十二点,十万火急。我掏钱让同学丙去买饭回来,同学甲和同学乙则在紧张地进行排查问题。这里应该就是一个在线测试和脱机测试不一样的典型案例,在线测试是正常的,脱机测试就出问题了。把程序重新写入DE2板,问题解决。

三十号的测试进行的很顺利,所有的测试项目都按预期的目标测试出来。但是由于报告中的疏忽,我们温度传感器的硬件电路图和程序源代码没有反映在报告上。评委抓住这一点不放,一直对此存疑。最后评委坚持让我们的队员回去将源代码取来进行解释才算应付过去。这也算是我们占了主场的一点优势——如果是在华师或是武大进行测试,我们就栽了。八月三十一号下午,竞赛组委会通知我们参加九月一号上午的复赛。

八月三十一号晚上,我召回了全体队员,对PPT进行了修改,补充部分缺少的电路图和源代码。最后一次排练了PPT答辩和测试过程。

九月一号上午九点四十三分,也就是此刻,学生们在电信二楼进行着测试,我在一楼休息室写着这篇文章。说实话,能够走到复赛是开始没有想到的。我们从来没有参加过此类竞赛,而华中科技大学和武汉大学每年都参加INTEL举办的嵌入式系统大赛;我们的老师和学生以前从未接触过DE2这类的SOPC开发板,而有些学校已经使用DE2板开展研究生和本科教学。无论在哪一方面,我们的技术积累都远远少于华科、武大等兄弟院校。所以,我心中开始制定的目标只是“完成功能,成功参赛,锻炼队伍,积累经验”。

如果说通过这次指导竞赛得到什么体会,我想主要有下面这几条:

一. 选择一位合适的队长。
二. 实行目标管理,对任务分解到人并贴在醒目的地方。
三. 制定全程计划并随时根据实际情况调整。
四. 测试,反复测试,测试开始的时间越早越好,测试的次数越多越好。
五. 做好队员的思想工作,宽容而又严厉、公平而又有策略的对待每一名队员。



https://blog.sciencenet.cn/blog-48882-33379.html

上一篇:该不该注意这一块?
下一篇:名将是怎样炼成的?
收藏 IP: .*| 热度|

0

发表评论 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-23 22:02

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部