已阅读5页,还剩33页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本科毕业论文 题 目:嵌入式平台的应用与研究 院 系:信息工程学院 专 业:自动化 班 级:0702 学生姓名: 指导教师: 论文提交日期:2011 年 6 月 24 日 论文答辩日期:2011 年 6 月 28 日 摘要摘要 随着现代科技和互联网技术的飞速发展,嵌入式系统己经遍及到人 们生活的各个领域。嵌入式以其精炼、专用、易扩充和可靠性高等特点, 应用领域可谓无处不在,而且还有不断增长、发展的前景,未来也势必 将进一步推动 IT 产业的发展。嵌入式系统自诞生以来经历了一个从无 到有、从弱到强、从少到多的发展进程,而生产嵌入式系统的开发工具 却越来越落后于实际的需要,并逐步成为嵌入式系统进一步发展的瓶颈。 嵌入式系统是软、硬件相结合的综合体,开发过程基本可以分为两个阶 段,即嵌入式平台的开发阶段和针对某个应用程序的开发阶段,有了嵌 入式系统应用平台,开发人员可以直接在现成的嵌入式平台上进行产品 的开发,这样不仅可以大大缩短开发周期,及时推出自己的产品,而且 还能增加产品的市场竞争力。 ARM 平台是目前使用最为广泛的 32 位嵌入式处理器体系结构。本文 采用 S3C2410(ARM9 内核)为 CPU 的硬件平台,而 S3C2410 平台是韩国三 星公司生产的一款基于 ARM920T 体系结构的高性能 CPU,它具有丰富的 外设接口,202MHZ 的主频使它特别适合进行操作系统的移植和进行应用 开发。在嵌入式的各种操作系统中,Linux 凭借其在结构清晰,源代码 开放等各方面的优势,成为了嵌入式开发的首选。Linux 包含的许多新 的特性,为其在嵌入式领域的应用提供了强有力的支持,新的内核越来 越多的被应用于嵌入式 Linux 系统中是必然的趋势。 本论文应用一个基于 ARM9 处理器(S3C2410)的嵌入式 Linux 系统 图形用户界面平台,从嵌入式系统应用与实践的角度出发,介绍了开发 平台,并建立了嵌入式开发环境;在分析嵌入式系统的引导加载过程的 基础上,完成了对 Bootloader 、VIVI 的移植;并且给出了基于所建平 台的几个应用。 关键词关键词: : 嵌入式系统; Linux; ARM9; 移植; 图形用户界面 Abstract With the rapid development of modern computer technology and Internet techniques, the embedded system has merged into every field. And embedded system is characterized by refining, dedcation,expansion, and reliability,which is applied to all kinds of application domain,and has an increasing,expanded prospect.And it will make the information teehnology industry become more development.The embedded system is coming through a developing course from simple to complex. But now the devising tools of embedded system is still far behind hand to the practical need and this is more and more becoming the obstacle in the developing road of embedde d system.Embedded system is the colligation of hardware and software, the developing of embedded system contain two parts,universal embedded system and above application Program development.Researcher or company dont need develop entire hardware and software of embedded system,can develop the embedded system on the basic of developed system. Nowadays,the ARM platform has become the most populary 32 bit embedded processor structure.In this thesis, A hardware platform with a S3C2410 CPU is selected. S3C2410 is a high performance cpu based on ARM920T structure,and is suitable for the operation system migrating for its abundant peripheral equipment interface and 202MHz main frequency.In all kinds of embdedd operating system,Linux structure and open source so it is the chief choice the advantage of clear embedded development.Linux 2.6 introdues many new feartures that make it an excellent operating system for embedded computing.Undoubtedly,using the new kernel in embedded system is the development trend. This thesis realizes a Embedded Linux platform which is based on the ARM9 processor(S3C2410).From the view of application and practice of the embeded system , introdces the development platform,setting the environment of cross compiling.Based on the analysis of the booting and loading process of the Embedded system,implements the transplantation of bootloader、VIVI on the platform,And gives several application based on this platform. Key Words: Embedded system; Linux; ARM9; Transplantation; GUI 目 录 第一章绪论.1 1.1 嵌入式系统概述 .1 1.1.1 嵌入式系统的概念 1 1.1.2 嵌入式系统的特点 1 1.1.3 嵌入式系统的应用领域 2 1.1.4 嵌入式系统的分类 3 1.2 嵌入式 LINUX系统开发流程 5 1.3 嵌入式系统研究背景及意义 .7 1.3.1 嵌入式系统的发展现状 7 1.3.2 嵌入式系统的发展趋势和方向 7 第二章嵌入式开发平台简介及开发环境的建立.9 2.1 开发平台简介 .9 2.2 开发环境的建立 10 2.2.1 REDHAT LINUX9.0 的安装11 2.2.2 主机系统的硬件配置及操作系统 .11 2.2.3 配置本机网络 .11 2.2.4 配置 NFS13 2.2.5 配置 MINICOM15 第三章 LINUX 在硬件平台上移植的实现.17 3.1 建立交叉编译环境 17 3.2 BOOT1OADER研究与移植17 3.2.1 Bootloader 简介.17 3.2.2 Bootloader 的操作模式.18 3.2.3 Bootloader 的启动过程.18 3.3 VIVI 的移植 20 3.3.1 VIVI 的目录结构.20 3.3.2 VIVI 启动过程与移植.20 第四章基于 S3C2410 开发平台的应用.22 4.1 熟悉LINUX开发环境22 4.2 多线程应用程序设计 24 4.2.1 多线程程序的优点 .24 4.2.2 实验过程24 4.4 CAN 总线通讯实验 .25 4.4.1 CAN 总线概述25 4.4.2 CAN 总线控制器 MCP2510 26 4.4.3 实验过程 .27 第五章总结28 参考文献29 致谢.30 沈阳化工大学学士学位论文 第一章 绪论 0 第一章绪论 1.11.1 嵌入式系统概述嵌入式系统概述 .1 嵌入式系统的概念嵌入式系统的概念 根据 IEEE(国际电机工程师协会)的定义,嵌入式系统是“控制、监视或者辅 助机器和设备运行的装置“(原文为 devicesused to control,monitor,or assist the operation of equipment,machinry or plants)1。这主要是从应用上加以定 义的,从中可以看出嵌入式系统是软件和硬件的综合体,还可以涵盖机械等附属装 置。目前在国内一个普遍被认同的定义是:以应用为中心、以计算机技术为基础, 软、硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的 专用计算机系统。 “嵌入性” 、 “专用性”与“计算机系统”是嵌入式系统的三个基本 要素,嵌入式系统所嵌入的宿主系统则被称为对象系统。 由于嵌入式系统是面向特定用户、面向特定产品、面向特定应用的,因此它必 须与具体应用相结合才会更加具有生命力、才会更加具有优势。嵌入式系统一般指 非 PC 机系统,它包括硬件和软件两部分,硬件包括处理器、存储器、外设器件和 I/O 端口、图形控制器等。软件部分包括操作系统软件(OS) (要求实时和多任务操 作)和应用程序。应用程序的作用是控制系统的运作和行为,而操作系统的作用则 是控制应用程序与硬件的交互。嵌入式系统是将先进的计算机技术,半导体技术和 电子技术和各个行业的具体应用相结合的最后产物,这一点决定了它必然是一个技 术密集、资金密集、高度分散、不断创新的知识集成系统。 1.1.2 嵌入式系统的特点嵌入式系统的特点 从嵌入式系统的开发、运行方面来看,嵌入式系统具有以下重要特征23: 嵌入式系统本身并不具备自主开发能力,即使应用程序设计完成以后用户仍 不能对其中的程序进行修改,必须有一套自己的开发工具和环境才可以进行对其进 行修改。开发时有主机和目标机之分,主机主要用于程序的开发,目标机则作为最 后的执行机,开发时则需要交替着进行。 嵌入式系统通常是面向特定应用的,专用性很强,其中的软、硬件的结合非 沈阳化工大学学士学位论文 第一章 绪论 1 常紧密,常常需要针对硬件的情况进行系统的移植。同时还要针对不同的任务,对 系统进行较大的更改,同时程序的编译下载也需要和系统相结合,这种修改和通用 软件的“升级”是两种完全不同的概念。 嵌入式系统的内核非常小。它不具备像硬盘那样大容量的存储介质,它区别 于一般的计算机处理系统,而大多使用闪存作为存储介质。这就要求嵌入式操作系 统只能运行在有限的内存中,一般不使用虚拟内存,中断的使用也受到限制。因此, 嵌入式操作系统必须结构紧凑,体积微小。 高实时性嵌入式操作系统。这是嵌入式软件的基本要求,软件要求固态存储, 软件代码要求高质量、高可靠性。大多数嵌入式系统都是强实时多任务系统。 为了提高执行速度和系统的可靠性,嵌入式系统中的软件一般都固化在存储 器芯片或单片机本身中,而不是存储于磁盘等载体中。 软硬件模块化设计、系统可精简。嵌入式系统设计一般都采用模块化设计方 法,可以根据用户的自身需要进行选择,不要求其功能设计及过程实现上过于复杂, 这样一方面有利于控制系统的成本,同时也利于实现系统安全。 1.1.3 嵌入式系统的应用领域嵌入式系统的应用领域 嵌入式技术具有极其广阔的应用前景,其应用领域可以包括以下几个方面4: 工业控制 具有嵌入式芯片的工业设备具有极其大的发展空间,不仅可以提高工业生产效 率,还能减少消耗的人力资源,最终达到提高生产过程自动化水平的目的。目前嵌 入式微控制器已被大量应用在工业过程控制、数控机床、电力系统、电网安全、电 网设备监测、石油化工系统等领域。 家庭智能管理系统 水、电、煤气表的远程自动抄表,安全放火、防盗系统,其中嵌入式的专用控 制芯片将代替传统的人工检查,并实现效率更高、更准确和更安全的性能。 信息家电 信息家电在未来将成为嵌入式系统最大的应用领域之一,冰箱、空调等的网络 化、智能化将引领人们步入一个崭新的生活空间。这一应用将使你可以通过电话线、 网络远程控制你的家电设备,使嵌入式系统大有用武之地。 沈阳化工大学学士学位论文 第一章 绪论 2 交通管理 在流量控制、汽车服务、车辆导航、信息监测等方面,嵌入式技术同样获得了 极其广泛的应用,内嵌 GSM 模块、GPS 模块的移动定位终端已经在各种运输行业中 成功使用。 POS 网络及电子商务 公共交通无接触智能卡发行系统、公共电话卡发行系统、自动售货机、各种智 能 ATM 终端将全面步入人们的生活,到时手持一卡就可以行遍天下。 环境工程与监测 环境监测包括水文资料实时监测、防洪体系及水土质量监测、堤坝安全、地震 监测网、实时气象信息网、水源和空气污染监测等。在很多环境恶劣、地况复杂的 地区,嵌入式系统将实现无人监测。 机器人 嵌入式芯片的发展将使机器人在微型化、智能化方面的优势更加明显,同时也 会大幅度降低机器人的价格,使其在工业领域和服务领域获得更广泛的应用。此外, 嵌入式系统还可以应用在其他领域。可以说,嵌入式系统己经进入到现代社会中人 们生活的方方面面,无处不在。 .4 嵌入式系统的分类嵌入式系统的分类 嵌入式系统是软件和硬件的综合体,所以嵌入式系统可以划分为硬件和软件两 大部分5。 嵌入式系统的硬件 从硬件方面来讲,嵌入式系统的核心部件是嵌入式处理器。处理器的寻址空间 范围可以从 64KB 到 256MB,处理速度可从 0.1MIPS 到 2000MIPS。近年来,嵌入式微 处理器主要向着小体积、高性能、低功耗等方面发展。专业分工也越来越明显,出 现了专业的 IP(IntelleeotalPorpeyrtcore,知识产权)供应商,如 ARM、MPIS 等, 他们通过提供优质、高性能的嵌入式微处理器内核,由各个半导体厂商生产面向各 个应用领域的芯片。 一般来讲,嵌入式处理器可以分为以下 4 类,如图 1.1 所示: 沈阳化工大学学士学位论文 第一章 绪论 3 嵌入式处理器 嵌入式微控制器 (MCU) 嵌入式微处理器 (MPU) 嵌入式片上系统 (SOC) 嵌入式处理器 (DSP) 图 1.1 嵌入式处理器分类 嵌入式微处理器是由普通 PC 中的 CPU 演化而来的。它是具有 32 位以上的处理 器,具有较高的性能,当然其价格方面也相应较高。与普通的工控机相比,它具有 体积小、重量轻、成本低、可靠性高等优点。目前主要的嵌入式微处理器类型有: Aml86/88、386EX、SC-400、Power PC、68000、MIPS、ARM/XSeale 系列等。本次设 计系统中,采用的即为 ARM 微处理器。 嵌入式系统的软件 嵌入式系统的软件一般由嵌入式操作系统和应用软件两部分组成。嵌入式操作 系统是连接计算机硬件与应用程序的系统程序。该操作系统有两个基本功能:一是使 计算机硬件便于使用高效组织;二是正确地使用计算机的资源。操作系统有 4 个主 要任务:进程管理、进行间通信与同步、内存管理和 I/O 资源管理。 目前嵌入式系统的软件分类,如图 1.2 所示。 实时系统 嵌入式系统 分时系统 硬实时系统 软实时系统 图 1.2 嵌入式系统的软件分类 实时操作系统(Real-Time Operation System,RT0S)是指具有实时性,能支持 实时控制系统工作的操作系统。实时操作系统的首要任务是调度一切可利用的资源 完成实时控制任务;其次才着眼于提高计算机系统的使用效率,其重要特点是通过 任务调度来满足对于重要事件在规定的时间内做出正确的响应。 沈阳化工大学学士学位论文 第一章 绪论 4 1.21.2 嵌入式嵌入式 LinuxLinux 系统开发流程系统开发流程 嵌入式 Linux 的开发过程,根据应用需求的不同有不同的配置开发方法,一般 都要经历以下过程,如图 1.3 所示6。 (l) 建立开发环境。操作系统一般使用 RedhatLinux9.0,选择定制安装或全 部安装,通过网络下载相应的 Gcc 交叉编译器进行安装(比如 arm 一 hnux 一 gccarm 一 clibc-gcc),或者安装产品厂家提供的交叉编译器。 (2) 配置开发主机。配置 MINICOM,一般参数为波特率 115200,数据位 8 位, 停止位 1,无奇偶校验,软硬件控制流设为无。在 WindowS 下超级终端的配置也是 这样。MINICOM 软件的作用是作为调试嵌入式开发板信息输出的监视器和键盘输入 的工具;配置网络,主要是配置 NFS 网络文件系统,需要关闭防火墙,简化嵌入式 网络调试环境设置过程。 (3) 建立引导装载程序 Bootloader。从网络上下载一些公开源代码的 Bootloader,如 U-B00T、BLOB、vivi、 LILO、ARM-B00T、RED-B00T 等,然后根据 所选具体芯片进行程序的移植与修改。有些芯片里没有内置引导装载程序,比如三 星的 ARM7、ARM9 系列芯片,这样就需要编写烧写开发板上 flash 的烧写程序,在网 络上可以找到免费下载的 Windows 下通过 JTAG 并口简易仿真器烧写 ARM 外围 flash 芯片的程序,也有 Linux 下公开源代码的 J-FLASH 程序。如果不能烧写自己的开发 板,就需要根据自己的具体电路进行源代码修改。这是让系统可以正常运行的第一 步。如果购买了厂家的仿真器当然比较容易烧写 flash 了,但是其中的核心技术是 无法了解的。但是对于那些需要迅速开发应用的人来说可以极大地提高开发速度。 (4) 下载别人已经移植好的 CLinux 操作系统,如 Linux、ARM-Linux、PPC- Linux 等,如果有专门针对你所使用的 CPU 移植好的 Linux 操作系统那是再好不过, 下载后再添加自己的特定硬件的驱动程序,进行调试修改,对于带 MMU 的 CPU 可以 使用模块方式调试驱动,对于 CLinux 这样的系统只能编译其内核进行调试。 (5) 建立根文件系统。从 下载使用 Busybox 软件,并对其进 行功能裁减,使其产生一个最基本的根文件系统,再根据用户的应用需要添加其他 的程序。默认的启动脚本一般都不会符合自己的应用需要,所以就要修改根文件系 统中的启动脚本,一般情况下它的存放位置位于/etc 目录下,包括 沈阳化工大学学士学位论文 第一章 绪论 5 :/etc/init.d/rc.s、 /etc/profile、 /etc/.profile 等,自动挂装文件系统的配 置文件/ctc/fstab,当然具体情况也会随系统的改变而有所不同。根文件系统在嵌 入式系统中一般默认为只读情况,需要使用 mkcramfs、genromfs 等工具产生烧写映 象文件。 (6) 建立应用程序的 flash 磁盘分区,一般使用 JFFS2 或 YAFFS 文件系统,这 就需要在内核中提供这些文件系统的驱动,有的系统使用一个线性 flash(NO 型) 512K-32M,有的系统使用非线性 flash(NAND 型)8K-512M,有的两个同时使用,需要 根据应用规划 flash 的分区方案。开发应用程序,可以下载到根文件系统中,也可 以放入 YAFFS、JFFS2 文件系统中,有的应用程序不使用根文件系统,而是直接将应 用程序和内核设计在一起,这有点类似于 C/OS-的方式。 (7) 烧写内核、根文件系统、应用程序。 (8) 发布产品。 建立开发环境 配置开发主机 建立引导装载程序 Bootloader 移植 Linux 操作系统 建立文件系统 烧写内核、根文件系统、应用程序 发布产品 图 1.3 嵌入式 Linux 开发流程 沈阳化工大学学士学位论文 第一章 绪论 6 1.31.3 嵌入式系统研究背景及意义嵌入式系统研究背景及意义 .1 嵌入式系统的发展现状嵌入式系统的发展现状 随着信息化、网络化、智能化的飞速发展,嵌入式系统技术已全面展开。美国 著名未来科学家尼葛洛庞帝 1999 年 1 月访华时预言,4-5 年后嵌入式智能(电脑)工 具将成为 PC 和因特网之后最为伟大的发明。进入 20 世纪 90 年代以来,嵌入式的相 关技术成为通信和消费类产品的共同发展方向。无论是在通信领域还是在广播电视 领域,数字技术都在全面取代模拟技术。似乎一切产品都已离不开嵌入式技术。在 个人领域中,嵌入式产品将主要是作为个人移动的数据处理软件和通信软件。嵌入 式设备具有自然的人机交互界面,以 GUI 屏幕为中心的多媒体界面更是给人以很大 的亲和力。 今天嵌入式系统带来的工业年产值已超过了 1 万亿美元。美国汽车大王福特公 司的高级经理也曾宣称, “福特出售的计算能力已超过了 IBM” 。由此可以想象 嵌入式计算机工业的规模和广度 。在国内, “维纳斯计划” “女蜗计划”一度闹得沸 沸扬扬,机顶盒、信息家电这两年更成为了 IT 热点,而实际上这些都是嵌入式系统 在特定环境下的一个特定应用。 .2 嵌入式系统的发展趋势和方向嵌入式系统的发展趋势和方向 在这个信息技术高速发展的时代,嵌入式产品获得了巨大的发展机遇,更展现 了美好的前景,同时也对嵌入式的生产厂商提出了新的挑战,因此,嵌入式系统可 以概括为以下几个发展趋势78: 嵌入式开发是一项系统工程,因此厂商不仅要提供嵌入式软硬件系统本身, 同时还要提供强大的硬件开发工具和软件包支持。目前社会上的很多厂家已经考虑 到了这一点在主推系统的同时将开发环境也作为重点推广。如三星在推广 ARM7、ARM9 芯片的同时还提供开发板和版级支持包(SP),而 WindowCE 在主推系统 时也提供 Embedded VC+作为开发工具,还有 Vxworks 的 Tonado 开发环境, DeltaOS 的 Limda 编译环境等等都是这一趋势的典型体现。 网络化、信息化的要求随着因特网技术的成熟、带宽的加大而日益提高,使 得以往单一功能的设备如电话、手机、冰箱、微波炉等功能不再单一,结构更加复 沈阳化工大学学士学位论文 第一章 绪论 7 杂。 精简系统内核、算法,降低功耗和软硬件成本。未来的嵌入式产品是软硬件 紧密结合的设备,为了降低功耗和成本,需要设计者尽量精简系统内核,只保留和 系统功能相关的软硬件,利用最低的资源实现最适当的功能,这要求设计者选用最 佳的编程模型,不断改进算法,优化编译器性能,提供友好的多媒体人机界面。嵌 入式设备能与用户亲密接触,最重要的因素就是它能提供非常好的用户界面、图像 界面和灵活的控制方式,使得人们感觉嵌入式设备就像是一个熟悉的老朋友。 网络互连成为必然趋势。未来的嵌入式设备为了适应网络发展的需求,必然 要求硬件上提供各种网络通信接口;软件方面,系统内核支持网络模块,甚至可以 在设备上嵌入式 web 浏览器,真正实现随时随地用各种设备上网。 沈阳化工大学学士学位论文 第二章 嵌入式开发平台简介及开发环境的建立 8 第二章嵌入式开发平台简介及开发环境的建立 2.12.1 开发平台简介开发平台简介 本课题采用博创 2410 开发板(如图 2.1),它是基于 samsung 公司的 S3C24lO 处 理器的开发平台。S3C24lO 处理器为 ARM92OT 内核 16/32-bitRISC CPU,拥有独立的 16KB 指令和 16KB 数据 Cache,MMU 虚拟内存管理单元,NOR Flash Bootloader,系 统管理单元(SDRAM 控制器等),3 通道 UART,4 通道 DMA,4 通道具备 PWM 功能的定 时器,IO 口,RTC(实时时钟),8 通道 10bit 精度 ADC 和触摸屏控制器,IIC 总线接 口 IIS 数字音频总线接口,USB 主机,USB 设备,SD/MMC 卡控制器,集成 LCD 控制 器(支持 STN 和 TFT),2 通道 SPI 和 PLL 数字锁相环。该处理器集成度高,功能强大, 便于手提便携设备以及其他工控设备如指纹识别器、车载系统等的应用。博创公司 推出的 2410 开发板充分展现了 S3C2410 处理器的所有功能,用户可以方便地在该平 台上进行开发,也可作为用户产品应用开发的参考9。表 2.1 为开发板的硬件配置 表。 图2.1 S3C2410开发板 表 2.1 UP-TECH S2410/P270 DVP 的硬件配置 配置名称型号说明 CPU ARM9 结构芯片三星 S3C2410X工作频率 203MHz FLASHSAMSUNG K9F120864M NAND 沈阳化工大学学士学位论文 第二章 嵌入式开发平台简介及开发环境的建立 9 SDRAM HY57V561620ATH 32M2=64M EtherNet 网卡 DM9000AE 10/100M 自适应 LCDLQ080V3DG01 8 寸 16bit TFT 触摸屏 SX-080-W4R-FB FM7843 驱动 USB 接口4 个 HOST /1 个 DEVICE由 AT43301 构成 USB HUB UART/IrDA 2 个 RS232,1 个 RS485,1 个 IrDA AD 由 S3C2410 芯片引出3 个电位器控制输入 AUDIO IIS 总线,UDA1341 芯片44.1KHz 音频 扩展卡插槽 168Pin EXPORT 总线直接扩展 GPS_GPRS 扩展板SIMCOM SIM300 GPRS 模块, TrimbleS GPS 支持双道语音通信 IDE/CF 卡插座笔记本硬盘,CF 卡 PS2 PC 键盘和鼠标由 ATMEGA8 单片机控制 IC 卡座AT24CXX 系列由 ATMEGA8 单片机控制 LED 8x8 矩阵 LED 及 2 个 LED 数 码管 由总线控制 VGA Vga 输出 中断键1 个ENT 控制 LED 由 3 个 IO 口控制 DC 电机由 PWM 控制闭环测速功能 CAN BUS MCP2510 和 TJA1050 构成 Double DAMAX504 一个 10 位 DAC 端口 调试接口板载 JTAG,直接支持下载与 仿真 25 针 2.22.2 开发环境的建立开发环境的建立 嵌入式LINUX开发环境有几个方案10: 1、基于PC机WINDOWS操作系统下的CYGWIN; 2、在WINDOWS下安装虚拟机后,再在虚拟机中安装LINUX操作系统; 3、直接安装LINUX操作系统。 基于实际的操作环境,设计中采用在WINDOWS下安装虚拟机后,再安装LINUX操作 系统,实际开发环境为REDHAT9.0,它已经支持中文,并且包含了绝大部分的开发工 具,不用担心装了LINUX就不能使用WINDOWS的问题。在实际应用中,一般情况都是 用户已经拥有WINDOWS操作系统,再安装LINUX操作系统,LINUX会自动安装一个启动 引导软件,可以选择引导多个操作环境。软件开发平台是嵌入式开发的关键,嵌入式 软件开发平台建立的目的是为了进Bootloader移植、Linux内核移植以及C口系统开 发。由于嵌入式硬件平台的存储空间有限、处理器频率较低,很难直接在嵌入式硬 沈阳化工大学学士学位论文 第二章 嵌入式开发平台简介及开发环境的建立 10 件式平台上建立Linux系统、安装嵌入式开发软件,因此只能采用嵌入式交叉开发环 境来解决这个问题。嵌入式操作系统开发和嵌入式软件开发都需要使用交叉开发环 境。交叉开发环境是指实现编译、链接和调试应用程序代码的环境,与运行应用程 序的环境不同,它分散在有通信连接的宿主机与目标机环境中。常采用 HOST/TARGET(即“主机/目标机”的方式)。先利用宿主机(一般为PC)上强大便捷的 开发环境开发出应用程序,然后利用串口和网络连接将程序下载到目标机(即嵌入式 平台)上运行。 .1 REDHATREDHAT LINUX9.0LINUX9.0 的安装的安装 在一台PC上安装RedHat LINUX9.0,选择Custom定制安装,在选择软件Package 时最好将所有包都安装,需要空间约2.7G,如果选择最后一项:everything,即完 全安装,将安装3张光盘的全部软件,需要磁盘空间大约5G。因此建议提前为REDHAT LINUX的安装预留大约515G的空间,具体视用户的硬盘空间大小来确定,在安装完 Redhat后还要安装Linux的编译器和开发库以及ARM-Linux 的所有源代码,这些包安 装后的总共需要空间大约为800M。 .2 主机系统的硬件配置及操作系统主机系统的硬件配置及操作系统 主机硬件配置如下: CPU:PIV24G 内存:DDR512M 硬盘:80G 网卡:10/100M自适应网卡 串口:RS232 操作系统:RedHat9.0 .3 配置本机网络配置本机网络 配置网络,网络配置主要是要安装好以太网卡,对于一般常见的RTL8139 网卡 REDHAT9.0可以自动识别并自动安装好,完全不要用户参与,因此建议使用该网卡。 然后配置宿主机IP为21。如果是在有多台计算机使用的局域网环境使用 此开发设备,IP 地址可以根据具体情况设置,如图2.2所示。 沈阳化工大学学士学位论文 第二章 嵌入式开发平台简介及开发环境的建立 11 点击主菜单运行系统设置一网络设置,本机网络配置见图2.3和图2.4所示。 图2.2 网络配置 双击设备 eth0 的蓝色区域,进入以太网设置界面。 对于REDHAT9.O,它默认的是打开了防火墙,因此对于外来用户的访问,它全部 拒绝,这样其它网络设备根本无法访问它,即无法用NFS挂载它,许多网络功能都将 无法使用。因此网络安装完毕后,应立即关闭防火墙。 操作如下:点击主菜单运行系统设置一选择安全级别设置,选中无防火墙。在 系统设置菜单中选择服务器设置菜单,再选中服务菜单,将iptables服务的勾去掉, 并确保nfs选项选中,如图2.5所示。 图2.3 以太网常规界面设置 沈阳化工大学学士学位论文 第二章 嵌入式开发平台简介及开发环境的建立 12 图2.4 以太网路由界面设置 图2.5 安全级别设置 .4 配置配置 NFSNFS NFS是Network File System的简写,即网络文件系统,NFS是由SUN公司开发,并 于1984年推出的一个RPC(Remote Procedure Call,即远程过程调用)服务系统,它 能实现文件共享,在不同的系统间使用,所以它与通信协议、主机及操作系统无关11。 当用户想使用远程文件时只要使用“mount”命令就可把远程文件系统挂接在自己的 沈阳化工大学学士学位论文 第二章 嵌入式开发平台简介及开发环境的建立 13 文件系统之下,使远程的文件与使用本地计算机上的文件一样,即提供透明、一体 化的联机共享文件访问。NFS至少有两个主要部分:一台服务器和一台(或者更多) 客户机。客户机远程访问存放在服务器上的数据,一台计算机也可同时作为NFS服务 器和NFS客户机。在嵌入式中使用NFS会使应用程序的开发变得十分方便,并且不用 反复地进行烧写镜像文件。 通过如下操作开启该服务:点击主菜单运行系统设置一服务器设置一NFS服务 器,点击增加出现如下界面(如图2.6),在目录中填入需要共享的路径,在主机中填 入允许进行连接的主机IP地址。并选择允许客户对共享目录的操作为只读或读写。 图2.6 配置NFS 也可以手工编写/etc/exports 文件,其格式如下: 共享目录 可以连接的主机(读写权限,其他参数) /arm2410cl 192.168.0.*(rw,sync) 表示将本机的/arm2410cl 目录共享给ip地 址为54 的所有计算机,可以读取和写入。 配置完成后,可用如下办法简单测试一下NFS是否配置好了:在宿主机上自己 mount自己,看是否成功就可以判断NFS是否配好了。例如在宿主机/目录下执行: mount0:/arm2410cl /mnt 其中0 应为主机的IP地址。然后 到/mnt/目录下看是否可以列出/arm2410cl目录下的所有文件和目录,可以则说明 mount成功,NFS配置成功。 沈阳化工大学学士学位论文 第二章 嵌入式开发平台简介及开发环境的建立 14 .5 配置配置 MINICOMMINICOM Linux下的Minicom的功能与Windows下的超级终端功能相似。Minicom是一个界 面,并且容易使用串口通信程序,利用它可以很方便地对串行端口进行监视或控制, 是嵌入式Linux开发环境中非常重要的一个组成部分。 在linux操作系统Xwindow界面下建立终端(在桌面上点击右键新建终端) ,在终端的命令行提示符后输入minicom回车,你就会看到minicom的启动画面(见图 2.7)。若没有启动Xwindow则在命令行提示符后直接输入minicom即可。 图 2.7 minicom 启动画面 minicom 启动后,先按 CtrlA 键,再按 Z 键(注意不是连续按,Ctrl+A 松开后才按 Z),进入主配置界面,见图 2.8。 按“O”进入配置界面, 按上下键选择 Serial port setup,进入端口设置 界面,如图 2.9。 选好后按ESC键退出到图2.10所示画面,选择Save setup as df1 保存退出, 以后只要启动minicom就是该配置,无需再做改动。 配置完成后,用串口线连接好pc机和2410经典版平台,启动2410经典版平台, 即可在minicom上看到启动信息,并可以执行操作控制。 沈阳化工大学学士学位论文 第二章 嵌入式开发平台简介及开发环境的建立 15 图 2.8 主配置界面 图 2.9 配置界面 图2.10 端口设置界 沈阳化工大学学士学位论文 第三章 Linux 在硬件平台上移植的实现 16 第三章 Linux 在硬件平台上移植的实现 3.13.1 建立交叉编译环境建立交叉编译环境 交叉编译是在一个平台上生成另一个平台上的可执行代码1213。在宿主机上 对即将运行在目标机上的应用程序进行编译,生成可在目标机上运行的代码格式。 交叉编译环境是由一个编译器、连接器和解释器组成的综合开发环境。交叉编译工 具主要包括针对目标系统的编译器gcc、二进制工具binutils、目标系统的标准c库 glibc和目标系统的Linux内核头文件。 建立交叉编译环境,需要将各种二进制工具程序集成为工具链,过程较为繁杂, 设计使用博创公司提供的交叉编译链工具来建立交叉编译环境: #cd /usr/local #mkdir arm #cdarlll #tarxfarlll一linux一tools一 3.4.2.tar./ 安装完成后,输出CROSSCOMPILE环境变量: #exportCROSS_COMPILE=arm一linux- 修改 /root/bash_Profile文件中PATH变量: #vi/rootrash_Profile 将PATH变量修改为: PATH=$PATH:/usr/local/arln/3.4.2 in/ 到此,这样交叉编译环境就构建完成了。 3.23.2 Boot1oaderBoot1oader 研究与移植研究与移植 .1 BootloaderBootloader 简介简介 BootLoader14就是在操作系统内核运行之前运行的一段小程序。通过这段小程 序,可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到 沈阳化工大学学士学位论文 第三章 Linux 在硬件平台上移植的实现 17 一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。从操作系统的 角度看,Bootloader总目标就是正确地调用内核来执行。 .2 BootloaderBootloader 的操作模式的操作模式 大多数Bootloader都包含两种不同的操作模式:“启动加载”模式和“下载”模 式,这两种模式的区别仅对于开发人员才有意义。从最终用户的角度看, Bootloader的作用是用来加载操作系统,并不存在所谓的启动加载模式与下载工作 模式的区别。 启动加载 (Bootloading)模式:这种模式也称为“自主”(Autonomous)模式。也 即Bootloader从目标机上的某个固态存储设备上将操作系统加载到RAM中运行,整个 过程并没有用户的介入。这种模式是Bootloader的正常工作模式,在嵌入式产品发 布的时候,Bootloader显然必须工作在这种模式下。 下载 (downloading)模式:在这种模式下,目标机上的Bootloader将通过串口连 接或网络连接等通信手段从主机下载文件。比如,下载内核映像和根文件系统映像 等。从主机下载的文件通常首先被Bootloader保存到目标机的RAM中,然后再 Bootloader写到目标机上的FLASH类固态存储设备中。Bootloader的这种模式通常在 第一次安装内核与根文件系统时被使用;此外,以后的系统更新也会使用 Bootloader的这种工作模式。工作于这种模式下的Bootloader通常都会向它的终端 用户提供一个简单的命令行接口。 最常见的情况是,目标机上的Bootloader通过串口与主机之间进行文件传输, 传输协议通常是 xmodem/ymodem/zmodem协议中的一种。但是,由于串口传输的速度 是有限的,因此通过以太网连接并借助TFTP协议来下载文件是个更好的选择。 .3 BootloaderBootloader 的启动过程的启动过程 从操作系统的角度看,Bootloader的总目标就是正确地调用内核来执行。 Bootloader的启动过程大多数分为阶段1和阶段2,如图3.1所示1516。 阶段1主要包含依赖于CPU体系结构的硬件初始化代码,而且通常都是用汇编语 言来实现的,以达到短小精悍的目的。这个阶段通常包括以下步骤: (l) 硬件设备初始化。这是Bootloader开始就执行的操作,其目的是为阶段2的 执行,以及随后内核的执行准备好基本的硬件环境。 沈阳化工大学学士学位论文 第三章 Linux 在硬件平台上移植的实现 18 (2) 为加载Bootloader的阶段2准备RAM空间。为了获得更快的执行速度,通常 把阶段2加载到RAM空间来执行。 (3) 拷贝Bootloader阶段2的代码到RAM空间中。 (4) 设置好堆栈。 (5) 跳转到阶段2的C程序入口点。 Bootloader的阶段2通常用C语言来实现,这样可以实现更复杂的功能,而且代 码会具有更好的可读性和可移植性。通常包括以下步骤: (l) 初始化本阶段要使用到的硬件设备。 (2) 检测系统内存映射。 (3) 将内核映像和根文件系统映像从Flash上读到RAM空间中。 (4) 为内核设置启动参数。 (5) 调用内核。 图3.1 Bootloader启动过程 系统复位转入 Bootloader 的 启动过程 stage1 入口点 硬件设备初始化化 为加载 Bootloader stage2 准备 RAM 空间 拷贝 Bootloader stage2 的代 码到 RAM 空间 设置好堆栈 跳转到 stage2 的 C 入口 初始化本阶段要使用 的硬件设备 检测内存映射 将 kernel 映像和根文 件系统映像从 flash 上读到 RAM 空间中 为内核设定启动参数 阅读内核 沈阳化工大学学士学位论文 第三章 Linux 在硬件平台上移植的实现 19 3.33.3 VIVIVIVI 的移植的移植 嵌入式Linux系统中常用的Bootloader有U- boot,armboot,redboot,blob,vivi等。vivi是韩国Mizi公司开发的 Bootloader,可用于ARM9处理器的引导,vivi利用串行通信为用户提供接口1718。 .1 VIVIVIVI 的目录结构的目录结构 Arch:arch子目录下包含的是各种嵌入式处理器的架构文件,以S3C2410为例:在 arch下有一个S3C24l0的子目录,目录下包含head.s,mmu.c等文件,这些文件都与 处理器有密切的关系,其中head.s完成vivi的Stage1步骤操作,mmu.c则是操作处理 器存储管理单元
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年石油化工企业原料采购合同
- 2025年度家具搬运与定制安装服务合同3篇
- 2024年版权许可动画制作合同:版权方与动画制作方之间的版权授权动画制作协议
- 2024年河流流域治理与保护合同
- 2024年版权交易与授权合同
- 2025年度智能制造生产线设计建造技术服务合同2篇
- 2024年版权保护与授权合同
- 2024年防腐工程协议协议样本版B版
- 2024年度政府项目保密协议书范本3篇
- 2024年翡翠路地铁站前路公共交通换乘优化合同3篇
- 苹果三星专利之争
- 下肢康复机器人课件
- 《Java程序设计应用开发》全套教学课件
- 必背知识点梳理-2024-2025学年人教版生物七年级上册
- 2024-2030年全球及中国数据科学平台行业市场现状供需分析及市场深度研究发展前景及规划可行性分析研究报告
- 2024-2030年中国非物质文化遗产行业市场深度分析及竞争格局与投资策略研究报告
- 2023-2024学年部编版道德与法治三年级上册期末检测题及答案(共3套)
- 2024年山东省青岛市中考语文试卷(含答案)
- 绩效考核管理办法(15篇)
- 格林巴利综合征的康复
- 中医烫熨疗法
评论
0/150
提交评论