搭建式开发(通用8篇)
搭建式开发 篇1
摘要:为适应软件开发对业务敏捷性和即时构造性的新要求,采用面向服务的思想,对搭建式软件开发理论和技术进行了研究和实现。与已有的开发模式相比,搭建式开发技术的优势在于它能将工作流、W ebG IS集成到一个面向服务的可视化的搭建平台中。通过电子政务系统的搭建过程表明,搭建式开发技术具有按需、即时、实用的特点,增强了企业的竞争优势。
关键词:面向服务,搭建式开发,搭建平台,工作流,WebGIS,电子政务系统
0 引 言
随着Web服务时代的到来,传统软件开发技术和方法越来越凸显出不足。首先,传统软件开发技术和方法都是从需求分析做起,但需求总是在变[1]。其次,传统的编程技术所形成的软件系统都是刚性的。一旦开发完成并投入运行,就是固定不变的,不能在使用过程中进行调整和改变。再次,基于传统企业构架的企业系统从整体角度来看一般是一个多阶段交错的复杂系统,往往是不同平台、不同开发工具、不同管理规范、不同需求、不同时间研发的一个信息模块集,这种信息模块集的复杂性严重影响了企业系统的敏捷性和稳定性,影响了企业领导者的决策和企业核心能力的发挥[2]。
面对变化的需求,软件开发方法应以动态和灵活作为应对策略。因此,软件开发的关键问题就是如何改善开发方法,使开发的软件具有更强的适应变更能力,满足企业的业务敏捷性需要。基于此,文章提出了一种搭建式软件开发理论和技术。
1 研究现状
面对目前政务、科研、应急等领域普遍存在业务需求快速多变,迫切需要信息系统能够按需动态集成,以即时应对需求变化的现状。SOA(面向服务的架构)以其高度的抽象性和灵活性,为解决软件重用和软件集成提供了一种新的解决方案。通过采用面向服务的体系结构,企业能够迅速便捷地构建开放的、模块化的、可重用的软件组件。所以,采用面向服务的思想研制与开发软件逐步成为热点。
目前,面向服务的搭建领域研究中,最终用户编程方面的研究工作还不多[3]。国外研究现状是:IBM在2002年提出了按需计算计划,其目标是使任何设备、任何网络和任何数据都可以方便地共享与交换,从而帮助企业快速构造所需的商业应用,灵活地面对客户需求、市场机会,或者对外部风险作出适当的反应;WSOM(Web Services Outsourcing Manager)是一个基于客户需求的动态Web服务集成框架,其目标是利用现有的Web服务使点到点的商务过程组合完全自动化。该模型在非正式的、主观的客户需求与客观的、机器可识别的工作流语言之间搭起一道桥梁,通过监听和协调商务过程的组成部分,使它在运行期间能够适应新的需求;斯坦福大学的SWIG小组提出了“零代码服务组合”的思想,是通过组合已经存在的能够提供一定服务的功能组件,建立满足新的需求的应用系统并基于此思想,建立了一个针对Web服务的组合框架模型WeSCos,可以缩短应用系统的搭建周期,是提高系统性能的有效方法。国内研究现状:中国科学院计算技术研究所网格与服务计算研究中心提出了面向服务的大规模集成化应用构造方法—CAFISE(Convergent Approach for Information Systems Evolution),提出了VINCA语言(A Visual and Personalized Business-level Composition Language),从个人业务的角度出发,以按需、即时地进行分布式应用集成为目标,通过服务资源的业务级抽象、服务虚拟化等一系列关键技术,为最终用户提供一种可以自行构造应用的方法,从而缩短应用开发周期、降低应用开发费用[4];文献[5]提出了一种面向服务的应用的及时构造方法:即能够即时地组合既有的不同服务资源来构造满足用户个性化需求的应用。文献[6]在将业务组件转换为SOA下服务方面做了初步的探索和实践;文献[7]对按需搭建的EG系统的宏观与微观设计进行了初步的探讨。文献[8]提出了一种用户驱动的GIS服务与聚合软甲开发技术,这种技术是强调用户在整个软件过程中的能动性,在开发和积累大量基础性的服务资源的基础上,允许用户参与软件的聚合、组装和自定义过程GIS软件开发和应用模式。
但是由于其缺乏对服务资源进行业务级别的抽象,WSOM存在着客户所定义的需求并不一定能落实到物理服务上的问题。“零代码服务组合”的核心思想是通过组合已经存在的能够提供一定服务的功能组件,建立满足新的需求的应用系统,该项工作也只是刚刚起步,尚未见具体的研究结果公布,且功能组件的开发对软件开发人员的要求较高。中科院VINCA重在网格服务,对一般应用尚存在明显的局限性。
与已有的开发模式不同的是,搭建式开发技术将工作流、WebGIS集成到一个面向服务的可视化的搭建平台中,让数据层、应用逻辑层、Web服务层和表示层基于一些通信标准协议(如HTTP、SOAP)而彼此分开、相互独立,把满足及适应快速多变的业务需求的工作以简单的资源配置的方式通过“拖拽”式的“零代码”实现系统业务的灵活调整和定制,从而快速搭建系统。搭建平台可以从两个方面表现搭建的优越性:业务系统的搭建和GIS系统的搭建。业务系统搭建包括电子政务(主要指工作流系统),以及一般的业务系统,GIS系统搭建包括应用GIS系统、WebGIS、信息发布等,亦可实现一般系统与GIS系统的组合搭建。
2 搭建式开发技术
2.1 搭建式开发思想及其体系结构
可以这样理解搭建式开发技术:搭建式开发技术是指能够即时地组合既有的不同服务资源或者迅速地搭建出满足用户个性化需求的应用。相对于一般的面向服务的应用构造,它强调了按需和即时两个特征。其中,按需是指可以较低的代价构造面向服务的应用来满足个性化及多变的业务需求;即时是指可以较快的速度完成面向服务的应用的搭建以及时响应用户需求[5]。
本文把基于搭建式开发思想所实现的系统称为搭建平台。搭建平台力图从界面表现到数据管理各个层面上实现搭建:表单设计器实现界面表现和逻辑控制的融合;工作流实现逻辑控制,能够快速定制、修改、描述业务发生、发展、完成的过程。功能库提供基础功能服务,一项“服务”对应一个“服务组件”,由“服务”来构建“业务流程”;数据管理层由DB Toos或其他数据库工具来管理,如图1所示。
2.2 搭建式开发技术实现
搭建平台由以下几个部分组成:业务工作流、系统工作流、功能仓库、可视化表单、Web搭建框架,如图2所示。其中业务工作流、系统工作流、功能仓库集成在工作流管理系统中,业务工作流完成业务流程的定义、驱动、权限配置及状态监视,系统工作流扮演“可视化程序搭建”的角色,主要负责功能搭建,功能仓库主要负责功能的注入、修改、查询、驱动、会话维护等工作。可视化表单在自定义表单系统中实现,主要完成表单的编辑、数据绑定、功能绑定、插件编写、表单解释运行和数据填充、数据展示等功能。Web搭建框架即搭建框架运行系统。各子系统可独立使用,亦可通过中立的接口联合起来组成功能强大的系统,各部分结合的基础在于:平台提供统一、通用且可调用的接口,系统内置了功能完备的构建仓库,提供安全可靠的运行管理平台。
(1) 工作流管理系统
工作流是指业务流程的全部或部分自动化,在此过程中,文档、信息或者任务按照一定的过程规则流转,实现组织成员间的协调工作以期达到业务的整体目标。而工作流管理系统(WFMS)是一种能定义、创建和管理工作流执行的系统。
工作流体系结构中,主要可分为三层:(1)数据层:系统使用数据库存储系统数据(控制数据)和用户数据(主要指应用数据和其他相关数据),如图3所示。系统数据包括过程定义数据和工作流运行时数据。(2)业务层:包括工作流流程定义工具、工作流引擎、工作流管理监控工具和数据访问构件。其中工作流引擎是系统的核心模块,它的主要功能为解释工作流流程的定义、为工作流实例提供运行时环境、调度实例的运行。(3)表示层:用户分为三种类型:①流程定义人员,业务流程的建模和客户端应用程序的开发。②系统管理员,使用工作流管理监控工具对工作流的运行实例、活动实例的状态情况进行监控,可对角色和用户的权限进行配置。另外,也可以对现有的应用或者流程加以“封装”,为它们提供Web服务接口。③一般用户,即系统的最终用户。①和②类用户均使用工作流引擎同系统进行交互,③类用户通过统一的浏览器界面完成日常的工作。
基于搭建式开发技术平台工作流引擎提供给开发与应用者的是一个完全可视化的工作环境,将概括出一个抽象的、普遍适用的工作流业务流程逻辑图。通过工作流引擎绘制在工作流模版中,就可以完成业务逻辑模型的定制,搭建式开发技术平台会按照空间拓扑自动进行对控制逻辑的解释,实现了应用逻辑和过程模型来改进系统性能,实现对生产经营过程部分或全部的集成管理,提高软件的重用率,发挥系统的最大效能。
(2) 自定义表单系统
自定义表单系统是基于面向服务的构件,将界面表现和逻辑控制有机结合起来。其设计思路是将程序开发中常用的控制或业务功能在搭建平台中设计好,通过简单的设置参数或属性即可调用。
自定义表单工具搭建的表单主要是由HTML和脚本生成的,数据传输是靠XML HTTP(即AJAX)来完成的(如图4所示),将自定义表单工具开发出来的界面与搭建平台的业务工作流部分的节点相互动态地绑定在一起,进而可以快速地构建新的业务工作流程,达到业务人员自己构建满足实际需求的系统。
自定义表单系统包括一套通用插件库,基于面向服务插件,将界面表现和逻辑控制有机结合起来,能够灵活并所见即所得地“画”用户界面,提供丰富的服务器、浏览器控件和对数据库的管理功能,保证业务数据安全方便地存取,提供人性化的操作界面并具有逆向生成界面功能,支持多种数据库格式和丰富的二次开发接口,能快速适应需求的变更,让后台数据存取和逻辑处理高层抽象化,由页面单元来表现业务功能,结合搭建平台其他子系统,无需编码即可实现一般企业应用系统的搭建,大大提高了工作效率。
(3) 搭建框架运行系统
搭建框架运行系统采用多层架构构建,通过各个基础模块(功能模块、页面模块、流程模块),组成最基本的服务模块,作为最底层的支持,进而完成各子功能的封装,由子功能的叠加复用,形成各个业务线,进而形成功能完整的业务系统。它是企业应用的门户,集成了常用办公模块(今日办公、交流中心、短消息服务、公文服务、…)和业务管理功能,通过搭建平台的搭建结果在这里进行注册、测试、运行。系统提供丰富的二次开发接口、完善的扩展机制和强大的辅助开发配置工具,并且屏蔽了与业务不相关的技术细节,让软件开发更多地专注于业务本身,从而降低了软件开发难度和成本。
如上所述,通过工作流管理系统对业务过程进行抽象,可视化地搭建出工作流(流程模块),通过自定义表单系统制作表单和页面(页面模块),最后将表单嵌入到搭建运行框架(提供功能模块)中即可,而整个过程可能无需编码或者仅需少量编码且无需程序员的参与,可实现高效、低耗、即时、快速和随需所变的目标。
3实例研究——用搭建平台搭建电子政务系统
电子政务系统搭建平台是由一系列相互关联、相互调用的工具构成。使用搭建平台提供的工具组件,系统管理人员经过简单培训,可以在不了解数据结构和逻辑实现过程的情况下,完成对资源信息、业务规则和空间数据、表单数据的配置,快速搭建应用系统。当机构、岗位、业务、流程、表单、公文模板、地图等资源与环境对象发生改变时,通过“搭建”、“配置”、“部署”的方式对系统作调整,以适应不断变化的用户需求。
搭建平台负责定义业务的类型、业务规则、业务实现逻辑并配置相关的信息,将定义好的结果(即预先设置)保存在一个专门的数据库——支撑数据库内,一旦政务活动启动(请求服务),通过工作流引擎对支撑数据库的预置方案进行解释、调用,即形成了电子政务的运行平台(办公环境),如图5所示。实际运行系统如图6所示。
4 结束语
针对Internet在企业级应用上的不断发展、软件的复杂性急剧增加、企业多变的业务需求和竞争的加剧等,使得传统的软件设计思想在解决软件重用性、可维护性、信息孤岛和遗留系统等问题上越来越显得无能为力。本文设计并实现的搭建式开发技术具有实用性、先进性、易扩展和良好的数据管理能力等优点,最重要的是它能够随需所变和快速响应业务活动,并能整合原来的资源进行重复利用,提高了生产率,降低了成本,增强了企业的竞争优势,为软件开发理论和实践提供了一种新的思维,因此随着研究的深入,会有很好的应用前景。
参考文献
[1]张英俊,谢斌红,陈立潮.面向服务的软件体系结构的研究及探索[J].太原科技大学学报,2007,28(3):186-190.
[2]卢致杰,覃正,韩景倜,等.SOA体系设计方法研究[J].工业工程,2004,7(6):14-19.
[3]Powell A,Moore J E.The focus of research in end-user computing:Where have we come since the 1980s[J].Journal of End User Compu-ting,2002,14(1):3-22.
[4]韩燕波,熊锦华,张程,等.走进VINCA服务网格[N].计算机世界报,2006-11-06.
[5]赵卓峰.面向服务的应用的及时构造方法研究[D].北京:中国科学院研究生院,2005.
[6]张诗洁.基于科诺平台的SOA下业务组件(服务)的设计与实现[D].北京:北京化工大学,2005.
[7]徐丹丽,覃正.EG系统按需搭建的宏观和微观设计研究[J].情报杂志,2008,6:55-57.
[8]冯翔.用户驱动的GIS服务与聚合技术及软件开发研究[D].上海:华东师范大学,2008.
[9]迟文学.面向服务的搭建式软件开发技术研究[D].北京:中国地质大学,2008.
搭建式开发 篇2
关键词:支架式教学;脚手架;背景支架;情感支架;能力迁移支架;直观支架
随着课改的不断深入,支架式教学因其对于促进儿童的发展起着非常重要的作用而渐渐被大家所熟知和采用。支架式教学是以学生为中心,教师根据学生的“最近发展区”来搭建“支架”,学生在“支架”的帮助下充分发挥自己的主观能动性、创造性,最终达到学生自己有效建构知识的一种建构主义教学模式。这里所说的“支架”就是“脚手架”,借用了建筑术语。在教学中引入这一概念体现了“教”与“学”的关系:教师的“教”只是为学生搭建学习的“支架”,“支持”“协助”“引导”而不是“代替”学生学习;学生则在教师的帮助和指导下主动建构并内化知识和经验,促进自身能力的发展。
支架式教学的课堂应重视“脚手架”的搭建,通过“脚手架”的搭建,适时唤醒学生原有的相关知识经验,让这些相关知识经验在学生头脑中突显出来,使学生认识到这些知识经验与即将构建的新知识有着相当重要的联系,从而为学习掌握新知识作充分的准备。
一、复习旧知,搭建背景支架
奥苏伯尔认为,学习的实质是学习者使具有潜在意义的新知与其原认知结构建立实质性联系,进而扩建新认知结构的过程。可见,对于学生来说,任何一个新的知识都只能从自己已有的旧知发展得到,已有的知识就是学生获得新知识的基础,是学生继续学习的必要条件。“学困生”之所以感到学习吃力,甚至厌学,就是因为没有必要的基础知识。
这就给了我们一个启示:在学习新知识之前,教师要善于帮助学生找准新旧知识的连结点,唤起与新知识相关的旧知。通过复习旧知来搭建背景支架,从而使学生的原认知结构对新知的学习具有某种“召唤力”。
比如,我们在教学苏教版数学六年级下册《圆柱的表面积》时,学生已有的认知经验是圆的周长、面积计算和长方形的面积计算,都是以前学过的,我们要帮助学生回忆这些旧知识,可以先提问这些计算公式,再让学生通过如下练习熟练掌握:(1)求下列圆的周长和面积:①r=3 cm②d=4 cm③c=25.12 cm;(2)求长方形的面积:①a=4 cm,b=3 cm②a=5 cm,b=6 cm。
二、创设情境,搭建情感支架
数学来源于生活,生活中到处都有数学。我们可以用生活中的实际问题通过创设情境来搭建情感支架,让学生有一种身临其境的感觉,这对于学生的学习过程具有明显的推动力,能促使学生以积极饱满的热情去学习,从而能最大限度地激发学生学习数学,探究数学的兴趣。
例如,在教学苏教版数学五年级上册《找规律》一课时,可以这样导入:国庆节到了,小明和爸爸、妈妈到公园里玩,只见公园里张灯结彩,遍地鲜花,人群涌动。爸爸问小明:你知道鲜花是怎么排列的吗?照这样排列下去,第x盆是什么颜色的花?彩灯又是怎么排列的呢?由于这个情境和学生日常生活密切相关,问题刚出,许多学生都跃跃欲试,开始主动思考。
三、现场演示,搭建直观支架
众所周知,数学是一门抽象化的学科,很多概念、定理、法则、公式、性质、规律等都是抽象的。教育心理学认为,儿童可以掌握的知识大部分是具体的、可以直接感知的,思维活动在很大程度上还是与面前具体事物或其生动的表象联系着。这就要求教师在平时的教学中,通过教具、课件等的演示来搭建直观支架,把抽象的知识具体化、形象化,既能降低学生学习的难度,使学生牢固掌握所学知识,又能提高学生的学习兴趣,更重要的是能培养学生的发散思维。
比如,在教学苏教版数学六年级上册《圆的面积》时,教师可以通过现场演示来搭建直观支架,将抽象的事物具体化、形象化,学生很容易理解和掌握圆的面积计算方法。教师先演示把圆平均分成16份,并拼成一个近似的平行四边形。再让学生用预先已经准备好的16等分、32等分的圆,仿照老师的拼法拼一拼。然后让学生进一步想象并提问:如果将圆平均分成64份、128份……拼成的图形是个什么图形?(长方形)再组织学生分小组讨论并交流:拼成的长方形与原来的圆有什么联系?学生借助图示很容易看出:长方形的面积与圆的面积相等,宽是圆的半径,长是圆周长的一半。最后教师引导学生得出圆的面积公式。
四、合作探究,搭建能力迁移支架
加涅曾说:“知识的获得有一个过程,在这个过程中,新的能力建立在先前习得能力的基础上。”《义务教育数学课程标准》也指出:数学教学活动必须建立在学生的认知发展水平和已有的知识经验基础之上……教师要帮助他们在自主探索和合作交流的过程中真正理解和掌握基本的数学知识与技能、数学思想和方法,获得广泛的数学活动经验。
这就要求教师在数学课堂教学中,努力搭建正向、逆向能力迁移支架,让学生通过自主探索和合作交流,参与到学习活动中去。比如,将整数运算定律迁移到小数、分数中;将整数乘法法则迁移到小数乘法中。
又如,教学苏教版五年级上册《平行四边形面积计算》时,不要简单地把面积公式直接告诉学生,而要让学生分组合作,动手实践,由长方形面积计算迁移到平行四边形面积的计算中。
师:同学们,能不能想办法通过剪剪、拼拼等把这个平行四边形转化为一个我们已学过的几何平面图形?(已学过长方形、正方形)
生小组内讨论、交流。
学生在班内交流后,利用多媒体课件动态演示把一个平行四边形通过剪、移、拼,变成一个长方形的过程。
师:拼成的长方形与原来的平行四边形有什么关系?请同学们在小组内交流一下。
(学生在小组内交流)
生:拼成的长方形的面积与原来平行四边形的面积相等;长等于平行四边形的底;宽等于平行四边形的高。(教师板书)
师:那你们能根据长方形的面积公式来推导出平行四边形的面积公式吗?
生:平行四边形面积用底乘以高。
师:通过引导,逐步完成板书。
长方形的面积=长×宽
平行四边形的面积=底×高
在平行四边形面积计算公式的推导过程中,教师引导学生动手操作,让学生自己分析问题、解决问题,既培养了学生的动手能力,又培养了学生独立思考、独立分析、解决问题的能力。
为学生的发现式学习搭建阶梯 篇3
情景呈现, 帮助学生感性体验
信息技术课中有很多知识 (常识) 性的内容, 如“信息的编码”、“计算机病毒”等。尽管它们对学生信息素养的养成起到关键作用, 但中小学生对这类学习内容缺少必要的感性认识, 教师在上课时也往往一带而过, 导致学生机械记忆, 失去学习的意义。
以《计算机病毒》一课为例, 此节内容的学习目标是要求学生知道病毒传播的途径、特征、危害性等知识。在教学时, 我将感染“熊猫烧香”病毒的电脑窗口画面展示给学生, 并播放网上的新闻视频, 介绍病毒的特点、传播途径、危害以及专家的防范建议。我还让学生从网上下载一些病毒专杀工具, 亲自动手尝试查杀病毒, 体验电脑在查杀病毒前后的运行状况等等。当学生有了一定的感性认识之后, 师生再共同总结计算机病毒的传播途径、特征等知识, 就比较容易了。
作品对比, 为学生的发现搭建阶梯
信息技术课中的很多任务通常在作品创作中完成, 常见的思路是, 教师演示或学生探索基本的操作方法, 在此基础上创作作品。但这种“先技术后创作”的模式往往过于依赖学生的基础条件, 容易忽视教师对学生的积极影响。以“表格的修饰”为例, 在教师讲授一些操作方法后, 学生自主美化表格的目标并不难实现, 学生的作品也可能形态各异。不过对学生来说, 他们此时的成功体验是不充分的。如果能创造条件让学生主动发现软件 (如W o r d、W P S) 的表格处理技术, 并由此产生积极利用这些技术的愿望, 他们的成功体验才会变得充分。
教师可以预设多个作品, 有些修饰了文字、有些修饰了边框、有些修饰了底纹、有些对单元格进行了合并和拆分……师生共同分析这些作品分别采用了哪种技术。接下来, 学生一边尝试操作方法, 一边创作作品, 将方法学习的过程和创作作品的过程融为一体。在这里, 教师预设作品的价值在于, 通过不同作品的对比呈现, 让学生感受不同技术的应用价值。
教师不教技术而是呈现技术, 让学生感受技术及其应用价值才是让学生有效学习的前提。学生的“发现”总是在一定环境中、一定的条件下发生的, 教师应该将学生放到特定的环境中、特定的条件下, 让学生的发现从偶然变成必然。
设问诱导, 点拨学生独立思考与分析问题
程序设计是信息技术课程中直接训练学生思维能力的一个模块, 也是信息技术解决实际问题的较高层次的应用, 需要用程序语言来表达实际问题的解决过程。在中学阶段, 需要解决的实际问题往往不难, 将其编写成程序却并不容易。对于大多数学生来说, 往往是教师的讲解能够听懂, 教师的程序也能够看懂, 模仿着写也没有问题, 可一旦要自己设计程序解决问题, 就感觉无从下手。本质上说, 很多学生并不具备编写程序的独立思维过程, 学生并没有获得过独立编程的成功体验。因此, 学生的学习兴趣不高, 学习效果不佳。
下面, 借助“F o r语句”的实际应用, 例谈通过问题引导学生发现问题本质的过程。
任务:编写程序判断一个数N是不是素数。要求学生熟练掌握循环结构, 并运用循环语句编写程序解决问题。
很多学生无法编出程序的原因是, 他们不知道从实际问题中去提炼程序的关键变量, 不知道这些关键变量在程序中的作用。例如:循环控制变量对应实际问题中的哪个量, 这个量的初值和终值如何确定才最优, 循环体语句需要实现什么功能等。
遇到这种情况时, 教师可以这样引导学生:你是如何判断一个数N是否素数, 请谈谈解决该问题的数学方法。
学生很快就能说出判断素数的过程:看数N的约数, 如果除了1和N外, N还存在其他约数, 则N不是素数, 否则就是素数。
教师进一步引导:如何判断一个数是不是N的约数?
学生:看N能不能被这个数整除。如果能整除, 则是N的约数, 否则不是。
教师:N可能的约数范围是什么?
学生:1~N。
教师进一步引导:1和N是否可以不参与判断?
学生:可以。
在教师的设问引导下, 学生结合已有的数学知识, 自主地将问题抽象、转化为问题“在2至N-1的范围内寻找N的约数”, 而不是由教师直接给出结论。当然, 教师还可以进一步引导学生将约数的范围上限缩小至N的平方根。这个枚举约数的过程和“F o r语句”的循环控制结构天然地结合了起来。当学生感受到程序的奇妙和强大功能, 才会真正对程序设计产生兴趣。
巧用错误, 变偶发事件为发现学习的有效资源
面对课堂上的偶发错误, 有的教师会巧妙掩饰, 有的能坦然改错, 有的善于有效利用。显然, 能将错误转化为学生发现式学习的有效资源是更高的境界。
在讲解《数据图表与分析》一课前, 我做了充分的预设, 将奥运相关常识引入教学。为了引导学生制作“折线图”, 我还设计了1 9 8 8年~2 0 0 8年各届奥运会上我国代表队获得金牌总数的表格, 利用这些数据制作图表, 目的是让学生认识到折线图可以直观地表达变化的规律或趋势, 感受我国体育事业的蓬勃发展。当图表制作完成后, 我没来得及仔细检查, 便请一位学生起来分析。结果, 学生的分析结论竟是“金牌数先逐届增加, 后来又减少了”。学生哄堂大笑, 有学生喊道:“老师, 你有没有搞错!”仔细一看, 原来是我误将2 0 0 8年北京奥运会中国的金牌总数打成了2 1枚。怎么办?
学生是依据图表的事实来回答问题的, 他没有错。我不得不先承认错误:“对不起, 老师太粗心了。”几乎同时, 我也发现了这个错误的潜在价值。我立即将话题转移:“那么, 如何将老师造成的错误改正过来呢?”有学生说删除图表, 将数据改正过来重新建立图表。大家一致认为可行。我肯定了这种方法, 继续引导学生:“在用公式计算的时候, 计算结果会随着源数据的变化而变化。图表是不是也应该具有这样的特征呢?”我又请一位学生进行尝试, 果然可行。通过对这个“错误”的补救, 下个环节“图表和数据源的关系”的教学也顺利完成。在其他班级上本节内容时, 我一直保留着这个“错误”, 因为它比我最初的教学设计效果更好。
Linux系统下搭建C开发环境 篇4
1 Linux的C开发工具包
Linux的C开发环境与Windows的有所不同, 在Linux下, 一个完整的C开发环境包括以下三个组成:
1.1 函数库:glibc
要构架一个完整的C开发环境, glibc是必不可少的, 它是Linux下C的主要函数库。glibc是gnu发布的libc库, 即c运行库。glibc是linux系统中最底层的api (应用程序开发接口) , 几乎其它任何的运行库都会倚赖于glibc。glibc除了封装linux操作系统所提供的系统服务外, 它本身也提供了许多其它一些必要功能服务的实现。
在RHEL5系统上安装glibc需要相关的依赖关系附加包:
glibc-common-2.5-18.i386.rpm
glibc-2.5-18.i386.rpm
这两个安装包在安装RHEL5系统的时候已经默认安装了, 如果没有安装则可以在yum服务下安装, 也可以利用iso光盘源文件通过命令rpm安装。
1.2 编译器:gcc
gcc (GNU CCompiler) 是GNU推出的功能强大、性能优越的多平台编译器, gcc编译器能将C、C++语言源程序、汇程式化序和目标程序编译、连接成可执行文件, 以下是gcc支持编译的一些源文件的后缀及其解释:
.c为后缀的文件, C语言源代码文件;
.a为后缀的文件, 是由目标文件构成的档案库文件;
.C, .cc或.cxx为后缀的文件, 是C++源代码文件;
.h为后缀的文件, 是程序所包含的头文件;
.i为后缀的文件, 是已经预处理过的C源代码文件;
.ii为后缀的文件, 是已经预处理过的C++源代码文件;
.m为后缀的文件, 是Objective-C源代码文件;
.o为后缀的文件, 是编译后的目标文件;
.s为后缀的文件, 是汇编语言源代码文件;
.S为后缀的文件, 是经过预编译的汇编语言源代码文件。
1.3 系统头文件:glibc_header
缺少了系统头文件的话, 很多用到系统功能的C程序将无法编译。
假如用户在安装过程中少装了这些包, 就会无法编译C源程序。初学者有时候选择自己定制软件包来安装, 结果遗漏了这些包, 导致无法编译源程序, 只好重新安装一遍Linux系统。
下面以RHEL5为例, 介绍如何安装Linux的C开发环境。
2 Linux的C开发工具包的安装
Linux的C开发工具包可以在yum服务下安装, 也可以利用iso光盘源文件通过命令rpm安装, 本文介绍利用iso光盘源文件安装工具包。
首先挂载光盘, 把光盘挂载到/media/cdrom下。
在/media下新建文件夹cdrom:mkdir/media/cdrom
然后挂载RHEL5的安装盘:mount/dev/cdrom/media/cdrom
进入到iso光盘源文件的Server目录下, 如图1所示。
由于gcc包的安装需要依赖glibc-devel、libgomp这两个包, 如图2所示。
而glibc-devel包的安装又需要依赖glibcheaders, 如图3所示。
glibc-header安装又需要依赖kernelheaders-2.6.18-53.el5.i386.rpm, 如图4所示。
所以整个安装步骤应该为:
安装完后, 就构成了最基本的C开发环境, 在这个C开发环境中, 可以编译多数的C写的应用程序。而对于一个C程序来说, 安装完成后通常可以分成三个组成:
(1) 可执行文件。
(2) 包含文件。
(3) 库文件。
可执行文件就是最终运行的命令, 包含文件是该C程序include的一些定义文件, 库文件则是该C程序自定义的库。比如对于用RPM安装的My SQL:可执行文件放在/usr/bin下, 包含文件放在/usr/include/mysql下, 库文件在/usr/lib/mysql下。只有系统找到程序对应的包含文件和库文件, 程序可执行文件才能正常运行。
摘要:本文介绍了在Linux系统上搭建C开发环境所需要的开发工具包, 以及这些开发工具包在Linux系统上的安装过程。
关键词:Linux系统,C开发环境
参考文献
搭建式开发 篇5
本学期, 我们学校上课开始用“导学案”辅助教学, 这种教学主要是以教师的导学案为载体, 以教师的指导为主导, 以学生的自主学习为主体, 这种教学一改过去教师上课单纯讲、学生被动地接受新知识的局面, 充分体现了教师的主导作用和学生的主体作用, 使主导作用和主体作用和谐统一, 发挥最大效益。
如何利用导学案, 搭建小组合作式的高效课堂, 该从哪些方面做呢?经过探索和实践, 我们形成了自己的教学模式。
一、精心设计导学案
在小组合作学习中, 导学案的设计至关重要, 可以说是一节课的导航仪。一份好的导学案应该有利于构建和谐的课堂教学氛围, 能真正提高学生的学习兴趣和积极性, 能够实现课堂高效。
在学案的编写中要注重“预习案”“探究案”“反思案”三个环节。
预习案。主要是课前让学生在预习过程中有个“把手”, 通过对预习案的学习, 对本节课形成一个粗略的框架, 初步了解一些知识。
探究案。结合课堂教学过程的要求分为七大部分:学习目标、学习重难点、学法指导、学习过程、合作探究、拓展迁移、课堂小结等。在设计过程中一定要注意三维目标, 特别是情感态度与价值观目标的落实;在设计过程中还要注意问题的设置, 讨论时间的安排等问题。不能为了讨论而讨论, 不能机械地认为每节课都要搞小组合作学习, 也并非所有的教学任务都必须通过小组活动才能完成。班级教学、个人学习仍有着合作学习所不可替代的独特地位和作用。在导学案的设计过程中, 教师应当根据教学的实际需要, 选择有利于产生争论的、有价值的, 而个人难以完成的知识点进行讨论, 让学生在独立思考的基础上交换意见。教师还必须选择恰当的时机进行学法指导, 如方法多样时、学生思考出现困难时、意见不统一时, 教师的一句话往往会“点石成金”, 提高学生的学习积极性及教师在学生中的地位。提出的问题能否提供合作的契机, 是否值得讨论, 这些教师在设计过程中一定要加以注意, 如果提出的问题过于简单, 讨论就会流于形式。
反思案。该学案的设计是一节课的总结, 切忌虎头蛇尾, 要使得小组合作学习真正有成效, 必须及时检验教学效果。达标反馈学案的设计有以下题型:选择题、简答题、探究题等, 难度要控制在合理的范围内, 调动学生“动笔”的积极性。
二、重视教师的作用
导学案的运用就是想把教师从繁重的说教和讲解之中解放出来, 真正发挥教师的主导作用;小组合作学习也将教师的工作量减轻了许多, 也是想充分发挥学生的主体作用。但是, 在学生合作学习的过程中, 教师不应该是旁观者, 更不要做局外人。教师在合作学习中应该是组织者、引导者、参与者。教师必须深入到每个小组, 认真倾听大家的发言, 适时地与小组成员进行交流。教师要认真观察和了解每个小组的活动情况, 我们一定要不时的关注和重视对学生的引导。所以, 在小组合作学习最初的阶段, 要发挥教师的作用, 慢慢地的让学生学会使用学案, 学会使用小组合作的学习方式。
三、发挥小组合作优势, 打造高效课堂
1. 合理组建学习小组。
要充分发挥小组学习的功能, 分好小组是前提。各班都根据学生的学习能力, 学习成绩以及综合表现, 按照“异质分组”的原则进行了分组, 每个小组6人, 每组有组长一名, 负责小组整体的学习和常规工作。对于组长的选取, 我觉得是一个非常重要的环节, 因为组长是一个小组学习活动的组织者, 是教师的得力助手, 是联系教师与全班学生的纽带。选好组长, 直接关系小组学习活动的效率和成败。我采取先个人自荐, 然后组内表决的办法选小组长, 接下来就是对于组长的指导, 多和各组的组长进行交流, 了解各个小组的学习情况和动态;同时加强组长的责任心, 鼓励各个小组创造性地开展合作, 对于各小组的情况要及时地做一下点评和总结, 形成一种竞争的氛围;对于问题较多的小组, 应及时地帮助他们解决问题, 千万不要等到问题多了的时候再去处理。
2. 开展评比。
适当以小组为单位开展学习评比活动, 有利于强化学生合作意识, 全面提高学生的整体素质。学生对来自同学的鼓励、帮助比来自于教师的更有效果。为了促进学生自主学习, 让学生更好地进行合作探究, 让小组长按学习的质量、态度等标准给每位同学打分, 再按小组总分进行评比。评比后, 小组里的那些学习有困难的学生, 每天都有同学督促和帮助, 学习成绩有了较明显的提高。
3. 提供充裕的合作学习时间。
没有一定的时间, 合作学习将会流于形式。因此教师要给学生提供充分的操作、探究、讨论、交流的时间, 让每个学生都有发言的机会和相互补充、更正、辩论的时间, 使不同层次学生的智慧都得到发挥。在合作学习之前, 还要留给学生足够的独立思考的时间, 因为只有当学生在解决某个问题百思不得其解时进行合作学习才有成效。
4. 建立一套有序的合作常规。
俗话说得好:“没有规矩不成方圆。”小组合作学习使课堂气氛活跃起来了, 同时也给教师控制课堂秩序带来了困难, 很容易使课堂教学产生“看似热闹实则混乱”的局面。这就需要建立一套“活而有序”的合作常规, 并通过训练使之形成习惯。
四、要把导学案和小组合作学习的模式贯穿学生学习的整个阶段, 而不应该只是课上的有限时间
搭建式开发 篇6
关键词:.NET Framework,.NET Compact Framework,.NET Micro Framework,WinCE
一.引言
.NET框架(.NET Framework)是由微软开发,一个致力于敏捷软件开发(Agile softwaredevelopment)、快速应用开发(Rapidapplication development)、平台无关性和网络透明化的软件开发平台。.NET包含许多有助于互联网和内部网应用迅捷开发的技术。用于Windows的新托管代码编程模型。它强大功能与新技术结合起来,用于构建具有视觉上引人注目的用户体验的应用程序,实现跨技术边界的无缝通信,并且能支持各种业务流程。同时.NET也为应用程序接口(API)提供了新功能和开发工具。
二.NET框架详述
1. NET框架简介
.NET框架是一个多语言组件开发和执行环境,它提供了一个跨语言的统一编程环境。从层次结构来看,.NET框架包括三个主要组成部分:公共语言运行时(CLR:Common Language Runtime)、服务框架(Services Framework)和上层的两类应用模板——传统的Windows应用程序模板(Win Forms)和基于ASP NET的面向Web的网络应用程序模板(Web Forms和Web Services)。
2. 软件功能介绍
1)ASP.NET动态数据,它提供了丰富的框架,从而使用户可以
快速进行数据驱动的开发,而无需编写代码;ASP.NET AJA的一项新增功能,对管理浏览器供了支持(支持后退按钮)。
2)提高了Windows Presentation Foundation的性能,包括缩短了启动时间,提高了与位图效果有关的性能。
3)Click Once应用程序发行者可以决定在适当情况下不进行签名和加密,开发人员可以编程方式安装Click Once应用程序以显示自定义署名,并且Click Once错误对话框支持链接到Web上应用程序特定的支持网站。
4)实体框架是从现有的一套ADO.N ET数据访问技术发展而来的。利用实体框架,开发人员可以按照应用程序特定的域模型(而不是基础数据库模型)来针对关系数据库进行编程。
5)LINQ to SQL新增了SQL Server2008中的新日期和文件流功能的支持。
6)ADO.NET Data Services Framework由满足以下条件的模式和库组合而成:支持将数据公开为一项基于REST(具象状态传输)的灵活数据服务,企业网络内部或整个互联网上的Web客户端都可以使用该服务。
7)用于SQL Server(Sql Client)的.NET Framework数据提供程序新增了对SQL Server2008中的文件流和稀疏列功能的支持。
三.NET框架的几个分类
1.NET Compact Framework
一种独立于硬件的环境,用于在资源受限制的计算设备上运行程序,继承了公共语言运行时的完整.NET Framework结构,支持.NET Framework类库的子集,并且包含专为.NET Compact Framework设计的类。例如:个人数据助理PDA(如Pocket PC),移动电话,机顶盒,汽车计算设备等等.
2.NET Micro Framework
Microsoft推出的.NET Framework把强大、可靠的托管代码从大型服务器扩展到了嵌入式设备。但是,依然有许多设备由于资源限制而无法支持这些平台。为了响应微型设备的市场需要,Microsoft开发了一个叫Microsoft.NET Micro Framework.(.NET MF)的新平台。.NET Micro Framework定位于这个未开发的领域,向微型设备提供小巧、高效的.NET运行时的实现。
3.二者的区别
.NET Compact Framework是.NET Framework的精简版,一种独立于硬件环境,用于资源受限的计算机设备上运行程序,它继承了公共语言库的完整和.NET Framework结构,.NET MF是微软最新推出的嵌入式平台、专门用于处理能力和存储能力都更加有限的设备。两者重要的一个区别在于:.NET CF需要有Windows CE系列OS的支持才能得以运作,而.NET MF则提供了一个可引导的运行时环境。既然.NET MF是可引导的,那么它实际上也相当于一个带有运行时环境的操作系统。下面的表格对比了几种平台的区别
四.Win CE开发环境搭建详述
1.Win CE基本介绍
Windows CE是微软公司嵌入式、移动计算平台的基础,它是一个开放的、可升级的32位嵌入式操作系统,是基于掌上型电脑类的电子设备操作系统,它是精简的Windows 95,Windows CE的图形用户界面相当出色.它不仅继承了传统的Windows图形界面,而且可以在平台上使用Windows 95/98上的编程工具、使用同样的函数等等.
2. 用Visual studio 2005开发嵌入式Win CE应用程序
需要以下开发环境:1)安装Active Sync同步工具2)安装VS2005 3)安装vs2005 SP1(431M)4)安装.NET CF 2.0 5)安装SDK
3. 安装完成,新建一个简单的MFC工程:
1)首先打开VS2005,新建项目,选择其他语言,"visual C++"——智能设备,选中后右边出现5个模板。
2)选择Smart Device——MFC Smart Device Application
3)选择相应的SDK Mobile版本,如下图
4)接下来两个都默认选择
若应用程序中需要访问系统中注册的Active X控件,需选中Active X控件。
5)这里可修改类名对应的头文件和实现文件名。点击完成即可完成Test项目的建立。最后界面如下:
最终编译执行后模拟器上的界面
参考文献
[1]张冬泉.WindowsCE实用开发技术.电子工业出版社,2006.
[2]田泽.嵌入式系统开发与应用.北京航空航天大学出版社,2005.
搭建式开发 篇7
1.1 课程设置
我系计算机应用技术专业依学生就业为导向,加强技能实用性,把过时的课程淘汰,重新进行课程优化,能进行中小型软件特别是基于Android手机软件设计及开发,通过这些课程的综合学习,达到本专业的教学目标。
1.2 实训条件
本系实训设备为台式电脑,是4、5年前配置的,现有实训室机器不到报废年限,在学生实训中仍然起着重要作用,这部分老机器丢之可惜,仍然有利用价值,所装系统为Windows XP SP3。上述开设的课程,实训课与理论课的比大于1,个别课程全是实训。目前学习的《linux基础与应用》和《linux服务器配置与管理》课程用到的操作系统是RHEL5.0,安装在Windows XP里的VMware-workstation-7中 ;而《Java程序设计 》所用到的 软件Eclipse,用的是XP版 ;测试服务 器Tomcat 6.0也是XP。
1.3 存在问题
即考虑到其他专业学生的使用,又考虑机器的维护方便,系统还是采用XP系统,没有换成Linux系统,因此在实训时根据各门课程的特点,老师和学生都选择比较方便的方式进行练习。有时候是在XP下进行学习,比如Eclipse软件和Tomcat ;有时候要进入虚拟机在Linux操作系统下进行学习,比如《linux基础与应用》和《linux服务器配置与管理》。这种跨平台学习方式对任课老师影响不大,但是对于学生来说,实在是不方便,没能把所学课程综合运用。
2 实训平台优化
2.1 分析
根据目前实训条件,原有的操作系统仍然选择XP系统,安装虚拟机软件VMware7.0,再安装好其他课程所需要的软件,做好镜像。在虚拟机中新建一个Linux系统,版本采用企业版的RHEL6.0,这也是目前最新的版本,把本专业其他课程用到的软件,包括Tomcat、Eclipse和数据库软件一一安装到Linux中,在虚拟机下测试所有软件能正常运行后,把虚拟机做好快照保存起来。
虽然在原有机器上能直接安装Linux操作系统,一是考虑到其他专业课程需要用XP系统,二是由于Linux的开源有些学生不熟悉,很可能由于误操作导致系统瘫痪,对以后维护带来不便。在该系统下工作,利用虚拟机的功能,可以实现各种连网方式,完全能够利用现有软、硬件完成服务器搭建、软件开发环境搭建等课程的教学要求。
2.2 实施
由于在XP下安装虚拟机和在虚拟机中安装Linux比较容易,这里不再叙述。下面主要进行在Linux下其他软件的安装。
在Linux下安装软件有两种方法,一种是利用RPM来安装,另一种是通过配置安装源。以安装telnet为例,用RPM方法来安装 :
如果从光盘来安装,首先进入该软件目录上,执行
#cd /mnt/cdrom/Packages
# rpm 氺ivh telnet-0.17-46.el6.rpm
这样就可以安装完成该软件,但是如果这个软件需要其他软件的支持,那么就必须先安装支持软件,再安装这个软件。并且安装时,必须在该软件的目录上安装才可以,所以这种方法看起来方便,但在安装过程中比较繁琐。
另一种就是配置安装源,首先获得Linux的软件包文件,一般是ISO文件,可以通过网络或光盘获得,然后把该文件存放到磁盘的一个分区中。打开虚拟机在“设置”中点“硬件”选项卡,在其中的“CD/DVD”中设置连接的镜像文件为刚才获得的ISO文件。这一步相当于在宿主机中把光盘放到光驱,为下一步软件安装提供软件资源。
把下载的ISO文件挂载,#mount /dev/cdrom /iso
配置源文件,如下图所示 :
这样就完成了安装源的配置,在安装软件时,这种方法就会自动搜索该软件的支持软件,并且也没有安装路径的限制。
配置好了安装源,可以执行
# yum install *eclipse*,
# yum install *sql*
就可以把开发平台Eclipse和My Sql数据库数据库安装完成。
3 结束语
搭建式开发 篇8
嵌入式通信设备 (比如移动电话、掌上电脑等) 已经成为人们学习生活工作不可缺少的一部分, 在日常生活中已经起到了越来越重要的作用。因此在嵌入式系统下求解微分方程产生混沌信号, 并将其应用于保密通信中的研究意义是非常重大的。随着更高级别、更复杂且实用的嵌入式系统和可编程逻辑器件的快速发展, 使基于混沌的通信系统向市场化方向越来越近了。已有事实证明, 基于混沌的通信可以在一定程度上解决现有通信系统诸多矛盾和缺陷, 有较强的发展潜力。有专家预测: 基于混沌的通信技术将是21世纪通信技术研究的重要方向之一, 因其广阔的应用前景正在被专家学者所深入研究。
2 嵌入式系统硬件组成
嵌入式系统强调的是硬件与软件的整体协同性, 在一定的项目开发要求下, 要尽可能挖掘系统的软硬件能力, 能够根据实际开发项目需要对软硬件进行选择, 根据项目需要对系统进行裁剪, 最终得到性价比较高的设计方案。嵌入式系统的核心是系统软件和应用软件, 由于存储空间有限, 因而要求软件代码最优化且运行可靠, 一部分嵌入式系统还对实时性有较严格的要求, 硬件整体结构如图1所示。
为了更快地研究嵌入式系统下混沌动力学特性, 嵌入式系统硬件部分是选用TQ2440实验板。
TQ2440实验板包括CPU核心板及底板, CPU核心板单独布置, 选用的处理器内核为ARM920t, 它是ARM9系列的一款通用微处理器, 采用哈佛结构。该处理器由ARM920t内核、内存管理单元 (MMU) 和高速缓存组成, ARM920t采用五级流水线(Fetch、Decode、Execute、Memory及Write) 体系 , 具有16K字节指令及16K字节数据缓存, 内置追踪宏单元接口和写缓存。
底板上电路主要包括3.3V供电电路、Jtag电路、复位电路以及Nor/Nand Flash启动选择电路等。
3 搭建开发环境
研究采用的嵌入式Linux操作系统版本为Linux-2.6.30.4,交叉编译器版本为EABI-4.3.3。Linux操作系统作为嵌入式系统中的一种, 内核源码以及驱动程序源码是开源的。开源代码好处就是: 开发过程快捷简单, 一些代码不需要自己编写。可根据所选的CPU型号及外围芯片型号修改u-boot程序下的相关文件、Linux内核配置及系统驱动程序, 使软硬件匹配,从而大大缩短开发周期。
所采用的是Linux内核的Fedora系统, 搭建开发环境步骤如下:
(1) 首先进行VMWARE workstation虚拟机安装。
(2) 在虚拟机下导入下载完成的Fedora10系统的文件 ,按照安装的预定步骤设置好虚拟机内存大小、挂载的分区大小、共享目录、网络连接方式及其他事项, 然后进行安装。
(3) 安装完Fedora10操作系统后 , 进行交叉编译工具安装, 交叉编译器是允许开发者在一台主机上编译生成某一个目标系统的二进制代码, 对于下位机是Linux系统及ARM硬件平台的组合, 应使用“arm-linux”格式的工具包。利用如下命令修改配置文件, 使交叉编译器生效: #gedit /etc/profile。
执行这个命令的目的是打开环境变量的配置文件, 在配置文件中修改所要添加的交叉编译器的绝对路径, 也即是export PATH=/绝对路径/:$PATH
#source /etc/profile
执行这个命令的目的是更新配置文件, 使上一步所添加的交叉编译器的绝对路径在系统终端下生效。
#arm-linux-gcc -v
执行这个命令的目的是测试交叉编译器是否安装成功。
嵌入式Linux都是来源于应用在X86体系结构上的标准Linux系统, 根据嵌入式设备硬件选择以及用户的要求, 对标准的Linux系统进行裁剪和小型化, 最后生成、下载并固化在几MB左右的存储器设备空间内。
嵌入式Linux系统启动分为两个步骤: (1) 系统引导程序, 对一部分的硬件设备进行初始化。Bootloader是嵌入式系统的引导加载程序, 它是系统上电后运行的第一段程序, 其作用与PC机上的BIOS类似; (2) 在完成对系统的初始化任务之后, 开始启动过程的第二步, 对系统的内核镜像文件进行加载。将非易失性存储器中的Linux内核映像拷贝到RAM中去, 然后跳转到内核的第一条指令处继续执行。Linux内核在完成系统的初始化之后需要挂载根文件系统。根文件系统是Linux系统的核心组成部分, 它可以作为Linux系统中文件和数据的存储区域, 通常它还包括系统配置文件和运行应用软件所需要的库。
由此可见, Bootloader和Linux内核有着密不可分的联系,在这里首先介绍Bootloader程序。
4 Bootloader
Bootloader程序是执行在具体的硬件设备上的, 根据不同的硬件芯片型号的选择, 需要修改Bootloader程序代码, 以适应所选择的硬件体系结构。Bootloader程序运行的第一步主要完成的工作如下[15]:
(1) 定义程序的入口地址及设置程序的异常中断向量表。
(2) 对存储设备进行初始化和一些有特殊要求的端口和设备的初始化。
(3) 初始化中断处理程序设置入口以及初始化堆栈指针寄存器状态。
(4) 完成用户程序要执行环境的初始化以及设置程序中断处理的入口地址。
(5) 跳到C程序入口地址处。
目前很多嵌入式系统设计中都采用Flash作为程序的存储介质, Bootloader程序是设定从Nor Flash启动的。由于Bootloader通常存储在Flash芯片上, 内核的映像文件和根文件系统也都下载到这里。
5 编译与移植方法
5.1 U-Boot 编译与移植
U-Boot是用于多种嵌入式CPU的Bootloader程序 , 支持X86、ARM以及MIPS等目标体系。
U-Boot的修改主要是在u-boot的目录体系结构下完成对应部分的修改, 这些子目录里主要包含了不同体系结构的源代码。U-Boot目录包括以下文件内容: (1) board: 开发板相关目录;(2) common: 通用的命令函数; (3) cpu: cpu架构相关目录;(4) doc: 相应开发使用文档; (5) drivers:所支持的设备驱动程序;(6) fs: 支持的文件系统; (7) include: 头文件和开发板配置文件; (8) lib: 与体系结构相关的库文件;(9) net: 各种网络协议等。
在充分理解U-Boot程序整体架构细节的基础上, 可以针对所选择的硬件设备部分修改u-boot程序, 以便适应自己所选择的硬件型号。本文对u-boot详细移植过程不多分析, 只介绍移植思路。
由于U-Boot-1.1.6.tar.bz2版本不支持文中所使用的微处理器S3C2440, 但是对同一个系列的S3C2410却有很完善的支持。移植工作主要是在S3C2410处理器基础上修改完成。移植u-boot到嵌入式系统开发板上, 主要有两个层面的移植工作:第一层面是针对CPU的移植, 第二层面是针对BOARD移植。
当修改完成后, 可以用以下命令进行编译:
#make LL-config
此命令对重新编写后的U-Boot程序进行配置, 其中LLconfig是在uboot源码的根目录下Makefile文件中的一个选项。
#make此命令主要是用于测试编译是否成功。
如果编译成功且正确, 将会在U-Boot目录下生成uboot.bin、uboot以及uboot.srec 3个映像文件。uboot.bin文件是原始二进制的映像文件, 要下载到实验板; uboot是ELF格式的二进制映像文件; 而uboot.srec是S-Record格式的映像文件。
5.2 Linux 内核的编译与移植
在下载成功U-Boot之后, 进行Linux内核的编译, 嵌入式Linux内核编译移植过程[16]关键环节是:
(1) 首先获取Linux内核源代码。
(2) 进入内核的目录文件 , 在Makefile文件中添加对ARM平台的支持, 如图2所示。
(3) 修改所选择的硬件设备的时钟频率 , 使之与外部晶振输入频率相同。
(4) 根据选择硬件设备的型号 , 对设备的驱动程序进行编写或者修改。
(5) 制作与S3C2440实验板相应的配置单 , 内核配置是构建适用于硬件设备的Linux的重要环节, 执行命令: #makemenuconfig, 见图2进入配置菜单后, 根据硬件要求选择相应的配置项制作配置单, 配置完成之后保存。
(6) 在制作完成文件系统之后 , 在fs/Kconfig文件中添加对根文件系统的支持。
(7) 配置完成后, 终端执行以下命令, 对系统进行编译:#make zImage。
(8) 编译成功后, 在linux-2.6.32.4目录下生成zImage.bin的映像文件。在uboot下载成功的基础上, 在找到生成路径后, 把zImage.bin文件下载到实验板上。
5.3 根文件系统编译与移植
支持用户操作系统使用的根文件系统移植也非常关键的。
(1) 建立工作目录 (根目录 ) ,向各个目录文件下添加相应内容。
(2) 交叉编译busybox, 首先添加交叉编译工具, 其次是配置busybox, 最后安装执行。
(3) 复制库文件并建立配置文件。
(4) 制作根文件系统映像并烧写到实验板上。
6 结语
详细介绍了嵌入式Linux系统的开发环境搭建与移植的具体步骤与实现方法, 对研究嵌入式系统开发的研究人员提供了思路与借鉴。为在嵌入式系统下对典型的混沌电路模型进行分析求解, 为进一步实现基于嵌入式系统下的通信数据信息加密奠定了基础。
摘要:选用TQ2440实验板,在嵌入式Linux操作系统下实现了开发环境的搭建与移植。详细介绍了Linux内核的Fedora系统、搭建开发环境步骤、Bootloader程序的使用、U-Boot编译与移植、Linux内核的编译与移植根文件系统编译与移植的具体操作方法。