flash论文十篇

时间:2023-04-11 02:23:03

flash论文

flash论文篇1

参考文献

[1]周峰,王征.FLASHACTIONSCRIPT3.0网络动画编程基础与实践教程[M].北京:电子工业出版社,2008

[2]林纪河,祁玉芹.FLASHCS4网络动画制作简明教程[M].北京:电子工业出版社,2009

[3]童罕,吴庆波,等.一种动态网页加速技术中的机制探讨[J].微计算机信息,2009(27)

[4]崔俊杰.动态网页技术浅析[J].长沙民政职业技术学院学报,2006,13(13)

[5]李志勇,徐长通.基于ASP的WEB数据库智能查询[J].河南师范大学学报,2010,38(1)

参考文献:

[1]雷芸芸.网页设计中Flash动画的视觉应用[J].新媒体研究,2016(3).

[2]曹芳,李培培.《FLASH动画制作》课程教学改革的探索与研究[J].科技视界,2016(2).

[3]周秀芳.Flash动画制作课程建设方案探究——以高职计算机应用专业为例[J].当代职业教育,2015(12).

[4]李怡宏,杨薇.从“案例模仿”到“设计创作”的《Flash动画设计》课程教学[J].信息与电脑(理论版),2015(24).

[5]王德敏.微课程的开发应用[J].中国校外教育,2013,(6).

[6]陈舒心.论“微课”在中职计算机专业课程中应用的可行性[J].广东教育(职教版),2015,(3).

[7]胡铁生.微课的内涵理解与教学设计方法[J].广东教育:综合版,2014,(4).

参考文献:

[1]李建华.网页设计的意义与现状[J].太原城市职业技术学院学报,2014(08).

[2]于红波.浅议Flash技术在网站建设中的应用[J].山东纺织经济,2011(12).

[3]高华,黄剑锋.Flash技术在网站设计中的应用与研究[J].才智,2012(28).

[4]刘强.FlashCS3网站建设实例详解[M].北京:电子工业出版社,2008.

参考文献

[1]范朋.基于Qt的嵌入式Linux系统GUI的研究与实现[D].北京:北京邮电大学,2011.

[2]新视角文化行.FlashCS6动画制作实战从入门到精通[M].北京:人民邮电出版社,2013.

[3]佚名.MFC与Flash联合界面开发技术[EB/OL].[2012?06?07].http://kuantianxia.blog.51cto.com/1041305/891521.

[4]JASMINB,MARKS.C++GUIQt4编程[M].闫锋欣,曾泉人,张志强,译.2版.北京:电子工业出版社,2010.

flash论文篇2

【关键词】FLASH广告 发展前景 应用领域 广告传媒

【中图分类号】G71 【文献标识码】A 【文章编号】2095-3089(2012)06-0128-01

1.引言

随着计算机技术和网络技术的飞速发展,人类社会随之步入了信息化时代,全球高达近三十亿的网民数量,使得互联网成为了一个重要的广告宣传平台,被广大商家所重视。FLASH广告体积小、成本低、视觉冲击性强,是一种低投资高收益的广告宣传方式,因此在网络宣传上被广泛应用,在新时代传媒中扮演着极为重要的角色。

2.互联网宣传特征

速度快、多元化、交互性、大容量是互联网宣传的四大特征。互联网宣传具有快速、及时、同步的优势,采用互联网进行广告宣传,可以在第一时间将商家所需要向客户表述的内容告诉广大网友,在网络时代,网民了解信息最快捷的途径,已经从电视、报纸等传统媒体转向了新兴的网络媒体。不同于广播电视和报纸杂志等传统媒体,互联网宣传可以充分综合运用文字、图片、音频、视频等多种表现手段,实现全方位多元化宣传目的。实际上,在网络时代广告宣传已经不再局限于媒体,任何有广告宣传需求的人员,都可以利用互联网进行宣传,达到个性化传播的目的。相对传统媒体来说,互联网这一广播宣传平台,其庞大的包容性使得它能承载海量的宣传内容,并且不受时间和空间的制约,并且能够实现交互式双向广播宣传的目的。

3.FLASH广告的优点

FLASH广告是采用矢量图形和流式播放技术所制作出来的,由于采用了关键帧和图符,使得FLASH广告文件体积非常小,非常适合在网页上播放,虽然体积小,但FLASH广告依然可以保证图象质量。此外,FLASH广告不仅可以应用于互联网上,还可以在电视、手机等载体上,其制作成本和修改成本相较于传统电视广告均低廉很多。一个产品的广告,采用FLASH广告形式,能更为有效的实现商家个性化需要,产生出比传统电视广告和纸质传媒广告更为强大近高觉冲击。在互联网开放、交互能力的支持下,FLASH广告能够更好的满足受众交互性的需求,让受众可以根据自己的接受程度和喜好来决定FLASH广告的运行过程,而不是传统媒体广告那样受众完全是被动性接受,使得FLASH广告更具亲和性,有效提高受众接受程度和认可度,取得更好的宣传效果。

4.FLASH广告发展前景

FLASH广告在我国的发展还只有不足十年的时间,但却以其众多优点和网络这一宣传平台的特点,而成为网络广告宣传的重要形式,其发展远远超出人们的预期,展现出良好的发展前景。

4.1 FLASH将会对传统广告形成巨大的冲击

FLASH广告具有易于创作、制作成本低廉、表现能力强等特点,因此被各类大中小型公司所采用,作为一种重要的广告宣传形式。随着网络的盛行和FLASH广告的迅速发展,电视视讯广告耗费人力、财力以及制作难度大等缺点被突显出来,FLASH广告被大量应用于电视宣传平台之中。随着FLASH技术的进步,目前FLASH广告这种宣传形式已经得到了传媒界的认可和推崇,并开始形成以FLASH广告技术为核心的商业帝国雏形。例如脑白金广告系列,虽然不如视讯广告那样采用明星拍摄、环境烘托,但却以其简明、轻快的形象在受众心里留下深刻的印象,取得极好的广告宣传效果。随着FLASH技术的进步、市场需求的扩大、广告宣传理念的革新,FLASH广告这种宣传形式将会对很多传统广告宣传形式形成巨大的冲击。从目前看来,FLASH广告的主要应用领域还是网络,也正是因为FLASH技术的应用,才使网络广告能力得到了全新的提升。

4.2 FLASH广告相关理论将会得到极大的完善

相对于传统视讯、纸媒宣传来说,FLASH广告发展时间还很短,很多理论都还不够完善。一方面,相对于传统广告庞大的从业人员来说,FLASH广告制作人才还较少,很多都是FLASH动画制作人员自发加入FLASH广告制作的,缺乏专业的广告理论支撑,使得FLASH广告在先天上就有所不足,缺少美学、商业运营、法律法规等的支持。另一方面,我国网民数量虽然庞大,但其年龄结构偏小,FLASH广告需要更多的针对于年青人所关注的时尚产品,如何通过FLASH技术来满足时尚产品的宣传需求,是推动FLASH广告进一步发展的重要动力。此外,当前的FLASH广告创意和宣传诉求还相对较为单一,这种简单直观的表达方式,着重于品牌的突出,而缺乏更深层次内涵的挖掘,展示产品的能力不如传统电视广告好。因此,在未来随着FLASH广告应用需求的提高,将迫使FLASH广告相关理论不断完善,以满足市场需要,使FLASH广告具有更强的产品展示能力。

4.3 专业FLASH广告创作团队将会迅速形成

相对于传统电视广告的拍摄制作来说,FLASH广告门槛较低,不论是从制作难度还是从制作成本来说都远不如传统电视广告,这种低门槛使得FLASH广告市场极易陷入价格竞争的恶性循环之中,并且由于降价底线的模糊性,使得其下跌下格难以控制,导致市场混乱并降低FLASH广告的整体质量水平。目前,真正意义上的FLASH广告专业创作团队还较少,当前大多数广告也都是非专业创作团队创作,还没形成庞大的集群化运营规模,处于散兵游勇般的单打独斗状态。但是,随着FLASH广告市场的发展以及相关广告理论的完善,FLASH广告创作将会向专业化、规模化、集团化发展,专业的创作团队将会迅速形成,并成为广告传媒的新生力量,成为未来广告宣传的重要支柱。在这种专业化的创作运营下,FLASH广告也将会引入形象代言等机制,创造出属于企业自己的品牌代言形象。如流氓兔、“小小”系列的火柴人等形象,成为未来FLASH广告向专业化团队创作发展的重要内容。

5.结束语

FLASH广告是在网络发展的带动下所发展起来的,是植根于网络但并非局限于网络的一种广告形式,随着FLASH技术的提高以及FLASH广告创作理论的完善,FLASH广告将会渗透向包括电视、手机、楼宇、移动电视等多种媒介平台,向专业化、规模化方向发展,成为未来广告宣传的一种重要形式。

参考文献:

[1]房雅珉.网络广告动画发展研究[J].广告大观,2010(05)

flash论文篇3

关键词 Flash技术;高中体育;教学资源

中图分类号:G633.96 文献标识码:B

文章编号:1671-489X(2016)21-0043-02

在我国长期传统的体育教学中,教师往往采用“课上讲一讲,学生学一学,操场练一练”的教学模式,它倡导的是通过教师的言传身教、学生的复习巩固来掌握体育课堂的动作要领。信息时代倡导的是充分利用多种信息化手段来服务于人们的生活、学习和工作,而Flash技术通过插入文字、声音、图像、动画和视频等多种表现方式,能够将高中体育课堂的教学内容进行立体展示,也能够将课前、课中和课后的教学任务进行有机整合。因此,在高中体育教学工作中充分利用Flash技术,实现教学资源的优化,成为广大高中体育教师的教学共识。

1 高中体育教师运用Flash技术面临的问题

高中体育教师受到传统教育多年,运用Flash技术时感觉非常吃力。在教学实践过程中,教师需要克服传统教学束缚、Flash制作要求高与课件内容匮乏等诸多问题。具体地讲,高中体育Flash教学存在以下不足。

传统教学观念陈旧 目前高中体育教师很大一部分是从师范毕业的,或者是从专业体校毕业的,他们在学习阶段接受的都是传统的“以练代学”的教学模式,而体育专业的限制使得他们得不到更多相关理论的教学培训。这就造成一些教师体育教学理念落后陈旧,课堂教学停留在体育知识的宣导和体育动作的重复,不会或者不愿意进行Flash技术教学。这也造成高中体育课堂教学成为教师的一言堂,教师很难通过Flash辅助教学来提高学生的学习主动性,课堂教学也很难达到直观生动,学生学习效率非常低[1]。

Flash演示平台非常落后 目前,我国的中学中在大力倡导和加强多媒体平台建设。但是需要正视的是,我国中学课堂的多媒体平台还大多集中在电脑和投影仪外设上,学校不愿意在Flash制作方面进行过多的投入。因此,教学用电脑大多是小屏幕的液晶显示器,电脑配置比较低,当视频比较大或者Flash课件比较大的时候,运行起来就比较难。而且投影仪的幕布比较小,分辨率比较低,会造成投影效果不佳。在班级进行Flash课件操作,较远位置的学生学习和操作起来非常费力,Flash技术辅助高中体育课堂教学效果有限。

Flash课件内容匮乏 在高中体育课堂教学过程中,丰富多彩的Flash课件是教学成败的关键。高中体育教师需要充分掌握课堂教学内容,深入了解学生的生活习惯和学习习惯,将课堂教学内容和Flash课件进行充分结合,才能制作出迎合学生学习兴趣的Flash课件。在莱山第一中学往往把Flash课件的开发重点放在数理化等考试重点学科上,对于体育Flash课件的开发重视度不够,体育Flash课件非常匮乏。此外,高中体育教师自身的体育理论水平有限,对于高中体育课堂内容不能充分把握,也是造成高中体育Flash课件内容匮乏的一个重要原因。

2 Flash技术在高中体育教学中的优化措施

在高中体育课堂教学中,利用Flash技术有利于活跃课堂教学氛围,充分调动学生的多重感官,充分熏陶学生的审美情操,提高学生的身心健康水平。

利用Flash优化课堂教学氛围 高中课堂中Flash技术的广泛运用,能够充分调动学生的学习兴趣,活跃课堂教学氛围,激发课堂教学的原始动力。高中体育理论知识十分抽象,教学课本中的技术动作、教学材料非常空洞,学生单纯依靠教师的口传身教很难达到理解掌握;而课堂实践操作课对动作要领和学生的技术动作要求较高,学生很难做到动作到位[2]。教师通过Flash课件操作,可以将复杂的体育技术动作进行分解和细化,通过生动详细的动画进行细致展现,将枯燥的课堂教学转变成愉快的课堂分享。

比如在v解篮球三步上篮的技术动作时,教师就可以利用Flash技术制作三步上篮的动画,通过控制播放速度,将上篮动作做到每一步的分解;再通过播放篮球运动员的上篮视频,就可以在学生心中产生动作记忆,而赏心悦目的篮球视频可以引起学生的学习共鸣,提高课堂教学效率。同时活跃了课堂教学氛围,引导学生积极学习和模仿,较快掌握篮球上篮的动作要领。

利用Flash技术调动多重感官感受 高中体育课堂教学的重点是培养学生的体育专业知识、体育运动技能和锻炼身体素质,在此过程中,教学的难点是培养学生的体育运动技能。通过Flash技术能够将体育运动技能的动作要领进行充分展示,能够充分调动眼睛、耳朵等多重感官感受,能够将体育运动技能形成感官记忆,从而指导学生掌握各种基本的体育运动动作,引导学生进行科学合理的锻炼,从而掌握专业的体育知识,进行科学有效的体育锻炼。

比如在教学仰卧起坐时,首先,教师可以利用Flash课件将体育运动动作进行分解展示,通过课件录制好示范的分解动作,将其分解为“仰卧―双腿抬高―保持膝关节和髋关节成直角―双手交叉―收缩腹肌―上身抬起―缓慢下放―肩胛骨轻触地面―重复下一个动作”,再加上旁白,就可以利用听觉和视觉来引导学生掌握正确的体育动作,将课堂教学做到细致分解。其次,教师可以利用Flash技术做到讲练结合、实践操作。利用Flash技术可以将仰卧起坐动作的理论和实践操作结合起来,引导学生操作完整的动作,从而加强学生的理解,提高学生的动手和动脑能力。

利用Flash技术提高学生的审美情操 高中体育课堂教学除了锻炼学生的身体素质和体育技能外,还承担着教书育人的重任,因此,在课堂教学中应该充分倡导和加强对于学生审美情操的培养。高中体育课堂教学内容应该充分围绕挖掘课堂教学美的内涵,用课堂教学的美去引起学生产生共鸣,去发现专业之美、学习之美和生活之美。利用Flash技术,教师能够选择悠扬、明快的乐曲去营造课堂教学之美,引导学生去发现课堂教学内容之美、生活之美[3]。

比如在教学拳类运动的时候,教师就可以利用Flash课件制作一些拳类的动作视频,选取轻松、愉悦的乐曲作为背景音乐,将拳类运动中的自然协调、机敏灵动和和谐自然之美进行充分展示,也能让学生充分感受拳类运动的律动之美,在运动中提高审美情操。在进行中长跑的课堂教学时,可以利用Flas播放我国马家军在奥运会上英姿飒爽的场景,激发学生激情澎湃的斗志,而领奖时《义勇军进行曲》的播放更会激发学生浓烈的爱国主义情操[4]。

3 总结

综上所述,随着新课程改革的不断深入,国家对各级中小学校信息化建设的不断投入,为教育走向现代化提供了必要的物质条件,促进了Flash技术在高中课堂中的推广与使用。在这种大好形势下,从事高中体育教学的每一位教师一定要顺应时代的发展,深入挖掘课堂教学内容,了解学生的学习需求,将Flash技术充分融入课堂教学的每一个环节,充分展现Flash技术的教学魅力。

参考文献

[1]徐海林,刘玉梅.浅谈Flas在体育科普教育中的应用[J].教育教学论坛,2014(48):186-187.

[2]侯涛.Flas在体育教育运用的可行性及优势[J].鸭绿江月刊,2016(3).

flash论文篇4

关键词:二维动画 动画创作 FLASH 创作方法

中图分类号:TP317 文献标识码:A 文章编号:1007-9416(2013)04-0222-01

计算机及其图像处理技术的蓬勃发展促进了计算机动画制作技术的普及与应用,FLASH作为二维动画创作技术的典型代表,被广泛应用于二维动画制作。FLASH动画制作操作方便、高效快捷,FLASH软件具有强大的图形处理能力以及灵活支持图片、文档、音视频等文件的演示,无论对应用市场还是制作开发人员均具有强大的吸引力。

本文针对如何利用FLASH创作出一部动画短片,以动画创作中的总体设计阶段、设计制作阶段和创作实施阶段对二维动画的FLASH创作方法进行了探讨。(如图所示)

1 总体设计阶段

在动画制作的总体设计阶段主要包括两个任务:主题的策划和剧本的确定。

在对任何动画进行创作之前都要先策划好主题,诸如动画想要表达什么样的思想、达到什么样风格的视觉效果、动画所需的画片尺寸是多少、动画帧频如何设定、舞台场景怎样设置、以什么样的方式输出动画作品等问题均需要在这个阶段进行考虑。同时,剧本也是动画作品诞生的首要条件之一。与实景表演的故事剧本不同,动画剧本需要根据设计的主题来进行故事的创作与情节设定,然后再逐级细化进行分镜头剧本的设计、分镜头中场景的设计、场景中具体的动画行为设计等。在创作动画剧本时可以打破现实的约束,尽量发挥创意,如利用FLASH创作出更加诙谐的角色、适当的夸张变形来创作出令人印象深刻的剧本。

确定好剧本后就可以按照剧本中所包含的场景及镜头,将角色、场景和镜头文件设计好并导入到FLASH中。在此需要注意将设计制作的素材设定好对应的命名规则,以便于FLASH设计人员的配合,提升工作效率。

2 设计制作阶段

设计制作阶段的主要任务是进行角色造型的设计和动画场景的设计。

角色造型设计包括角色形象和动作的设计,其设计需要符合第一步中所确定的动画风格。在FLASH中进行角色造型设计时要把角色的整个结构、形态以及遮挡和隐藏的形态结构给勾画出来,按体块结构从整体到局部按层次储存在库里。在FLASH动画里,可以将不同形态和动作等尽可能详尽的绘制出来并制成原件储存到库里,在根据剧本的要求摆姿势、调整动作等,实现反复调用。场景设计需要对动画的前景、背景进行独立设计,并且在完成场景设计后需要在FLASH中导入背景音乐或设定特殊的音效。(如图所示)

3 创作实施阶段

创作实施阶段的主要任务就是动手制作动画。有了以上两个步骤的铺垫,在创建FLASH文件后,实施阶段需要进行元件的制作和动画的编排,然后还需要进行测试和作品的即可完整的创作出一部FLASH动画作品。

元件需要根据剧本来进行制作,把动画场景、动画角色和其它动画元素等制作成图形元件或影片剪辑元件。另外,有些FLASH作品中还需要通过按钮元件来控制作品的播放。

元件制作好后可以按照分镜头剧本放入对应的场景中,按剧本的顺序对动画进行编排,并且在编排的过程中要进行测试验证,另外对不符合剧本的场景还要进行修改。

利用FLASH进行动画创作时,要灵活掌握何时用何种工具来实现更方便、快捷的造型合计,因此需要对创作要领进行掌握。如绘图工具的选择技巧、对象的绘制技巧、对各种对象特点的了解以便于创作中的应用等。对这些技巧的掌握可以在一定程度上提高FLASH动画的制作效果与创造效率。

FLASH动画的创作实施阶段还要注意测试的使用,以便检查FLASH作品中的动画和时间,发现课题要及时修改。尤其在复杂的互动影片编辑中测试的显得尤为重要和突出。

编辑完成的FLASH文件即可以输出为所需文件格式的完整动画影片。

4 结束语

经过以上三个步骤,就可以利用FLASH完成二维动画的制作。但是要想制作出更加精美漂亮的FLASH动画作品,还需要在设计和制作技术上进行改良与练习。例如设计出更复杂、颜色更丰富的场景和角色造型;由于FLASH软件的本身制作技术的局限性导致的动画效果稍显粗糙等问题需要通过与PHOTOSHOP等其它软件结合使用来克服,另外利用手写板和压感画笔实现手绘效果等方法,也可以极大的提高FLASH动画的艺术含量和技术含量。

参考文献

[1]洪光.FlashCS3动画制作案例教程[M].北京:北京大学出版社,2009.

[2]潘春红.浅议FLASH 动画的制作技术[J].科技信息,2010(20).

[3]翟月.二维动画制作之FLASH动画创作方法[J].计算机光盘软件与应用,2012(18).

flash论文篇5

摘要: 设计一种能够在典型嵌入式环境下应用的线性文件系统,为嵌入式系统Flash空间的管理提供一种非常有效的手段。它包装和通用文件系统类似的API接口,设计的实现独立于实时操作系统(RTOS)和具体的Flash典型,可方便移植到不同的嵌入式应用中。

在嵌入式系统中,为了便于对闪存(Flash)空间进行管理,会采用文件的形式来访问Flash。目前,可以购买到的Flash文件系统一般都是兼容DOS的文件系统(Flash File System,FFS),这对需要一个具有复杂的目录层次,并且DDS文件兼容的系统来说是必要的;但是对大多数的嵌入式应用来说,这种文件系统太过奢侈。笔者在参与嵌入式系统项目的时候,设计了一种线性文件系统,它适用于大多数的嵌入式应用对Flash文件系统的需求。

线性文件系统设计基于三个目标:一是提供给应用程序通过文件名而不是物理地址访问系统Flash的能力;二是文件系统的设计独立于实时操作系统(RTOS),这样可以很容易移植到不同的嵌入式应用中;三是设计统一的底层接口,适应不同的Flash类型。本文设计的线性文件系统为典型的嵌入式系统提供了所需的类文件系统能力。需要注意的是,本文件系统不支持复杂的Flash扇区擦写次数均衡算法,没有目录层次,并且和其它的文件系统不兼容。

1 线性文件系统

线性文件系统的设计思路是这样的:文件分为文件头和文件数据区两个部分,每个文件按照顺序存放在Flash中,以单向链表来链接文件。文件的起始部分是文件头,包含文件的属性、指向下一个文件头的指针、文件头和文件数据区的32位循环冗余校验和(CRC32)等。文件头用一个32位的字来表示文件属性,每位表示一种属性,如数据文件或者是可执行文件,是否已删除的文件等,具体可以根据应用的需要来定义文件的属性;文件头和文件数据区维护独立的CRC32校验,使文件系统能更精确检测文件的完整性。文件的起始地址没有特殊需求,分配给文件系统的Flash大小限制了文件的大小。另外,线性文件系统作为嵌入式系统的一个功能模块,它为应用程序提供与标准文件系统类似的API接口,如:read()、write()、open()、close()、stat()和seek()等。对于同时在多片Flash的系统而言,每片Flash相当于一个目标,文件都可存储在任何一片中(当然受物理空间限制),但不能跨片存储。

图1 Flash文件系统空间

在第一个文件创建之前,必须进行初始化,将所有分配给文件系统的Flash空间擦除。当创建第一个文件时,起始位置从文件系统的起始地址开始,文件头指针指向下一个空文件的起始位置(链表尾部);第二个文件的位置从当前的链表尾部开始,同时文件头中的链表指针指向新的尾部。删除文件时,仅仅是简单地把文件头的标识位中的活动文件标识位置0,表示删除。这样,在经过多次删除之后,就有必要运行碎片整理模块来进行文件系统Flash空间的碎片整理。碎片整理模块还需要在文件系统Flash空间尾部留一个扇区来数据备份,以便当碎片整理被打断时(如下电或者复位)可以恢复文件系统。这个保留的扇区称空闲扇区。它必须放在文件系统空间之后,这样可以保证文件系统的所有文件在所占用的Flash空间是连续的。整个文件空间的分配如图1所示。

阴影部分是文件头,数据结构如下:

struct hdr{

unsigned short hdrsize; /*文件头字节数*/

long filsize; /*文件头版本*/

long filsize; /*文件大小*/

long flags; /*描述文件的标识*/

unsigned long filcrc; /*文件数据的CRC32的值*/

unsigned long hdrcec; /*文件的最后修改时间*/

struct hdr *next; /*指向下一个文件头的指针*/

char name[NAMESIZE]; /*文件名*/

char info[INFOSIZE]; /*文件描述信息*/

};

碎片整个记录区包含两种数据类型:碎片整理文件头信息表defraghdr和文件区扇区整理前后的CRC值备份表sectorcre。具体的地址分配从空闲扇区的起始地址减1开始,往前分配文件系统扇区数乘以4字节作为sectorcrc的空间;从sectorcrc起始地址减1开始,往前分配活动文件个数乘以64字节作为碎片整理文件头信息表。这两个结构定义如下:

struct defraghdr{

struct hdr *ohdr; /*文件头的原始位置指针*/

struct hdr *nextfile; /*指向下一个文件的指针*/

long filsize; /*文件大小*/

unsigned long crc; /*这个头的CRC32值*/

unsigned long ohdrcrc; /*原始文件头CRC32值的拷贝*/

long idx; /*碎片整理表头的索引*/

long nesn; /*新的文件尾的扇区号*/

long neso; /*新的文件尾的扇区偏移量*/

char *nda; /*新的文件起始地址*/

char fname[NAMESIZE]; /*文件名*/

};

struct sectorcrc{

unsigned long precrc; /*碎片整理前扇区数据CRC32的值*/

unsigned long postcrc; /*碎片整理后扇区数据CRC32的值*/

};

从上面介绍可知,除了文件数据之外,文件系统还需要如下4种额外的开销。

①文件头:这是每个文件必须的开销,如果文件名和信息域各24字节,那么整个文件头共76字节。

②碎片整理文件头信息表:每个活动(非删除)的文件在进行碎片整理时在这个表里创建一个表项,每个表项64字节。

③碎片整理前后的扇区CRC32值表:保存文件整理前后的CRC32值,总的字节数约为文件所占扇区数的4倍。

④空闲块:用来在碎片整理过程中备份当前整理扇区数据。它必须不小于文件系统其它所有扇区。

可以用下面方程计算系统开销的总和:

overhead=(FTOT*(HDRSIZE+64))+SPARESIZE+(SECTORCOUNT*8)

其中:

FTOT是总的文件数;

HDRSIZE是文件头字节数(目前为76字节);

SPARESIZE是空闲块的大小;

SECTORCOUNT是分配给文件系统的Flash扇区数,不包括空闲块。

图2 文件碎片整理

2 碎片整理

创建新文件需要占用文件系统空间;但是,由于Flash的底层技术不允许Flash中的任意地址空间被删除,而是按照扇区为单位删除,为此在删除一个文件的时候,暂时没有把整个文件所占的空间删除,仅仅是在文件头的标识里作一个删除标识,并保留在Flash中。这样,被删除文件积累到一定的数量时,就会占用相当大的空间。因此,需要整理文件系统Fla

sh空间,使被删除文件占用的空间重新使用。图2显示了碎片整理过程。文件F1、F2和F5已经被删除,并且在碎片整理之后从Flash中被清除。进行碎片整理的方法可以有多种。对于嵌入式系统来说,选择哪种方法,衡量的依据是复杂性和功能之间的平衡。下面讨论两种不同的方法:第一种方法相当简单,但是有缺陷;第二种方法功能强大得多,笔者在线性文件实现中即采用这种方法。当然,存在更加复杂的解决办法,但通常的情况是,所添加的复杂性会使整个文件系统的实现更加复杂。目标是保持文件存储的简单和线性,保证所有的文件都是以连续的空间存储在Flash中。

最简单的方法是将活动的文件备份在RAM中,删除分配给文件系统的Flash空间,然后将RAM中备份的所有文件拷贝回Flash。这种方法很简单,并且不需要分配一个扇区作为空闲区;但问题是,需要有一整块和分配给文件系统的空间一样大的RAM来完成这项工作。更糟的是,如果此时系统被复位,或者在删除扇区内容却还没有将文件拷贝回Flash的时候被断电,文件系统将会崩溃。因为RAM中的内容会随之选择,文件内容会被破坏掉。

我们在文件系统实现设计了一种碎片整理方法,可以防止在碎片整理过程中系统复位导致文件崩溃的情况。采用这种方法,不需要大块的RAM,但是需要预选先分配给碎片整理过程一个Flash扇区作为备份区。这个扇区的字节数不小于任何分配给文件系统的扇区。在整个文件系统中,这个扇区位于分配给文件系统最后一个扇区的下一个扇区。因为扇区可能比需要分配给非删除文件的备份的空间要小,所以它必须逐个扇区进行处理,而不是一下就把所有的碎片整理完。采用备份扇区的好处是,在碎片整理过程中,无论断电或者复位都不会破坏文件系统。当下次系统重新恢复时,会根据在碎片整理前记录的每个扇区碎片整理前后CRC值,来判断当前的文件碎片整理状态。如果上次文件整理没有完成,就会继续上次的整理。这种技术的一个缺陷是空闲扇区的擦写次数会较多。这样空闲扇区就可能因为达到擦写寿命而失败。达到这一点的关键依赖于使用的Flash、所分配给文件系统的扇区数、文件删除和重建的频率。一个可行的解决办法采用电池备份的RAM来替换空闲扇区,可以增加Flash的整体寿命,但是对那些预算紧张的应用来说太过奢移。

具体的碎片整理过程是,首先建立碎片整理区。①为每个扇区建立2个CRC32表项;第一个CRC32是这个扇区在碎片整理前的CRC值;第二个CRC32值是计算出来的碎片整理后的CRC32值。这些CRC是当碎片整理过程被打断时,用来重新恢复整理用的。②创建碎片整理文件头信息表,每个活动的文件占用一个表项。③计算①和②的CRC值,并保存。①~③的数据保存在图1中的碎片整理记录区。第二步是文件重定位;遍历文件系统的每个扇区,处理重新定位后存储空间和该扇区相覆盖的文件。在每个扇区被重写之前,扇区原来的信息被保存在空闲扇区里。第三步,擦除Flash;遍历未使用的扇区,确认所有的扇区被删除。第四步,完整性检测:对新的文件进行检测,保证所有重定位的文件都是完整的。

3 应用分析

Flash的扇区有最大擦写次数。当前的Flash芯片一般支持10万~100万次的擦除。文件系统的应用各不相同,所以这里不能下结论说采用线性文件系统Flash的寿命会有多长。下面解释文件系统访问Flash的方法。这样用户可以根据应用来判断Flash的预期寿命。

我们所设计的线性文件系统并不进行扇区删除次数均衡,以延长Flash的使用寿命。如果所需要的文件系统频繁修改并需要扇区删除次数均衡,可以购买现成的Flash文件系统。扇区删除均衡算法大大增加了底层实现的复杂性,并且超出本文的讨论范围。一般来说,通过文件系统来管理Flash的需求远大于对Flash扇区擦写次数均衡的需求,特别是现在越来越多的Flash扇区都支持100万次的擦写。

如上面所提到的,文件系统本身提供给编程者的接口API与标准OS提供的接口类似。这可能误导开发者认为文件系统可以看作是一个硬盘,以任意的频率进行读写操作。事实并不是这样,线性文件系统碎片整理同制并没有进行擦写次数均衡,这意味着空闲扇区可能会是最早损坏的Flash扇区。因为在碎片整理过程中,空闲扇区被用作其它所有扇区的暂时存放扇区。例如在设计里,有13个扇区Flash用来作线性文件系统区,有1个扇区作为空闲扇区。假设对于最坏情况的碎片整理(13个扇区都影响到),如果每天进行1次碎片整理,对于100 000次擦写次数的Flash而言,可用期能够超过20年(100 000/13/365=21)。20年是基于每天进行1次碎片整理,并且所有扇区都影响到的情况。碎片整理的频率和整理所影响到的扇区数受应用程序使用文件的限制。用户可以根据文件系统的应用来估算Flash扇区的磨损情况,并作相应的处理。

下面讨论文件系统是如何使用扇区的。Flash扇区仅仅在碎片整理时候才被擦除。当删除文件的时候,只是简单地作一个标识(文件头的一个位)。如果一个存在的文件以写的方式打开,实际的修改步骤是,删除原有的文件,并在当前文件系统的最后一个文件之后重写该文件。最后,这个过程会使文件系统的Flash空间被耗尽,这要就需要运行碎片整理程序。碎片整理程序会使已被删除文件所占用的空间被清除,所有活动的文件在Flash中的位置以连续的方式存放。每个扇区的整理过程是,扇区被拷贝到空闲扇区作备份,然后原来的扇区被删除,计算出该扇区在文件整理后的内容,写入扇区,之后删除空闲扇区的备份。文件系统从头到尾每个扇区重复这样作。在碎片整理时,如果一个扇区不需要进行碎片整理,碎片整理程序就不会动这个扇区因此,受碎片整理程序影响的扇区数目依赖于当前被文件系统占用的Flash扇区数和被删除文件在Flash中的位置。

在一个典型的嵌入式应用里,文件系统中的可执行文件本身就是应用程序。可执行文件一般是最大的文件,也是最不可能经常改变的文件。这意味着执行文件所占用的空间是相对固定的,将会减少空闲扇区因为碎片整理而进行的擦写次数。另外一方面,如果有任何文件需要定期改动,碎片整理将会更加频繁运行。

flash论文篇6

关键词:VxWorks Flash MTD TFFS 文件系统

嵌入式系统正随着Internet的发展而在各个领域得到广泛的应用,作为一个优秀的操作系统,VxWorks实现了比其他实时操作系统更好的有效性、商用性、可裁减性以及互操作性,广泛应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、军事演习、弹道制导、飞机导航等。

如今越来越多的嵌入式操作系统中,通常都使用FLASH作为主存介质。许多开发者和用户为了方便以后升级用户程序,通常在FLASH上建立TFFS文件系统,建立文件系统后,我们就可以象在windows操作系统下对硬盘操作一样,进行数据的拷贝、删除以及文件的建立等操作。

NOR和NAND是现在市场上两种主要的非易失闪存技术。Intel于1988年首先开发出NOR flash技术,彻底改变了原先有EPROM和EEPROM一统天下的局面。NOR的特点是芯片内执行XIP execute In Place,这样应用程序可以直接在flash闪存内运行,不必再把代码读到系统RAM中。NOR的传输效率很高,在1~4MB的小容量时具有很高的成本效益,因此在嵌入式系统得到广泛的应用。

一、 TFFS文件系统结构简介

Tornado的TrueFFS是和VxWorks兼容的一种M-Systems Flite实现方式,版本为2.0。它为种类繁多的flash存储设备提供了统一的块设备接口,并且具有可重入、线程安全的特点,支持大多数流行的CPU构架。有了Tornado的TrueFFS,应用程序对flash存储设备的读写就好象它们对拥有MS-DOS文件系统的磁碟设备的操作一样。

如图1所示,TrueFFS由核心层(core layer)和三个功能层,翻译层(translation layer),MTD层(MTD layer),socket层(socket layer)组成。

核心层(Core layer):核心层主要起相互连接其他几层的功能。同时它也可以进行碎片回收、定时器和其他系统资源的维护。通常WindRiver公司将这部分内容以二进制文件提供。

翻译层主要实现TrueFFS和dosFs之间的高级交互功能。它也包含了控制flash映射到块、wear-leveling、碎片回收和数据完整性所需的智能化处理功能。目前有三种不同的翻译层模块可供选择。选择哪一种层要看你所用的flash介质是采用NOR-based, 还是NAND-based, 或者SSFDC-based技术而定。

Socket层则是提供TrueFFS和板卡硬件(如flash卡)的接口服务。其名字来源于用户可以插入flash卡的物理插槽。用来向系统注册socket设备,检测设备拔插,硬件写保护等。后面将详细讲解它的功能。

MTD层(Memory Technology Drivers)功能主要是实现对具体的flash进行读、写、擦、ID识别等驱动,并设置与flash密切相关的一些参数。TrueFFS已经包含了支持Intel,AMD以及samsung部分flash芯片的MTD层驱动。新的芯片需要新的MTD支持,你可以使用一个标准的接口来加入这些驱动。

以上四部分,我们通常要的工作就是后两层。

当在VxWorks下配置TrueFFS时,你必须为每一层至少包含一个软件模块。后面我们将详细讨论。

二、 MX29LV160BT芯片上建立TrueFFS文件系统

1、配置相关文件

在此,我以Nor Flash MX29LV160BT为例,开发工具为Tornado2.2 for PPC。要在VxWorks映像中包含TrueFFS文件系统,首先必须在config.h文件中定义INCLUDE_TFFS。这使得VxWorks的初始化代码调用tffsDrv()来创建管理TrueFFS所需的结构和全局变量,并为所有挂接了的flash设备注册socket组件驱动。在链接的时候,通过解析与tffsDrv()相关联的符号(symbols)可以将TrueFFS所必需的软件模块链接到VxWorks映象中。

为了支持TrueFFS,每一个BSP目录下都必须包含一个sysTffs.c文件。它将TrueFFS所有的层(翻译层,socket层和MTD层)链接到一起并和VxWorks绑定。因此,我必须编辑这个文件并决定哪一种MTD和翻译层模块应该包含到TrueFFS中。即:

#define INCLUDE_MTD_MX29LV /* MX29LV160BT MTD driver */

#define INCLUDE_TL_FTL /* FTL translation layer */

#define FLASH_BASE_ADRS 0x2a10000 /* Flash memory base address */

#undef FLASH_SIZE

#define FLASH_SIZE 0x001f0000 /*Flash memory size,2M(parameter block) */

其他无关的MTD driver包含头都#undef掉,同时定义Flash在系统中的基地址和大小。另外,还必须编辑sysLib.c中的sysPhysMemDesc[ ]数组,将Flash基地址和大小加入到MMU中,以供将来访问Flash,否则访问Flash会失败。如果BSP目录下没有sysTffs.c文件,那么我们可以从其他BSP目录下拷贝一个即可,然后做上述修改,其他的内容基本可以不用修改。

接下来需要修改tffsConfig.c文件,为了方便管理,通常我们将src/drv/tffs/目录下该文件拷贝到我们BSP目录下,然后再做出修改。在MTDidentifyRoutine mtdTable[]表中加入如下语句:

#ifdef INCLUDE_MTD_MX29LV

mx29lvMTDIdentify,

#endif /* INCLUDE_MTD_MX29LV */

并在该文件开头声明。

#ifdef INCLUDE_MTD_MX29LV

FLStatus mx29lvMTDIdentify (FLFlash vol);

#endif /* INCLUDE_MTD_MX29LV */

最后就是将我们的flash相关MTD驱动加入到makefile中。即:

MACH_EXTRA = mx29lvMtd.o

为了方便我们调试MTD驱动,应该在重新编译VxWorks映象前将诸如格式化flash、创建T

rueFFS块设备、绑定此块设备到dosFs所必要的功能包含到VxWorks映像中。比如如下定义:

#define INCLUDE_TFFS

#ifdef INCLUDE_TFFS

#define INCLUDE_TFFS_DOSFS

#define INCLUDE_TFFS_SHOW

#define INCLUDE_DOSFS /* dosFs file system */

#define INCLUDE_SHOW_ROUTINES /* show routines for system facilities*/

#define INCLUDE_TL_FTL

#define INCLUDE_IO_SYSTEM

#define INCLUDE_DISK_UTIL

#endif /* INCLUDE_DOSFS */

2、MTD驱动简介

做了上述配置后,进入VxWorks操作系统后,我们在shell上利用tffsShow工具来显示flash的信息。TffsShow函数最终会调用MTD驱动中的mx29lvMtdIdentiy( )函数,在mx29lvMtdIdentiy ( )函数主要是通过读取MX29LV160BT芯片的设备和厂商ID来识别它,然后对FLFlash结构成员进行初始化,最主要的几个参数是:

type

Flash内存的JEDEC ID号。 erasableBlockSize

Flash内存的擦除块大小(字节)。设置这个值时应考虑到interleaving。因此,通常通过如下方法来设置它的大小。

Vol.erasableBlockSize = MX29LV_MTD_SECTOR_SIZE * vol.interleaving;

对于MX29LV160BT,MX29LV_MTD_SECTOR_SIZE为64K字节。

chipSize

使用来构建TrueFFS文件系统的flash实际大小(字节)。

noOfChips

使用来构建TrueFFS文件系统的flash实际片数。

interleaving

Flash内存交叉因子(interleaving factor)。即扩展数据总线的设备数。比如,一个32位数据总线上,我们可以使用4片8位或2片16位的设备。

map

指向flash内存映射(map)函数。该函数将flash映射到内存区。

read

指向flash内存的读函数。在MTD驱动识别函数中,这个成员函数已经被初始化为缺省的读函数。通常情况下,我们不需要再初始化它,否则还需要修改很多相关的函数。

write

指向flash内存的写函数。这个成员必须初始化,这是我们要做的一个重要工作。

erase

指向flash内存的擦除函数。这个成员必须初始化,这也是我们要做的一个重要工作。

针对FLFlash结构成员,我们所关心的两个函数就是写和擦除函数。在mx29lvMtdIdentiy()函数中必须有如下定义:

vol.write = mx29lvWrite;

vol.erase = mx29lvErase;

在mx29lvWrite()函数中主要是实现将数据写到flash中。首先需要对扇区进行解锁,然后写入写命令,之后才能进行数据的写入。最后需要判断数据是否写完。为了确保操作成功,我们应该在写完每个数据后进行数据的比较,比较正确后方能进行下一个数据的操作。

在mx29lvErase ()函数中主要是实现flash扇区的擦除。如今的flash一般都是按照扇区进行擦除操作的。在擦除操作之前也应该首先对扇区进行解锁,然后写擦除建立和扇区擦除命令。擦除成功后,flash中的内容应该是0xffff。所以为了确保成功,我们还是应该在擦除后进行比较,比较正确后方能进入下一个扇区的擦除操作,否则返回擦除错误标志。

所以,对于MTD驱动的调试,基本上就是调试写和擦除两个函数。在调试过程中,我们可以在这两个函数相应位置加入打印语句来调试。为了能调试这两个函数,我们通过在shell上输入命令tffsDevFormat来格式化flash,tffsDevFormat最终会调用mx29lvErase和mx29lvWrite函数,如果成功就会返回0,否则返回-1。当然也可以调用tffsDevCreate函数来验证我们的写和擦除函数的正确性。图2说明了tffsDevCreate调用过程。

在shell上利用tffsShow来验证mx29lvMtdIdentiy。

è tffsShow

0: socket=RFA: type=0x2249, unitSize=0x10000, mediaSize=0x1f0000

value = 49 = 0x31 = "1"

说明已正确识别到MX29LV160BT设备,设备号为0x2249。

三、 建立TFFS设备

1、挂接设备名

MTD驱动调试成功后,我们就可以给flash设备挂接上dos设备名,如下操作:

格式化:

è tffsDevFormat

value = 1

è usrTffsConfig 0,0,”/tffs0”

value = 0

然后通过devs来查看挂接的设备名。

è devs

drv name

0 /null

1 /tyCo/0

1 /tyCo/1

5 host:

6 /pty/rlogin.S

7 /pty/rlogin.M

3 /tffs0/

8 /vio

value = 25 = 0x19

看到/tffs0/说明挂接设备已经成功,接下来就可以利用dosFs文件系统相关命令来操作flash了。如,ls、copy等。

2、从Flash中启动并下载VxWorks映像

要从flash中下载VxWorks映像,首先需要把VxWorks映像拷贝到flash中,在shell中的操作命令为copy “VxWorks”,”/tffs0/VxWorks”,然后修改config.h文件中引导行,如下:

#define DEFAULT_BOOT_LINE \

"tffs=0,0(0,0)host:/tffs0/VxWorks h=192.168.0.153 e=192.168.0.154 u=target pw=target o=cpm"

修改完后,重新编译生成bootrom_uncmp.bin,并把它烧写到flash中(注意:该flash与上面建立TFFS文件系统的flash不一样,它并没有建立文件系统)。然后重新启动,即可看到如下启动画面:

boot device : tffs=0,0

unit number : 0

processor number : 0

host name : host

file name : /tffs0/VxWorks

inet on ethernet (e) : 192.168.0.154

host inet (h) : 192.168.0.153

user (u) : target

ftp password (pw) : target

flags (f) : 0x0

other (o) : cpm

Attaching to TFFS... done.

Loading /tffs0/VxWo

rks...894304

Starting at 0x10000...

Development System

VxWorks version 5.5.1

KERNEL: WIND version 2.6

Copyright Wind River Systems, Inc., 1984-2003

CPU: Motorola ADS - PowerPC 860. Processor #0.

Memory Size: 0x1000000. BSP version 1.2/5.

WDB Comm Type: WDB_COMM_END

WDB: Ready.

到此,说明引导成功。flash整个TFFS文件系统就已经建立成功。

四、 结论

VxWorks操作系统中支持TFFS文件系统,我们将VxWorks映像作为文件放到flash上,这就有利于开发者和用户更新应用程序而不需要影响bootrom,直接更新VxWorks映像或者将应用程序直接copy到flash中,然后装载到RAM中运行。

flash论文篇7

关键词:NAND;Flash文件系统;坏块处理

中图分类号:TP343文献标识码:A 文章编号:1009-3044(2007)17-31320-01

A Design of File System and Reliability about NAND Flash

CHENG Dao-yuan

(Southeast university ASIC Center, Nanjing 210096,China)

Abstract: Nand flash become widely used in embedded system because of high memory density and high memory speed. So how to improve quality of Nand Flash file system is a main subjectin this paper. First this paper present the design method of file system , main about FAT file system in embed system. And then a new method of dealing with the bad block is also introduced in this paper to get over the hindrance. The method is that replaces the bad block with free space on the flash. Bad blocks marked in the file allocation table are never used again. It has been carried out in a project with high stability.

Key words:NAND;Flash File System;Bad Block Management

随着嵌入式系统在消费电子,数据采集和工业控制等领域得到越来越广泛的应用。各个领域都对嵌入式系统提出了更高的要求。作为嵌入式系统中最重要的组成部分,存储系统呈现出了较快的发展速度。NAND FLASH作为一种安全、快速的存储体,具有体积小、容量大、成本低、以及更多的擦除次数等一系列优点,已成为嵌入式系统中数据和程序最主要的载体。由于NAND FLASH在结构和操作方式上与硬盘、E2ROM等其他存储介质有较大区别,使用NAND FLASH时必须根据其自身特性,对文件系统进行特殊设计,以保证系统的性能达到最优。同时由于工艺和使用环境的问题,NAND Flash存储器中不可避免的会出现坏块,因此必须提出有效的坏块处理方法,以解决坏块问题,实现存储系统的高可靠性。

1 NAND FLASH特点

1.1 区块结构

NAND Flash存储器内部分为若干个存储单元块(block),每个存储单元块又分为若干个页(page),存储单元块是最小的擦除单位,页是写入数据的最小单位。

1.2 先擦后写

由于FLASH的写操作只能将数据位从1写成0,不能从0写成1,所以在对存储器进行写入之前必须先执行擦操作,将预写入的数据位初始化为1。擦操作的最小单位是一个区块,而不是单个字节。

1.3 操作指令

NAND FLASH的操作不能像RAM那样,直接对目标地址进行总线操作。比如执行一次写操作,它必须完成一段时序才能将数据写入到FLASH中。

1.4 坏块

NAND FLASH的坏块是随机分布的,可能在出厂时就存在坏块,也可能在使用过程中,导致某些区块的损坏。区块一旦损坏,将无法进行修复。如果对已损坏的区块进行操作,可能会带来不可预测的错误。

2 NAND Flash 文件系统的设计

将整个文件系统分为两个层次,第一层,直接和物理硬件接触,管理Flash物理存储器,第二层,在基层之上,实现文件管理,如实现FAT。

2.1 第一层

2.1.1 物理地址到逻辑地址的映射

为了在NAND Flash物理地址和FAT操作的逻辑地址之间建立一个好的映射关系,须对NAND Flash的存储空间在逻辑上进行了重新定义。物理上整个Flash划分为若干存储单元块,每个存储单元块内部分成若干物理页,每个物理页又可以分为基本的数据区和其它信息保留区(如安全性)。逻辑上将整个存储器划分为若干簇,以簇作为最小存储单位。确定好簇和物理页及物理区块的对应关系后,物理地址到逻辑地址的映射也就确定了。

2.1.2可靠性设计

一个完善的文件系统需要有良好的可靠性。笼统的讲,可靠性的实现,需要存储器信息的支持。

2.1.3 均衡擦写次数

由于NAND Flash有一定的使用寿命,所以要尽量避免频繁地对同一块地址操作,以免造成局部单元提前损坏,可以设计算法,将NAND Flash中要更新的数据直接写入一个空块中,降低由于NAND Flash先擦除后写入的特性带来的对块的频繁擦除。

2.2 FAT设计

在NAND Flash上,建立了FAT文件系统来对文件操作进行管理。将FAT文件系统具体分为以下四部分:

2.2.1 FAT的引导区

该引导区存放代码所需的信息及最重要的文件系统信息。这些信息包括了NAND Flash存储器的类型、容量以及划分成多少个簇;每个簇包含多少扇区、FAT表数目、保留扇区数、根目录的首簇号及根目录入口数、版本信息等等。引导扇区是在格式化NAND Flash时生成的。

2.2.2 FAT的文件分配表

文件分配表存放文件所占用的存储空间簇链以及NAND Flash存储器的占用和空闲空间的情况。为了防止文件分配表损坏而引起文件的丢失,可以在系统中保存两个相同的文件分配表

(下转第1324页)

(上接第1320页)

FAT1和FAT2,以改善其安全性。在文件系统的操作中,程序对FAT表结构的两个备份进行顺次修改,以此确保Flash存储器上总是存有一整套完好的文件分配表。系统对FAT表的访问原理如下:访问文件时先从要目录中找到该文件的目录项,从中读出首簇号。然后在FAT中找到从该首簇号开始的簇链,簇链上的簇号即为文件依次存放的位置,这样便可以进行数据读写了。

2.2.3 FAT的根目录区

FAT的根目录区是固定大小的紧跟在FAT表后的区域。FAT16中将从FAT区之后紧跟的32个扇区作为根目录区,可以保存512个目录项。每个目录项记录了该文件的文件名、文件属性、文件大小、文件创建的日期和时间以及文件在数据区中所占的首簇号,即该文件在FAT表中的入口等数据。

2.2.4 FAT的数据区

数据区存在文件的数据内容。文件系统对数据区的存储空间是按簇进行划分和管理的。

3 NAND Flash可靠性设计

由于工艺和使用环境的问题,NAND Flash 存储器中不可避免的会出现坏块,这一弱点长期影响存储的可靠性,带来不可预测的后果,因此如果能解决坏块问题,将大大提升NAND Flash 的可靠性。本文提出一种在文件系统底层解决坏块问题的方法,即利用Flash存储器上未使用的空间来代替坏块,同时在FAT表中标记出损坏的坏块信息,避免以后对坏块进行读写。具体方案如下。

3.1 坏块发现

NAND Flash对存储器的写入采用先擦后写的流程,擦除的最小单位为1个block,写入的最小单位为一个page。在写入数据时,先在内存中申请1个block大小的缓冲区,然后在存储空间找到要写入数据的page所在的block,将该block全部读入缓冲区,在缓冲区中将数据写入相应的page,写完后,将该block写入Flash,若在写入Flash时多次报错则判定该block为坏块

3.2 坏块处理

3.2.1 在内存里建立文件系统的反向簇链,方便进行坏块的替换。

3.2.2 备份坏块对应簇的FAT表项,在FAT表中标记出该坏块的信息。

3.2.3 寻找替换空间

以1个block包含32个page,1个簇包含16个page,即1个block包含2个簇为例进行说明,坏块N包含x,x+1簇,首先从Flash的末尾处开始寻找空闲块,找到即进行整块的替换,见图1。

图1 替代块

若一直寻找到数据区的开头都没有空闲块,则重新寻找空闲簇,以簇为单位进行替换,如图2,假设Y,Z分别为X,X+1的替换簇,由于簇在物理空间上并不一定连续,因此在进行簇的替换时可能会出现3种情况:

情况1:替换簇不在坏块中,即Y,Z不在坏块N中

处理方法:直接进行簇的替换,将备份的索引号,直接赋值给替换簇的FAT表项,同时更新反向簇链。

情况2:替换簇在坏块中,即Y或者Z也在坏块N中,这时要再分两种情况

情况2.1 替换簇在被替换簇之前

处理方法:因为替换簇自己在之前已经被替换,所以要备份之前更新FAT表时替换的新簇簇号,根据两坏簇间距离,到替换簇号备份中查找其应对应的簇号,来更新当前簇的链接,同时更新反向FAT表。

情况2.2 替换簇在被替换簇之后

处理方法:因为替换簇是坏簇,其替换的位置未知,所以只更新反向FAT表,其本身的FAT表项到更新替换簇的前续节点时再做更新。最后查询反向FAT表,将替换的各个新簇接回其前续节点。

图2 替代簇

如果FAT表中已经没有空闲簇则报错,该方案完成。

使用一块32M的NAND Flash,将测试代码先写入一块数据,然后读出数据进行校验的方法对上述方案进行论证,通过两个星期反复的读写,结论为:在没有采用坏块处理程序之前,由于坏块的存在,导致写入的数据在大约12M之后全部丢失,采用坏块处理程序之后,运行的两周内没有任何校验错误。由此可见其可靠性得到很大提升。

4 结语

通过上述对NAND Flash文件系统的设计,使得NAND Flash的性能大大优化,能够满足各个领域对嵌入式存储器越来越高的要求,同时在面对NAND Flash所固有的坏块问题上,通过上述坏块处理的算法,很好的解决了在NAND Flash 存储介质上运用FAT文件系统的坏块问题,增加了整个嵌入式系统的存储可靠性。

参考文献:

[1]陈育智.嵌入式系统中的Flash 文件系统[J].单片机与嵌入式系统应用,2002(2):5-8.

flash论文篇8

关键词:分层理念;Flash课程;教学实践

中图分类号:G642文献标识码:A文章编号:1009-3044(2012)05-1120-03

Based on the Hierarchical Concept Flash Curriculum Design of Teaching Practice

HUANG Wan-quan

(Zunyi Vocational and Technical College, Zunyi 563000, China)

Abstract: In the Flash teaching practice, students and teachers is an organic whole, based on stratified teaching mode teaching method can obviously optimize and enhance student learning Flash level. Based on the analysis of hierarchical teaching based on the concept, with ex? amples, expounds the stratified teaching concrete implementation strategies, and experimental results prove the stratified teaching to stu? dents’ achievement is to promote and enhance the role of.

Key words: hierarchical concept; Flash course; teaching practice

Flash的应用非常广泛,在多媒体、网页设计、移动终端等领域都有着诸多应用。Flash课程应该以市场与就业的需求来设定培养目标,因此,培养学生职业能力,使之成长为技能型、应用型复合人才,是Flash课程的努力目标。当前的教育模式存在着一些不足,由于Flash课程是统一目标、统一大纲的,学生在学习中容易出现两极分化现象。一些对Flash课程感兴趣的学生,难以发挥其探索性、创造性,而对Flash课程无兴趣的学生则怕学、厌学。以上的现状不利于综合人才的培养。素质教育的实施要求教育工作者能够因材施教,本文在笔者讲授Flash课程的基础上,以分层理论为依据,结合Flash课程的特点,在分层教学模式的具体策略上给出自己的观点和做法,具有一定的理论价值和实践意义。

1分层教学概述

分层教学的起源是孔子的“因材施教”教学观。“分层教学”模式有利于提升学生学习的积极性,达到全面发展的目的,使得基础好的学生拥有发展空间,而基础差的学生也能够受到教育。具体来讲,分层教学结合学生客观学习水平“分层”施教,这种教学模式充分尊重了学生的个性,可以有效促进所有学生均衡发展。Flash课程实施分层教学,能够消除当前信息类课程教学重局部、偏离整体的不良倾向,将当前课程教学中以教师为中心、单纯传授知识的模式,向培养自主学习能力和运用能力,以学生为中心转变。

2 Flash课程分层教学的具体实践

2.1 Flash的授课分层实践

分层授课是实施分层教学的第一步。教师在Flash课程的授课分层中,必须引入合理的案例进行教学,分层授课有利于学生主动接受知识,自主选择适合自身发展的学习层次。笔者在Flash授课中,把要讲授的案例按照难易程度做成三个版本,分别是基础级版本、中级版本、高级版本,给学生充分的自主选择权。这样教学效果才会显著。举例来讲,在学习Flash引导动画的时候,对于处于“基础级”的学生,只是要求其制作简单的一个任务,比如沿着一条固定路径,让一个小球做运动,同样沿着这条路径,再使一只蝴蝶作出移动等等;对于“中级”学习水平的学生,则提高难度,例如可以使移动的蝴蝶出现翩翩起舞的效果,而对于“高级”学习水平的学生,则在此基础上进行延伸,做出月亮绕着地球转的动画效果,而在此期间地球也要有自转。再比如,在进行逐帧动画讲解时,笔者结合学生兴趣,挑选了卡通人物走路等动画。这些动画在技术的实现上可简可繁,笔者对于处于“基础级”的学生,只要求其能够实现逐帧动画,以使之掌握软件的基本功能;对于“中级”学习水平的学生,则鼓励其根据Flash软件的补间动画功能、路径引导和遮罩技术来实现相对而言难度比较大的效果;而对于“高级”学习水平的学生,则鼓励他们运用遮罩技术,实现树叶的摇曳、水的波浪等更具生动性的功能。使学生根据自身情况把握知识的脉络。

2.2 Flash的作业分层实践

作业是夯实Flash课堂教学效果的有效手段,对作业进行分层,有利于进一步提升教学质量。作业分层的关键点,是结合不同 层次学生的知识水平,使处于不同层次的学生做能力范围内的事。笔者在Flash的作业中,对基础级的学生,中等层次的学生,高层次的学生采取了有针对性的作业方法。举例来讲,有一个作业,要求学生以北京奥运为背景,首先在画面显示天安门,稍候,天安门上,以逐渐变大的形式显示文字“迎接2008北京奥运”,此时,一幅从右向左移动的长城图像渐渐覆盖天安门图像。在这个动画作业中,对于“迎接2008北京奥运”文字的变大,笔者要求“基础级”的学生以运动变化为主,采取教材所推荐的运动补间动画来实现;而对于“中级”水平的学生,则鼓励其使用形状补间动画来实现,并能够详细区分二者的区别与联系。而对于“高级”水平的学生,鼓励其进一步探究使用转换元件创建补间动画的方法,能达到预期效果。

2.3 Flash的测评分层实践

检验Flash教学效果的最佳途径之一就是测评,在笔者的教学实践中,从两个方面来体现测评的分层。首先是Flash教学实验课作品的评价,不同层次的学生将不同难度的作品上交,教师结合不同层次的作品进行点评。其次是单元及期末测试,这样的测试有助于充分提升学生的自主学习能力,教师在评价时应注重肯定他们的努力和成绩。笔者的做法是,对于“基础级”的学生,Flash的测评以机试为主,着重考查学生对理论和操作的掌握程度;对于“中级”的学生,则鼓励其在参加考试的基础上增加实训的机会,将实训成绩也纳入到课程测评,体验当前企业需求,激发内在动力;而对于“高级”的学生,还可以鼓励其参加各种比赛进一步激发其动手及创新能力,按所获奖励进行加分。

3分层教学的效果

在阐述了分层教学培养的方法与模式之后,笔者结合自己的教学实践,对##学校的学生进行分层教学培养实验,以证明分层教学对于学生FLASH成绩的提高,以及综合素质和创新能力的提升。

3.1实验的方法

1)实验的指导思想

本实验引入自然实验的方法,在学科内容和教材体系不改变,授课时数和学生作业不增加的情况下,结合教学具体模式的优化,使学生的分层教学得到培养,进而提升其学习成绩。

2)实验设计方案

本实验采用的是“等组实验法”。教学模式为自变量,包括两种水平,分别是传统教学模式和分层教学模式;有两个因变量:分别是:学生学习水平,以及学生考试成绩。

3)被试者的选择

本实验选区为笔者工作的##学校。选取被试者遵循的原则是:一个实验班,一个对照班。在进行实验前,两个班的Flash水平相似。选取被试的程序为:首先,将全部平行班学生的考试总成绩进行差异检验,检验之后,找出差异最不显著的两个班,分别作为实验班与对照班。表1为抽取的最终结果。

表1实验班和对照班抽取的最终结果

4)教材的选取

《Flash教程》机械工业出版社2010年版。

5)实验时间的选取

2010-2011学年的第2学期。

6)具体的实验程序

笔者将实验设计为两个阶段。在第一阶段,重点为FLASH知识的学习。这一阶段的主要任务是对实验教师进行培训,使这些教师能够掌握本文构建的FLASH分层教学教学模式。在第二阶段,开始正式教学与实验。

在学校期末考试前,对学生的学习自主性实施测验,分别对总量表的得分及各分量表的得分进行统计,以此来评价分层教学学生水平;统一评阅学生的期末考试试卷,将学生的期末考试成绩作为另一指标,以此去检验分层教学模式实际效果。

3.2实验结果及分析

1)下表所示为在不同的教学条件之下,实验班和对照班学生的自主性比较。

表2实验班和对照班学生的学习自主性比较

2)表3所示为两种条件下学习成绩的比较

表3实验班和对照班学生的成绩的平均数和标准差

由数据可知,实验班Flash成绩高于对照班。

3)分析和讨论

对比一年级和二年级两个年级的实验数据,实验班Flash成绩高于对照班。其中的原因是,不同学生独立意识和自学能力有所不同,因此这些学生对教师在课堂上的过多讲解有不同的要求,因此就更倾向于教师能够在课堂上进行分层教学的实践,他们渴望经由适合自身的独立学习,来证明自己拥有学习能力,从而赢得同伴的尊重。本文所设计的分层教学模式正是基于学校学生这方面的心理需求,因而在一定程度上发掘了他们的潜力,激发了其学习的热情。在学习自主性这一个指标上,在学习动机、学习时间、学习方法、学习结果等方面,一年级实验班有明显的优势,而二年级实验班只是略有优势。这个结果可以说明,对高年级学生更适用分层教学教学方法。

由此可以证明,基于分层教学模式的教学方法可以比较明显的优化和提升学生的Flash学习水平。

4结束语

在Flash教学实践中,学生的学与教师的教是一个有机的整体,学生的思维方式和自主学习能力的形成直接受到教师的教授方式和教学理念影响。笔者在研究中,结合学生的实际水平和特点,进行分层教学策略,教师引导学生自我监控,从而培养学生学习能力。在分析学生学习现状与不足的基础上,通过设计具有针对性的分层教学模式,培养学生自主学习的能力。与此同时,这种教学模式更需要学校领导、家长和社会的大力支持。在新课程改革的背景之下,现行学校的教育机制将会趋于更加完善与合理,对教师而言,是机遇,也是挑战。

参考文献:

[1]许毅.在高职学校中实施分层教学浅议[J].职业教育研究,2010(1):12.

[2]杨文尧.中等职业学校开展分层教学的几种尝试[J].中国职业技术教育,2011(23):23-24.

flash论文篇9

关键词Windows CE;YAFFS;NAND;驱动开发

中图分类号 TP311.1文献标识码A文章编号 1674-6708(2009)05-0054-02

0 引言

Windows CE是微软公司设计的嵌入式操作系统,具有系统体积小、界面友好、可扩展、应用程序开发上手快等特点,目前,在手持式测量设备领域的应用越来越多。手持式振动信号测量仪是一种电池供电、便于现场或野外携带和使用的测量设备,主要功能是对振动信号进行实时连续的采集、显示、分析、处理和存储。

1 YAFFS文件系统简介

YAFFS是一种类似于JFFS/JFFS2的专为NAND Flash设计的嵌入式文件系统,适用于大容量的存储设备。和JFFS相比,YAFFS减少了一些功能,但是速度更快、占用的内存更少、NAND Flash的使用寿命也更长。YAFFS文件系统采用层次结构设计,可分为三层:文件系统管理接口层、YAFFS内部实现层和NAND Flash接口层。

2 YAFFS NAND Flash接口层

YAFFS NAND Flash接口层的主要功能就是为文件系统管理接口层、YAFFS内部实现层提供一个与具体NAND Flash硬件无关的访问服务,提高了代码的可移植性和通用性。在对NAND Flash接口层相关代码进行深入的分析后,我们发现为了使YAFFS能够对NAND Flash进行访问,必须为NAND Flash提供一个块设备驱动程序。与NAND Flash物理访问相关的代码全部由其实现,而YAFFS则是通过给该设备驱动程序发送IOControl请求来实现对NAND Flash的读、写、擦除等具体操作,具体来说,主要有以下几个操作请求:

1)IOCTL_DISK_NAND_INIT 功能是命令NAND Flash驱动程序对Flash芯片进行初始化。

2) IOCTL_DISK_NAND_GETSIZE 功能是获取NAND Flash的存储容量(磁盘空间)。

3) IOCTL_DISK_NAND_GETNAME 功能是获取设备在Windows CE中显示的文件夹名称。

4) IOCTL_DISK_NAND_GETPARTITIONS 功能是获取NAND Flash中的分区表。

5) IOCTL_DISK_NAND_WRITE 功能是将缓冲区中的数据写到NAND Flash中的指定页中。

6) IOCTL_DISK_NAND_READ 功能是读取指定的页的数据。

7) IOCTL_DISK_NAND_ERASE 功能是从NAND Flash中的指定块擦除。

3 Samsung K9K8G08U0A Flash

目前,在嵌入式系统领域广泛使用的Flash主要有两种:一种是采用NOR技术的NOR Flash,另一种是采用NAND技术的NAND Flash。这里重点介绍一下NAND Flash,首先,从内部存储器的组织形式上看,NAND Flash的内部可分为若干个块,块又分为页,页而由数据存储区和备用区两部分组成;其次,NAND Flash不能按照字节进行访问,而是以页为单位进行读、写,以块为单位进行擦除;第三,NAND Flash的地址、数据、命令端口复用,读、写、擦除等操作都是相应的命令来完成的。

SAMSUNG的K9K8G08U0A NAND Flash内部共有8192个块,每个块有64个页,每页包含2048字节的存储空间和64字节的备用空间,总容量为1G字节。K9K8G08U0A的以页为单位进行读和写,以块为单位擦除,其典型的随机页读时间为25us、顺序页读时间为25ns、页写时间为200us、块擦除时间为1.5ms。

4 K9K8G08U0A块设备驱动程序的实现

Windows 环境下的块设备驱动程序一般都实现为流接口驱动的形式,即流接口驱动需要的XXX_Close、XXX_Deinit、XXX_Init、XXX_IOControl、XXX_Open、XXX_PowerDown、XXX_PowerUp、XXX_Read、XXX_Seek 、XXX_Write都要实现,XXX表示设备名前缀,这里可以是“DSK”。由于YAFFS的NAND Flash接口主要是通过IOControl的形式实现的,所以,相应的与K9K8G08U0A读、写、擦除等操作相关代码也都在DSK_IOControl函数内实现。下面给出DSK_IOControl的部分程序代码:

DSK_IOControl的部分程序代码如下:

BOOL DSK_IOControl(……)

{

switch (dwIoControlCode)

{

case IOCTL_DISK_NAND_WRITE:

NandRePage(pDisk,pBufData,pBufSpare,ifData->chunk);break;

case IOCTL_DISK_NAND_READ:

NandReadPage(pDisk,pBufData,pBufSpare,ifData->chunk);break;

case IOCTL_DISK_NAND_ERASE:

NandEraseBlock(pDisk,*BlockNumber);break;

}

}

具体的读、写、擦除等操作分别由NandReadPage、NandWritePage、NandEraseBlock三个函数按照Samsung公司K9K8G08U0A的时序规范来实现。

5 结论

flash论文篇10

论文关键词:流媒体,FMS,Flash,RTMP,实时视频

 

1 引言

流媒体技术是为解决以Internet为代表的中、低带宽网络上多媒体信息传输问题而产生、发展起来的一种新技术。流媒体技术是利用数据缓冲技术,采用编解码系统和特殊的网络协议,对网上多媒体文件边下载解压缩边播放,目前已经成为网络上音、视频(特别是实时音视频)应用的主要解决方案。视频流媒体是视频技术和网络通信技术发展的产物,广泛应用于实时视频、远程教育、网络电台等方面。

FMS(FlashMedia Server)给世界带来了全新的通信方式,它是用于用户之间相互通讯的新平台。该平台集成了通讯功能和应用程序功能,它通过Flash Player在客户端提供音频共享、视频共享和共享数据流。使用该平台,人们可以方便的进行实时通信,可以通过网络存储录制下来的音频、视频RTMP,也可以共享数据对象,并且可以将这些音频、视频和共享数据对象传递给多个客户端,实现实时同步共享。FMS平台集成了Flash多媒体交互的特性,又添加了实时音频、实时视频和实时数据流等新特色。

Flash是美国Macromedia公司(2005年4月已被Adobe公司并购)于1999年6月推出的交互式矢量动画设计软件。Flash技术具有强大的图形表现力和交互操作性,它是一种交互式动画设计工具,可以将音乐,声效,动画以及富有新意的界面融合在一起,从而制作出高品质的动态效果。Flash文件最终将编译并生成SWF文件,通过Flash Player来解释运行[1]。

2RTMP协议

流媒体技术实现的关键就是流式传输,所以需要合适的流式传输协议。由于TCP协议需要的开销较多,所以不太适合传输实时多媒体数据。FMS服务器使用RTMP(Real-Time Messaging Protocol,实时通信协议)来高速传输音频、视频和数据信息论文开题报告。RTMP是一种未加密的TCP/IP协议,当Flash影片要使用FMS服务器时,Flash Player就连接到服务器,这样Flash Player和FMS服务器之间就建立了往复的源源不断的信息流[2],如图1所示。

图1 FMS、Web服务器与客户端Flash Player的连接

3FMS服务器

3.1FMS流媒体服务器的配置与部署

FMS服务器可以对多个端口进行监听,所以在安装过程中可以定义多个端口号,每个端口号之间使用逗号隔开RTMP,而管理服务器的端口号只有一个(最好使用默认安装)。FMS服务器安装成功后,将在系统服务中新加两服务:Flash Media Server和Flash Media AdministrationServer。在“%FMS安装目录%”文件夹下主要包括以下文件[3]:

FMSMaster.exe:服务器应用程序。

FMSAdmin.exe:服务器管理控制器,管理员控制台所连接到的服务,用来执行管理任务。

FMSCore.exe:FMS应用程序都在这里运行,所有的脚本执行,流的发生都是在这里完成。

FMSEdge.exe:文件监视到Flash Media Server的连接,把连接传给FMSCore 进程。

fms_adminConsole.swf、fms_adminConsole.hmtl:功能一样,都是用来连接FMSadmin服务的管理工具,不同之处一个是SWF的,一个是HTML进去之后界面都差不多。

applications:存放了FMS在安装时默认的两个应用程序,live、vod,用户自己开发的应用程序也要存放这里,通过客户端NetConnection call 连接到这个应用程序。

(1)FMS服务器和控制台的启动与停止服务

FMS的启动包括服务器的启动和控制台启动两个方面,可以通过“开始”菜单启动,如果在进程表中看到FMSMaster.exe、FMSCore.exe、 FMSEdge.exe和FMSAdmin.exe四个进程,说明FMS服务器和FMS服务器控制台已经启动成功。FMS服务器和控制台的关闭也可以通过相应菜单执行或关闭进程中的FMS四个进程即可。

(2)FMS控制台账号、密码的管理

FMS控制台的启动,需要设置管理员帐户和密码,设置的用户名和密码存放在“%FMS安装目录%”下的conf\fms.ini文件中,可以设置如下:

SERVER.ADMIN_USERNAME = chenrongRTMP,此行代码设置和修改用户名。

SERVER.ADMIN_PASSWORD = 654321,此行代码设置和修改密码。

(3)指定applications所在位置

FMS系统安装后,所有要联机的目录都放在安装目录下application文件夹中,如果要进行开发,也必须先在applications目录中创建目录并把程序存放在此。而application的位置都是预设在安装目录下,通常这样的管理很不方便。所以如果要将applicetions要建置的目录放在其它好维护的地方(比如放置于D盘根目录),则需做如下配置和部署。

修改“%FMS安装目录%”下的conf\fms.ini文件的VHOST.APPSDIR:

VHOST.APPSDIR = D:\applications。

(4)指定FMS使用的IP和Port

如果要设置或指定FMS服务器IP和Port,则需要修改“%FMS安装目录%”下的conf\fms.ini文件中的第2个ADAPTOR.HOSTPORT。

ADAPTOR.HOSTPORT为210.89.105.21:1935

(5)视频文件部署

在FMS安装目录的applications文件夹下,默认有vod和live两个文件夹 (vod提供视频;live提供实时视频服务)。

如果用户需要设置自己的视频文件夹RV,则需完成下述工作:

①复制vod文件夹下的所有文件到 RV文件夹下;

②用记事本打开安装目录下RV文件夹中的Application.xml,将 VOD_DIR改为RV_DIR;

③用记事本打开FMS安装目录的conf文件夹下fms.ini文件,增加一条设置: RV_DIR=C:\ProgramFiles\Adobe\Flash Media Server 3.5\applications\RV\media并保存文件;

④将要的视频文件放到RV\media 文件夹下。

3.2开发环境的调试及FMS组件安装

在创建实时通信应用程序时,需要创建Flash影片程序和ActionScript通讯脚本(ASC),而Flash环境是创造影片应用程序的最佳选择,同时它也可以编写ASC,所以选择Flash作为软件开发的环境。

应用FMS的组件可以方便快捷的开发通信应用程序。FMS组件包括了服务器端和客户端AS,同时在组件安装包中有一个Communication Components.fla文件和scriptlib文件夹,它们是创建实时通信所需的重要组件。

将Communication Components.fla文件复制到Flash安装目录Communication Components下,启动Flash即可调用该组件建立通信程序[4]。

将scriptlib文件夹复制到FMS安装目录下并覆盖原有scriptlib目录RTMP,启动FMS服务器,该组件的设置即可生效。

4创建Flash通信应用程序[5]

要创建一个可供多人视频聊天的Flash通信应用程序,可以使用内建的Communication Components来实现。

(1)在安装FMS服务器时已经创建了一个%\applications\的文件夹,在该文件夹下新建名为flash_live_publish的文件夹,这就意味着创建了一个名为flash_live_publish的Flash通信应用程序论文开题报告。

(2)加载component.asc。因为在应用程序中需要使用通讯组件,所以必须加载位于scriptlib目录中的commponents.asc。

(3)利用Flash创作环境,建立一个AS通信文件,在该文件下键入核心代码:load(“components.asc”);将该文件命名为main.asc并保存于FMS服务器的flash_live_publish文件夹下。

(4)利用Flash环境建立一个Flash文档,即创建该通信应用程序的GUI(图形用户界面)。

① 在舞台上拖放一个PeopleList组件实例,并在“属性”面板上将其命名为“PeopleList_mc”,用于显示用户列表。

② 在舞台上拖放一个Chat组件,同理命名为“Chat_mc”,用于发送文字消息。

③ 在舞台上放置6个AVPresence组件,分别命名为“AVPresence1、AVPresence2、AVPresence3……AVPresence6”,用于显示音视频。

④ 在舞台上放置一个ConnectionLight组件,命名为“ConnectionLight_mc”,用于显示连接状态。

⑤ 在舞台上放置一个SimpleConnect,该组件是核心组件,用于连接到FMS服务器上的通信应用程序。选中该组件,并定义其参数:

Application Directory参数:键入rtmp://myFlashHost/flash_live_publish;使用rtmp协议连接到flash_live_publish应用程序(myFlashHost表示计算机主机名RTMP,在这为210.89.105.21)。

Communication Components参数:单击该参数右边放大镜按钮,在弹出的“值”对话框中添加9个值,并定义已经创建的几个组件值为――ConnectionLight_mc、Chat_mc、PeopleList_mc、AVPresence1、AVPresence2、AVPresence3……AVPresence6。

⑥ 设置并调整好各组件的位置和属性后,将该文档命名为sample,并生成sample.swf文件。

至此,一个可供多人视频聊天的Flash通信应用就实现了,客户端安装了Flash Plyaer,FMS服务器正常运行,用户就可以通过访问sample.swf与其他人聊天。效果图如图2所示。

图2FMS+Flash实时视频应用截图

5小结

FMS是一项新技术,利用Flash+FMS环境来创建实时通信系统,可以轻松快捷的实现用户间的实时交流;并且Flash技术已比较成熟,在应用时不需担心视频编码和安装插件的问题,所以该系统的实现为创建视频点播、会议系统、在线社区、远程培训提供了很好的参考意义,具有一定的应用价值。

参考文献:

[1]刘明辉,任用攀,黄兴.Flash与后台ASP/ASP.NET/PHP/JavaScript/Delphi总动员[M].2008.05第二版.北京:清华大学出版社.2007.06.

[2]戴光麟.基于FMS的远程互动教学系统的设计与实现[D]. 硕士,浙江工业大学,2007.

[3]张亚飞.至理:精通Flex网络开发技术――整合ActionScript/JavaScript/Ajax动态网站[M]. 北京:电子工业出版社。2009.02.

[4]杨浩宇.FMS初体验[Z].http://blog.csdn.net/yanghoyu/archive/2007/10/26/1844716.aspx. 2007.10

[5]张亚飞.Java for Flash动态网站开发手札[M].北京:电子工业出版社.2006.12.