欢迎光临112期刊网!
网站首页 > 论文范文 > 计算机论文 > 软件技术 > 使用开源技术构建嵌入式软件开发实训环境

使用开源技术构建嵌入式软件开发实训环境

日期:2023-01-24 阅读量:0 所属栏目:软件技术


  本文针对嵌入式软件开发实训教学环境的构建提出了一套完整的解决方案。该方案全部采用开源技术,能够在机房环境中快速、灵活地部署嵌入式软件开发实训环境,具有低成本、稳定可靠、可移植性强,教学和实训操作一体化程度高等优点。作者将该方案应用到实际教学中,取得很好的效果。

 

  一、引言

 

  1.嵌入式软件开发实训教学的现状

 

  嵌入式软件开发由于涉及的硬件复杂,开发环境构成复杂,对厂商及开发平台依赖性高,其实训教学长期以来缺乏一套行之有效的教学环境构建方法,这使得嵌入式软件开发的实训教学环节往往与理论教学脱节严重,直接影响理论教学的效果和学生开发技能的培养。

 

  2.解决方案

 

  为了解决当前构建嵌入式开发实训教学环境所面临的问题,本文在后续章节中提出了一套完整的解决方案:围绕服务端、宿主机和目标终端及教学网络四个主体构建软硬件环境。该方案能够在机房中快速部署嵌入式软件开发环境和电子教室,并根据教学需求灵活地适应不同的目标平台,从容应对物联网及嵌入式领域开发技术的快速发展和变化。

 

  二、所需开源技术简介

 

  

 

  PXE(Pre-boot eXecution Environment)[1]提供了一种使用网络界面(Network Interface)启动计算机的机制,使得计算机的启动可以不依赖本地数据存储设备(如硬盘)或本地已安装的操作系统。

 

  本文中,服务器环境和宿主机环境的快速构建和备份均依赖PXE技术来实现。目前的计算机系统网卡普遍具备PXE功能,故本方案具有良好的可移植性。

 

  illa

 

  Clonezilla (再生龙)[2]是一款由台湾国家高速网络与计算中心开发并维护的磁盘及分区镜像软件,采用GPL开源软件许可证发布。

 

  Clonezilla支持通过PXE环境部署,其多播模式为我们提供了一种在大量客户机之间以裸机拷贝方式快速备份/恢复磁盘及分区的手段。

 

  lization

 

  虚拟化技术在本方案中的作用主要是提供一种同时运行两个操作系统的机制。需要双系统的原因有以下三个方面:

 

  3.1很多嵌入式设备厂商提供的配套集成开发环境只能在Windows下运行,而目标嵌入式系统通常为Linux;许多嵌入式系统软件的构建需要在Linux环境下进行交叉编译;

 

  3.2日常教学资料大都依赖OfficeAdobeWindows平台工具;

 

  3.3功能完备、操作简单的电子教室软件以Windows平台居多。

 

  如果教学中使用的嵌入式目标平台不需要使用依赖Windows的集成开发环境,则整个实验教学环境可以全部由开源软件构成;否则,需要使用虚拟化技术在宿主机上运行一个Linux作为嵌入式开发环境。这两种情况的宿主机环境构成如下表所示:

 

  本文所用的教学环境为II类型。

 

  Linux GCC 工具链

 

  由自由软件基金会FSF主持的GNU操作系统项目提供了GCC工具链。采用ARM IP核的厂商大都提供配套自家芯片的交叉编译工具链,但通常以二进制形式或付费软件形式发布。从教学的角度看GNU/LinuxGCC是构建嵌入式开发环境的最佳选择。

 

  三、嵌入式软件开发实训环境的构建

 

  1.构成

 

  嵌入式软件综合教学实训环境由服务器(Server)、宿主机(Host)和目标终端(Target)以及教学网络构成,如下图所示:

 

  服务器承担两大职能:一是对局域网进行管理,提供DHCPDNSPXE启动、NIS等服务,维护正常教学环境;二是提供开发环境更新维护及远程编译服务。

 

  宿主机为学生提供操作环境,学生可在宿主机上进行嵌入式操作系统和应用软件的编写、仿真调试、下载、测试等活动;另一方面,学生通过宿主机上的电教学生端接收教师的教学信息,在教师指导下完成上述活动。

 

  目标终端通常是以单片机,ARM SoC等为核心,集成了多种外围功能电路的开发板。目标终端应配套相应的JTAG仿真器,具有下载调试程序、观察CPU指令级行为等功能。

 

  教学网络为以上三者提供互联途径,在教学网络上运行的电子教室软件和服务器所提供的各种服务为学生构建了一个教学及实训操作一体化的环境。

 

  2.教学网络环境的构建

 

  2.1网络规划

 

  为了便于教学与实验统一,同时方便维护,实验室网络应尽量简单。服务期、学生与教师使用的宿主机位于同一网段,学生机中的虚拟Linux系统采用桥接方式接入同一网段。学生宿主机及其中的Linux系统均由DHCP分配IP,教师机及各个服务器使用固定IP

 

  2.2设备要求

 

  本方案能够很好地运行在当前主流配置的设备上。由于需要进行磁盘远程镜像操作,采用能够支持100M/1000M模式的交换机能够使本方案的可行度大大提高。服务器内存充裕的情况下应考虑使用Xen虚拟化技术[3]将各项服务隔离开来以确保服务的稳定性。

 

  3.服务器环境的构建

 

  3.1构建嵌入式软件开发教学及实验需要的服务项目

 

  构建嵌入式软件开发教学实训环境所需服务项目有以下几项:

 

  3.1.1 DHCP服务:实训室正常运作时,所有学生端宿主机通过DHCP服务获得IP地址;学生端或者服务器出现故障时,可通过PXE引导远程进行修复维护,而PXE引导需要DHCP服务支持3.1.2 TFTP服务:用于快速部署服务器、远程加载服务器内核或者Clonezilla内核对宿主机或服务器进行远程修复;实训环境正常运作时必须将该项服务关闭。

 

  3.1.3 NFS服务:提供Linux主机间文件共享服务,为宿主机提供交叉编译环境或者在目标开发平台上挂载根文件系统。

 

  3.1.4 Samba服务:用于向宿主机Windows环境提供文件共享机制。

 

  3.1.5 NIS(Network Information Service)服务:用于统一管理学生Linux登录帐号。※③

 

  3.1.6 DNS服务:提供本地主机的名称解析,方便教师对学生端进行管理。※③

 

  3.2使用PXEDHCPTFTPKickstart快速部署CentOS服务器

 

  KickstartLinux环境下一种通过安装脚本实现无人值守安装系统的工具,它通过读取Kickstart脚本自动完成对新系统的安装及配置。使用PXE+DHCP+TFTP+Kickstart快速部署CentOS服务器[4]的过程如下:

 

  4.宿主机环境的构建

 

  4.1使用PXEClonezilla快速部署宿主机环境

 

  使用PXE+Clonezilla部署宿主机环境的过程与服务器相同,区别仅在于部署宿主机时,TFTP服务所提供的引导文件是一个Clonezilla内核,集成了Clonezilla镜像功能,能够根据配置或者用户指令快速地从镜像文件中恢复宿主机环境或者复制其他宿主机。

 QQ截图20160511132523.jpg

  4.2使用VirtualBox虚拟机构建Linux开发环境

 

  VirtualBox[5]相对于商业软件VMWare Workstation具有功能简单、免费的优点,但使用上需要注意:

 

  4.2.1 需要在宿主机BIOS中打开CPU对直接虚拟化的支持才能使得虚拟机中的Guest系统获得较好的性能。Intel使用VT-x[6]AMDAMD-V

 

  4.2.2 VirtualBox需要安装Guest Addition来支持与Windows共享剪贴板以及与宿主机共享文件夹等操作。

 

  4.3交叉编译环境的构建

 

  交叉编译工具链的构建既是实训教学的重点内容也是嵌入式开发最依赖的软件环境,GCC[7]本身就是一个具备交叉编译能力的开源工具链,在制作时需要针对目标CPU架构进行配置和打补丁,主要是浮点运算类型的选择(软件或硬件实现)、目标平台C语言库的选择和GCC所支持功能的裁切。本方案参照项目给出的流程[8]构建GNU/Linux GCC交叉编译工具链,该项目更新及时,维护状态较好。

 

  4.4教师端和学生端的构建

 

  教师和学生使用Clonezilla克隆出来的完全相同的宿主机环境,保证教师的所有操作都是可复制的。二者唯一的区别在于教师的宿主机上使用电子教室的教师版客户端主控,而学生使用学生版客户端受控。

 

  5.目标终端的仿真环境

 

  目标终端上软件开发需要在宿主机环境中构建一个好用的仿真环境。对于嵌入式ARM开发教学而言,采用OpenOCD[9]+JLink[10]调试器并通过Eclipse集成开发环境提供的调试界面进行仿真调试是可行性和健壮性都比较好的一种方案。

 

  四、教学效果及不足

 

  采用该方案部署教学环境的实训室承担了物联网应用专业两个年级四门专业核心课程的实训环节的教学任务。学生在教师的带领下使用ARM Cortex-A8实验平台完成嵌入式交叉编译工具链的构建,Linux内核、根文件系统的裁切和编译安装,U-Boot启动加载器的裁切、编译和安装,Android系统设备驱动开发实训、Android应用程序开发等实训内容;Windows宿主机环境下使用CC2530平台完成了ZigBee协议栈Z-Stack应用程序开发及8051单片机裸机应用开发等各项实训内容,取得良好的教学效果。

 

  在教学中我们发现该方案也存在一定的不足:Clonezilla适用于磁盘级别的更新,对于宿主机开发环境的微调缺少相应的同步机制;整个实训环境的运行依赖服务器承担的多种服务项目,服务器缺少相应的安全机制会使整个教学环境比较脆弱。

 

  五、结论

 

  本文提出了一种利用开源技术构建嵌入式综合教学实验环境的方法。经过教学实践验证,本方法具有以下优点:

 

  1.低成本

 

  除宿主机操作系统可能会需要Windows操作系统外,方案中所使用的全部软件均为开源软件或免费软件。

 

  2.教学实训一体化

 

  本方案中宿主机环境既能用于接收教师讲授内容,又能独立作为开发端配合目标设备的使用,使得学生能够边学边练,学完就练,极大提高了教学效率。完整的服务器环境除了满足日常教学的需求,还能够拓展为开源镜像公共服务。

 

  3.技术成熟,系统可靠稳定

 

  本方案所依托的开源技术均高度成熟并获得广泛应用,所依赖的软件和服务更新稳定且易于获取,很好地满足了教学环境对系统稳定性的要求。

 

  4.软硬件依赖性低,极强的可移植性

 

  本方案对宿主机和服务器的软硬件要求不高,必要条件是网卡支持PXE功能,加上开源软件获取的方便性,本方案具备良好的可移植性。

 

  综上所述,作者认为嵌入式教学环境的构建应该遵从如下一些原则:

 

  1.注重服务器端环境的建设,这是开展好嵌入式教学的基础

 

  服务器端环境的构建,为大量宿主机的管理和学生开发环境的快速搭建提供了必要的基础设施,让学生得以在有限的教学时间内利用性能受限的PC端练习嵌入式开发环节,这使得学生能通过实验深入到开发环节中,从而学习到真正的知识和技能。2.充分发挥开源软件的优势,摆脱嵌入式教学对商业软件的依赖

 

  嵌入式系统的开发天然地依赖开源软件,因此,采取开源软件来构建目标机宿主机服务器教学网络四位一体的教学及实验环境具有很高的自主性。

 

  3.注意理论教学与实训教学的结合,掌控对学生环境更新和稳定的平衡

 

  学生端需要一定的灵活性和稳定的本地环境来满足各种嵌入式开发工具的运用,不能象普通机房一样使用无盘系统或是磁盘还原系统。如何更好的平衡灵活性和学生端软件环境稳定性的要求,本方案进行了卓有成效的探索。

 

  总体来说,本方案的实践较好地体现了以上这些原则的应用,对嵌入式软件开发实训环境的构建提供了一个可操作性极强的解决思路。

 

  注释:

 

  ①iTALC是一个使用QT开发的开源电子教室软件,包括MasterClientLibraries等组件,支持LinuxWindows平台。

 

  3.3.2节图 3 PXE+DHCP+TFTP+Kickstart快速部署服务器

 

  ③56不是必须的。

 

  项目是Linux From Scratch项目的一个分支,专注于从上游(Up-stream)源码交叉编译适用于嵌入式设备(主要是ARM)Linux环境。

 

  作者:刘海波 来源:中文信息 20159

本文链接:http://www.qk112.com/lwfw/jsjlw/ruanjianjishu/229308.html

论文中心更多

发表指导
期刊知识
职称指导
论文百科
写作指导
论文指导
论文格式 论文题目 论文开题 参考文献 论文致谢 论文前言
教育论文
美术教育 小学教育 学前教育 高等教育 职业教育 体育教育 英语教育 数学教育 初等教育 音乐教育 幼儿园教育 中教教育 教育理论 教育管理 中等教育 教育教学 成人教育 艺术教育 影视教育 特殊教育 心理学教育 师范教育 语文教育 研究生论文 化学教育 图书馆论文 文教资料 其他教育
医学论文
医学护理 医学检验 药学论文 畜牧兽医 中医学 临床医学 外科学 内科学 生物制药 基础医学 预防卫生 肿瘤论文 儿科学论文 妇产科 遗传学 其他医学
经济论文
国际贸易 市场营销 财政金融 农业经济 工业经济 财务审计 产业经济 交通运输 房地产经济 微观经济学 政治经济学 宏观经济学 西方经济学 其他经济 发展战略论文 国际经济 行业经济 证券投资论文 保险经济论文
法学论文
民法 国际法 刑法 行政法 经济法 宪法 司法制度 法学理论 其他法学
计算机论文
计算机网络 软件技术 计算机应用 信息安全 信息管理 智能科技 应用电子技术 通讯论文
会计论文
预算会计 财务会计 成本会计 会计电算化 管理会计 国际会计 会计理论 会计控制 审计会计
文学论文
中国哲学 艺术理论 心理学 伦理学 新闻 美学 逻辑学 音乐舞蹈 喜剧表演 广告学 电视电影 哲学理论 世界哲学 文史论文 美术论文
管理论文
行政管理论文 工商管理论文 市场营销论文 企业管理论文 成本管理论文 人力资源论文 项目管理论文 旅游管理论文 电子商务管理论文 公共管理论文 质量管理论文 物流管理论文 经济管理论文 财务管理论文 管理学论文 秘书文秘 档案管理
社科论文
三农问题 环境保护 伦理道德 城镇建设 人口生育 资本主义 科技论文 社会论文 工程论文 环境科学