




已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
嵌入式系统设计与应用课程设计题目嵌入式系统的实践教学探讨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 文件系统的支持等。配置完毕,在终端输入编译命令“make”进行编译。若内核源码编译成功,将在 linux-2.6.19/arch/arm/boot/下生成内核映像文件 zImage。最后,在 vivi 命令提示模式下使用下载命令,将内核映像 zImage 加载到开发板 Flash 中的适当地址。根文件系统Linux 系统中的文件和设备是通过文件系统来组织的。文件系统的存在使得数据和设备可以被有效而透明地存取访问。一个 linux 的最简根文件系统应该包括支持 linux 系统正常运行的基本内容,包括系统使用的软件和库,以及所有用来为用户提供基本支持的架构和指令。在根文件目录 rootfs 下建立bin、dev、etc、lib、proc、sbin、root、tmp 等一系列必备的目录,把所需的配置文件、动态 函数库放到相应的目录。采用 BusyBox 是缩小根文件系统的好办法。BusyBox 以很小的体积集成了最常用的 linux 命令和应用程序,大大简化了制作 linux 根文件系统的过程。有一点必须指出的是,在 2.6.12(含)之前的内核通常是用 devfs 来管理位于/dev 下的所有块设备和字符设备;但在 2.6.13(含)之后的 内核已不支持devfs,而转用 udev 来管理/dev 下的设备。所以,针对 2.6.19 内核,要使系统启动后进入 BusyBox 控制台,还需在/root/fs/dev 下添加控制台设备文件:“rootlocalhost dev# mknod -m 600 console c 5 1”。目前,linux 已经能够支持几十种文件系统格式,如常用的Cramfs、Jfss2、Yaffs 等。Cramfs 是一种只读的闪存文件系统,可以保护系统的基本设置不被更改。根文件系统就使用 Cramfs 格式。使用 Cramfs 制作工具 mkcramfs 把根文件目录制作成映像文件:rootfs.cramfs。根文件系统制作完成,在 vivi 命令模式下把 rootfs.cramfs 下载到 Flash的合适位置。至此,一个基于 2.6.19 内核的小型 Linux 系统便成功地制作完毕,并移植到 S3C2410 开发板上了。板子加电后便可看到系统的启动信息,最终进入 BusyBox 控制台。2.移植 Bootloader 过程2.1 linux 系统上电后启动过程:-启动引导加载程序 bootloader(一些 CPU 在运行 bootloader 之前,会先运行一段固化的程序) 。-启动内核-挂载根文件系统其中,Boot paramoters 分区中放置一些可设置的参数,比如,IP 地址、串口波特率、要传递给内核的命令行参数等。2.2 为什么要进行 bootloader 移植?-bootloader 的实现依赖于具体的硬件,而在嵌入式产品中硬件的配置千差万别,即使相同的 CPU,它的外设也有可能不同,所以不可能有一个bootloader 支持所有的 CPU,即使是支持 CPU 架构比较多的 U-Boot,也不是拿来就能用的,也需要做一些简单的移植。2.3 Bootlader 的启动过程分为两个阶段:第一阶段:-硬件设备的初始化(进入 svc 模式、关闭 watchdog、禁中断、设置系统时钟频率、初始化存储控制器、初始化堆栈) 。-uboot 的代码重定位,从 nand 中拷贝至 sdram 中,默认是从 norflash 拷贝至 sdram-跳转到第二阶段 c 代码继续执行 第二阶段:-初始化本阶段要使用的硬件设备(如串口) 。-检测系统内存的映射(memory map) 。-从 flash 读取内核镜像和文件系统到 sdram 中。-为内核设置启动参数。-启动内核。3.本学期该课程的收获与建议。3.1 本学期该课程的收获本学期我对该课程的收获主要有以下几个方面:3.1.1 嵌入式系统的概念主要从三个方面上来理解。1、从硬件上,将基于 CPU 的处围器件,整合到 CPU 芯片内部,比如早期基于 X86 体系结构下的计算机,CPU 只是有运算器和累加器的功能,一切芯片要造外部桥路来扩展实现,象串口之类的都是靠外部的 16C550/2 的串口控制器芯片实现,而目前的这种串口控制器芯片早已集成到 CPU 内部,还有 PC 机有显卡,而多数嵌入式处理器都带有 LCD 控制器,但其种意义上就相当于显卡。比较高端的 ARM 类 Intel Xscale 架构下的 IXP 网络处理器 CPU 内部集成 PCI 控制器(可配成支持 4 个 PCI 从设备或配成自身为 CPI 从设备) ;还集成 3 个 NPE 网络处理器引擎,其中两个对应于两个 MAC 地址, 可用于网关交换用,而另外一个NPE 网络处理器引擎支持 DSL,只要外面再加个 PHY 芯片即可以实现 DSL 上网功能。IXP 系列最高主频可以达到 1.8G,支持 2G 内存,1G10 或 10G1 的以太网口或 Febre channel 的光通道。IXP 系列应该是目标基于 ARM 体系统结构下由 intel 进行整合后成 Xscale 内核的最高的处理器了。2、从软件上前,就是在定制操作系统内核里将应用一并选入,编译后将内核下载到 ROM 中。而在定制操作系统内核时所选择的应用程序组 件就是完成了软件的“嵌入” ,比如 WinCE 在内核定制时,会有相应选择,其中就是wordpad,PDF,MediaPlay 等等选择,如果我们选择 了,在 CE 启动后,就可以在界面中找到这些东西,如果是以前 PC 上将的 windows 操作系统,多半的东西都需要我们得新再装。3、把软件内核或应用文件系统等东西烧到嵌入式系统硬件平台中的 ROM 中就实现了一个真正的“嵌入” 。3.1.2 嵌入式系统的分层与专业的分类。嵌入式系统分为层,硬件层、驱动层、操作系统层和应用层。1、硬件层,是整个嵌入式系统的根本,如果现在单片机及接口这块很熟悉,并且能用 C 和汇编语言来编程的话,从嵌入式系统的硬件层走起来相对容易,硬件层也是驱动层的基础,一个优秀的驱动工程师是要能够看懂硬件的电路图和自行完成 CPLD 的逻辑设计的,同时还要对操作系统内核及其调度性相当的熟悉的。但硬件平台是基础,增值还要靠软件。硬件层比较适合于,电子、通信、自动化、机电一体、信息工程类专业的人来搞,需要掌握的专业基础知识有,单片机原理及接口技术、微机原理及接口技术、C 语言。2、驱动层,这部分比较难,驱动工程师不仅要能看懂电路图还要能对操作系统内核十分的精通,以便其所写的驱动程序在系统调用时,不会独占操作系统时间片,而导 至其它任务不能动行,不懂操作系统内核架构和实时调度性,没有良好的驱动编写风格,按大多数书上所说添加的驱动的方式,很多人都能做到,但可能连个初级的 驱动工程师的水平都达不到,这样所写的驱动在应用调用时就如同 windows 下我们打开一个程序运行后,再打开一个程序时,要不就是中断以前的程序,要不 就是等上一会才能运行后来打开的程序。想做个好的驱动人员没有三、四年功底,操作系统内核不研究上几编,不是太容易成功的,但其工资在嵌入式系统四层中可 是最高的。驱动层比较适合于电子、通信、自动化、机电一体、信息工程类专业尤其是计算机偏体系结构类专业的人来搞,除硬件层所具备的基础学科外,还要对数据结构与算法、操作系统原理、编译原理都要十分精通了解。3、操作系统层,对于操作系统层目前可能只能说是简单的移植,而很少有人来自已写操作系统,或者写出缺胳膊少腿的操作系统来,这部分工作大都由驱动工程师来完成。操作系统是负责系统任务的调试、磁盘和文件的管理,而嵌入式系统的实时性十分重要。据说,XP 操作系统是微软投入 300 人用两年时间才搞定的,总时工时是 600 人年,中科院软件所自己的女娲 Hopen 操作系统估计也得花遇几百人年才能搞定。因此这部分工作相对来讲没有太大意义。4、应用层,相对来讲较为容易的,如果会在 windows 下如何进行编程接口函数调用,到操作系统下只是编译和开发环 境有相应的变化而已。如果涉及Jave 方面的编程也是如此的。嵌入式系统中涉及算法的由专业算
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 教师招聘之《幼儿教师招聘》全真模拟模拟题附参考答案详解(达标题)
- 2025年教师招聘之《小学教师招聘》考前冲刺测试卷包附答案详解【夺分金卷】
- 教师招聘之《幼儿教师招聘》考前冲刺分析含答案详解(a卷)
- 教师招聘之《小学教师招聘》能力提升B卷题库含答案详解(巩固)
- 2025年教师招聘之《幼儿教师招聘》题库高频重点提升(共100题)及参考答案详解(夺分金卷)
- 2025年教师招聘之《小学教师招聘》考前冲刺练习题库及参考答案详解1套
- 教师招聘之《幼儿教师招聘》全真模拟模拟题含答案详解(b卷)
- 教师招聘之《幼儿教师招聘》考前冲刺试卷完整答案详解
- 2025年教师招聘之《小学教师招聘》试题一(综合卷)附答案详解
- 教师招聘之《小学教师招聘》【夺分金卷】附答案详解
- 精益理念及识别七大浪费-课件
- 《新编实用英语》教学方法的探讨与研究
- 阴式子宫全切术
- 军人常见心理问题
- 某大酒店弱电智能化系统清单报价
- 搅拌桩机使用说明书
- 2023年兴文县中医院康复医学与技术岗位招聘考试历年高频考点试题含答案解析
- GB/T 4852-2002压敏胶粘带初粘性试验方法(滚球法)
- 2023年太原市第二热力有限责任公司招聘笔试题库及答案解析
- DDI辅导员工迈向成功-辅导领导力系列
- 阿联酋法律体系
评论
0/150
提交评论