当前位置:文档之家› 嵌入式系统课程设计

嵌入式系统课程设计

《嵌入式系统设计与应用》课程设计题目嵌入式系统的实践教学探讨1.嵌入式系统设计与应用课程的内容概述1.1 内容概述本课程适用于计算机类专业,是一门重要的专业课程。

它的任务是掌握嵌入式系统的基本概念;掌握嵌入式处理器 ARM 体系结构,包括ARM总体结构、存储器组织、系统控制模块和I/O外围控制模块;掌握ARM指令集和Thumb指令集;掌握ARM汇编语言和C语言编程方法;了解基于ARM 的开发调试方法。

它的目的是了解和掌握嵌入式处理器的原理及其应用方法。

1)介绍嵌入式系统开发的基础知识,从嵌入式计算机的历史由来、嵌入式系统的定义、嵌入式系统的基本特点、嵌入式系统的分类及应用、嵌入式系统软硬件各部分组成、嵌入式系统的开发流程、嵌入式技术的发展趋势等方面进行了介绍,涉及到嵌入式系统开发的基本内容,使学生系统地建立起的嵌入式系统整体概念。

2)对ARM技术进行全面论述,使学生对ARM技术有个全面的了解和掌握,建立起以ARM技术为基础的嵌入式系统应用和以ARM核为基础的嵌入式芯片设计的技术基础。

3)ARM指令系统特点,ARM 指令系统,Thumb 指令系统,ARM 宏汇编,ARM 汇编语言程序设计,嵌入式 C 语言程序设计。

1.2实践教学探讨在IEEE 计算机协会2004年6月发布的Computing Curricula Computer Engineering Report, Ironman Draf t 报告中把嵌入式系统课程列为计算机工程学科的领域之一,把软硬件协同设计列为高层次的选修课程。

美国科罗拉多州立大学“嵌入式系统认证”课程目录包括实时嵌入式系统导论、嵌入式系统设计和嵌入式系统工程训练课程。

美国华盛顿大学嵌入式系统课程名称是嵌入式系统设计导论,它基本包括了前面三门课程的内容。

2006年6月,我国教育部高等学校计算机科学与技术教学指导委员会在“高等学校计算机科学与技术本科专业规范(试行)”中也将嵌入式系统列为计算机工程专业方向的核心课程。

嵌入式系统产品需要设计者具有较强的综合理论知识和动手能力,是一门综合性强、知识覆盖面大的课程,既涉及数字电子技术、模拟电子技术、微机原理与应用等硬件知识,又涉及操作系统、应用程序等软件知识,其过程极其复杂、繁琐,对于计算机专业本科生而言,开始学的时候往往是一头雾水,不知所云,无从下手。

因此,迫切需要在高校建立一个新的、基于先进嵌入式工程培养的、基于ARM技术和多任务操作系统的嵌入式系统教学课程体系,从根本上解决嵌入式技术发展对人才的需求。

由于高等教育提出朝着“宽口径、厚基础、重能力”的方向发展,培养适应能力强、发展潜力大的复合型人才是高等教育追求的目标。

为了提高学生对外部变化的适应和反应能力,拓宽学生的基础知识,夯实学生的理论基础,提高学生的动手能力、自主设计和创新能力,以增强学生在未来社会发展中的后劲,各个高校都在加大课程重组和整合的力度,修改教学计划,构建多元化学习评价体系,优化课程建设方案,以达到提高学生综合素质,提升教学质量强化优势学科和打造学科品牌的目的。

实践教学是实现“做中学”模式下人才培养目标的一个重要环节,实践教学的实施要遵循以下几个原则:(1)从简单、实用入手,激发学生兴趣与爱好。

注重培养学生的学习愿望和需求,生动地向学生介绍本课程的性质与设置目的。

加深学生对学习本课程必要性的认识,激发学生的学习需要和学习兴趣,培养学生的好奇心和求知欲,引导学生喜欢学习这门功课。

大大增加教学信息量,提高学习效率。

改变传统的“填鸭式”教学,实施启发式教学。

比如采用对比教学法:有些教学内容可以采用对比教学法,增强学生对知识的感受强度。

(2)入门程序要直观、易懂、容易操作;使学生很快掌握软件的编辑、编译、链接、调试、移植等过程;掌握软件工程项目的概念。

(3)安排实用性强的实验项目,比如LCD显示、触摸屏、键盘等内容,并让内容与手机关联起来,使学生明白手机是如何工作的,从而激发他们学习的动力。

同时实施实例化教学方法,就是以实际产品(或者半成品)为主要研究对象,强调从实际出发,采用自上而下或者自下而上的方式对方案进行设计测试,并在过程中对传统模式下的理论知识进行与时俱进的淬炼,努力使学生学习了一个例子,就掌握一方面实例的设计方法,学会嵌入式系统的设计理念和技术。

以实例化教学模式进行教学活动,涉及信息量大、知识点价值高、贴近实际应用,具有较好的应用价值和前景。

在学期课程结束进行评价测试时,实例化教学模式下的学生成绩和其他评测结果也好于传统模式下的结果。

(4)编写基于“做中学”理念的实验教学大纲、实验指导书,增加创新性实验项目,构建科学合理的实践教学体系。

创新性实验项目的设计,要紧密结合科研、产品与社会应用实践,引入现代科学技术和教学改革新成果,积极开发综合性、设计型、研究型等有利于学生创新能力培养的实验项目,减少验证性、演示性实验的比重,要围绕让学生自己以市场的需要为导向,从问题的提出,到问题的分析、解决和实施等几个过程来展开。

同时要紧跟时代的热点需求,以智能家电、iPad、PDA、GPS 导航等社会热点产品为CDIO的工程项目,使得学生进一步了解了嵌入式系统的系统组成、开发过程及应用领域。

(5)网络教学模式的积极引入。

制作课程的相关网站,通过编写教学课件、制作题库,为学生提供网络学习环境。

网站已包括教学资源、网上教学、习题解答、疑难解答、最新留言、子程序库、教学体会、教学交流、学生心得等几个板块。

通过和学生在课下互动,加深学生对课上知识点的印象和理解,有效地提高了学生的主观学习能动性。

并且通过网站建设也与其他高校及相关行业人士进行专业交流。

(6)积极引导学生参加各种大赛及创新性试验计划。

组织参加课外科技活动小组的学生参加国内外各种相关的科技性设计大赛,根据学生完成实际项目的情况和大赛获奖情况,判断教学改革的成效,对根据结果对教学方案进行调整。

(7)重新建立科学的考评体系。

建立以理论考核与实验考核相结合的模式,以实验考核为主;在实验考核中又以综合设计性实验的成绩为主,通过观察学生所完成的实验内容、质量、正确性等,着重考核学生的实验技能和科学作风,考核学生的设计方法和创新能力以及是否满足实验指标要求,期终考试则着重考核学生对原理的掌握。

1.3 从裸机程序到移植Bootloader到引导嵌入式操作系统内核到移植根文件系统以及驱动程序(以 armLinux系统移植步骤为例)arm9S3C2410微处理器与Linux的结合越来越紧密,逐渐在嵌入式领域得到广范的应用。

目前,在便携式消费类电子产品、无线设备、汽车、网络、存储产品等都可以看到S3C2410与Linux相结合的身影。

S3C2410微处理器是一款由Samsung公司为手持终端设计的低价格、低功耗、高性能,基于arm920T核的微处理器。

它带有内存管理单元 (MMU),采用0.18mm 工艺和AMBA新型总线结构,主频可达203MHz。

同时,它支持Thumb 16位压缩指令集,从而能以较小的存储空间获得32位的系统性能。

在众多嵌入式操作系统中,Linux目前发展最快、应用最为广泛。

性能优良、源码开放的Linux具有体积小、内核可裁减、网络功能完善、可移植性强等诸多优点,非常适合作为嵌入式操作系统。

一个最基本的Linux操作系统应该包括:引导程序、内核与根文件系统三部分。

与Linux2.4内核相比,2.6内核吸收了最新的技术,在性能、可测量性、器件支持和可用性方面有了大幅度提高;支持更多的体系结构、处理器、总线、接口和设备;标准化了内部接口;简化了扩展或添加新设备的步骤等。

本文着重介绍如何制作一个基于linux-2.6.19内核的小型Linux操作系统,并将它移植到S3C2410开放板上。

内容包括交叉编译环境的建立,引导程序、2.6.19内核、根文件系统的修改、配置、编译、移植等。

系统的制作移植建立交叉编译环境要移植、开发小型Linux系统,首先要在安装了RedHat9或更高版本Linux 操作系统的主机上配置交叉开发环境。

交叉开发是指在开发主机上安装开发工具,编辑、编译目标板的引导程序、内核和文件系统,使其能在目标板上运行。

针对本次开发,需要安装arm-linux-gcc-3.4.1以及armv4l-tools工具链。

在安装完毕后,切记要将两者的路径分别添加到系统路径$PATH中。

引导程序对于计算机系统来说,从开机上电到操作系统启动需要一个引导程序。

嵌入式linux系统同样离不开引导程序,这个引导程序叫做 Bootloader。

通过这段小程序,可以初始化硬件设备、建立内存空间的映射表,从而建立适当的系统硬件环境,为最终调用操作系统内核做好准备。

Vivi是韩国MIZI公司为其arm9系列产品而研发的Bootloader,小而灵巧,这里选用它作为小型Linux系统的Bootloader。

首先要修改vivi源代码中的Flash分区信息。

在vivi源码arch/s3c2410/smdk.c文件中作出相应的修改。

然后在配置菜单中导入smdk2410的默认配置,编译成功将在vivi源代码目录下生成所需的Bootloader文件,文件名为vivi。

接着,便可把vivi下载到目标板Flash的相应位置。

内核·内核修改首先,修改内核源码linux-2.6.19下的Makefile文件,指定目标代码类型与编译器:SUBARCH :=arm;CROSS_COMPILE:=/usr/local/arm/3.4.1/bin/arm-linux-。

然后,在linux-2.6.19/arch/arm/mach-s3c2410/common-smdk.c中根据表1修改内核中的Flash分区信息。

这里提醒读者,2.6.16(含)以前内核的源码中没有Flash分区信息,所以需要增加新的分区信息;而在2.6.17(含)以后内核的源码中已含Flash分区信息,需要的只是修改分区信息。

内核Flash分区信息必须与vivi的Flash分区信息相一致。

因为,vivi的Flash分区中的地址是内核及文件系统下载到Nand flash的真正地址;而内核在启动时读的却是内核Flash分区设定的地址;所以,若两者不同,则很可能导致不能正常启动内核或读取文件系统。

最后,修改linux-2.6.19/drivers/mtd/nand/s3c2410.c,禁止Nand flash 差错检测:chip->eccmode = NAND_ECC_NONE;。

·内核的配置编译在配置菜单中导入内核对smdk2410的默认配置,再在此基础上选择所需的功能。

如Nand Flash及MTD设备的支持,Cramfs文件系统的支持等。

相关主题