毕业设计(论文)-基于ARM的智能手持设备.doc_第1页
毕业设计(论文)-基于ARM的智能手持设备.doc_第2页
毕业设计(论文)-基于ARM的智能手持设备.doc_第3页
毕业设计(论文)-基于ARM的智能手持设备.doc_第4页
毕业设计(论文)-基于ARM的智能手持设备.doc_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

辽宁科技大学毕业设计(论文) 第35页基于arm的智能手持设备摘要随着internet的发展和后pc时代的到来,电子产品的小型化、智能成为了发展趋势,而智能化必不可少的就是操作系统,因此嵌入式系统已成为计算机领域的一个重要组成部分,并成今年来新兴的研究热点。嵌入式系统的应用现在广泛应用在了高级引擎管理、保安系统、机顶盒、便携计算机和高档打印机等设备。本文通过对嵌入式智能手持设备操作系统的分析研究以及根据不同cpu对内核以及u-boot的修改,来对嵌入式系统进行研究。本文概括性的描述了嵌入式系统的概念、发展与特征,介绍了arms3c2440开发板的硬件核心arm920t嵌入式处理器。同时详细论述了了linux2.6.13内核的源文件结构、功能裁剪、配置文件的修改、内核交叉编译过程以及内核在基于s3c2440处理器开发板上进行移植的关键问题等。还有对引导装载程序u-boot的源文件对s3c2440的支持修改以及编译移植过程。关键词linux;交叉编译;移植;u-boot目录摘要i第1章 绪论11.1引言11.2国内外技术现状1第2章 嵌入式系统概述32.1什么是嵌入式系统32.1.1定义3嵌入式系统的概念与特点arm嵌入式的发展历史2.1.2嵌入式系统与通用计算机系统的区别32.1.3嵌入式系统结构和组成42.1.4嵌入式系统的开发过程52.3嵌入式linux系统概述72.3.1嵌入式linux的特点82.3.2主流嵌入式linux系统82.3.3嵌入式系统的发展趋势92 arm 嵌入式技术的应用嵌入式操作系统的应用现状基于arm嵌入式的开发应用3.arm 嵌入式技术的发展趋势第3章arm及qt2440e arm920t硬件平台103.1 arm处理器概述103.1.1 arm微处理器的应用领域103.1.2 arm微处理器的寄存器结构113.1.3 arm微处理器运行模式113.2 arm9处理器123.3 qt2440e arm920t开发板介绍12第4章linux内核分析144.1操作系统内核功能构成144.2 linux的运行状态154.2.1内核态154.2.2用户态154.2.3进程上下文和中断上下文154.3 linux内核的特点154.4内核源代码树的介绍16第5章嵌入式开发环境的搭建185.1交叉编译工具185.2配置uboot工作目录和环境变量185.3配置linux工作目录和环境变量195.4配置tftp工作目录和环境变量195.5 nfs 服务器的配置205.6 uboot烧写工具215.7串口通讯工具21第6章移植u-boot236.1在u-boot中建立自己的开发板类型,并测试编译236.1.1在工作目录下解压uboot236.1.2进入u-boot目录,修改makefile236.1.3在/board子目录中建立自己的开发板tekkaman2440目录246.1.4在include/configs/中建立配置头文件246.1.5测试编译能否成功256.2修改uboot中的文件,以同时匹配2440和2410256.2.1修改/cpu/arm920t/start.s256.2.2在board/tekkaman/tekkaman2440加入nand flash读函数文件266.2.3修改board/tekkaman/tekkaman2440/makefile文件266.2.4修改include/configs/tekkaman2440.h文件,添加如下内容266.2.5修改board/tekkaman/tekkaman2440/lowlevel_init.s文件266.2.6修改/board/tekkaman/tekkaman2440/tekkaman2440.c266.2.8在个文件中添加“config_s3c2440”266.3编译与烧写276.3.1编译276.3.2烧写27第7章移植linux内核287.1修改内核287.1.1修改顶层makefile287.1.2修改内核287.2修改mtd分区287.3移植yaffs文件系统297.4编译、烧写、启动内核297.4.1编译内核297.4.2烧写内核297.4.3启动内核29结论30致谢31参考文献32附录a33附录b36第1章 绪论1.1引言随着社会的日益信息化、嵌入式系统的应用越来越广泛和计算机技术的发展和微处理器工艺的改进,计算机和网络已经全面渗透到日常生活的每一个角落,任何人都可拥有从小到大的各种使用嵌入式技术的电子产品,嵌入式系统及其产品在由家电产品和internet衍生出来的新型市场中占有主导地位和独特份额。嵌入式系统表现出来了强劲的发展势头,目前各种各样的新型嵌入式系统设备在应用数量上已经远远超过了通用计算机。出于成本、体积、便携性、移动性考虑而不宜使用通用计算机的场合,都是嵌入式系统应用的领域。专家预计it业将进入一个崭新的、以嵌入式系统为核心的“后pc时代”(post-pc era)。从目前国内it市场来看,嵌入式系统的发展对于我们国家的民族it工业来讲,将有十分重要的战略意义。1.2国内外技术现状据idc发布的统计声明,未来的45年内,信息家电市场会增长510倍。这将带动嵌入式操作系统的发展。另据统计,现在嵌入式系统带来的工业年产值已经超过了一万亿美元,为此相关厂商纷纷将注意力集中到了嵌入式操作系统,如microsoft推出的windows ce.但windows ce并未像人们预期的那样得到用户的认可,原因之一是厂商和用户又多了一个选择,那就是嵌入式linux。现在从事基于linux平台的进行产品开发的公司已经取得了很大的进展例如:linux已经被移植到手提设备与掌上电脑。一些将linux移植到运行windows ce的设备。目前市场上较为流行的嵌入linux产品主要有rt-linux、uclinux、embedix、xlinux、poketlinux、红旗嵌入式linux、redhat linux等。目前,ntt docomo等知名的厂商进行了基于linux的嵌入式系统开发。中软实时嵌入式linux系统是在中软linux标准版系列产品的基础上,自主开发的适合各个行业应用的实时嵌入式系统平台。应用范围主要针对处理速度、内存和存储器容量等有特别要求的嵌入式设备。除此之外,国内许多其他公司也进行了基于linux的嵌入式操作系统开发工作,并且方向不一。第2章 嵌入式系统概述本章主要介绍嵌入式系统的基本概念、总体框架和基本组成,以及常见的嵌入式系统发行版本,为后面的应用和研究打下基础。2.1什么是嵌入式系统2.1.1定义根据ieee(国际电气和电子工程师协会)的定义,嵌入式系统是“控制、监视或者辅助设备、机器和车间运行的装置”(原文为devices used to control, monitor, or assist the operation of equipment, machinery or plants)。这主要是从应用上加以定义的,从中可以看出嵌入式系统是软件和硬件的综合体,涵盖机械等附属装置。不过,上述定义并不能充分体现嵌入式系统的精髓。目前国内一个普遍被认同的定义是:以应用为中心、以计算机技术为基础,软件硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。2.1.2嵌入式系统与通用计算机系统的区别1、专用的嵌入式cpu。嵌入式cpu与通用型的最大不同特点就是它具有低功耗、体积小、集成度高等特点,能够把通用cpu中许多板卡完成的任务集成在芯片内部。2、专用性和资源有限性。嵌入式系统总是被设计成某一特定任务,一旦设计完成就不再改变。嵌入式系统一般系统配置专一,结构紧凑,牢固可靠。3、系统对用户的透明性。用户在使用嵌入式设备时只是按照预定的方式使用它,既不需要用户编程,也不需要用户知道设备内计算机系统的设计细节,用户也不能够改变它。2.1.3嵌入式系统结构和组成一般而言,嵌入式系统的体系机构可以分成四个部分:嵌入式处理器、嵌入式外围设备,嵌入式操作系统和嵌入式应用软件1、嵌入式处理器嵌入式系统的核心是各种类型的嵌入式处理器,嵌入式处理器的体系结构经历了从cisc到risc和compact risc的转变,位数则由四位,八位,十六位,三十二位逐步发展到六十四位。2、嵌入式外围设备在嵌入式系统硬件系统中,除了处理器以外,用于完成存储、通信、调试、显示等辅助功能的外围部件,都算作嵌入式外围设备。目前常用的嵌入式外围设备按功能可以分为存储设备、通信设备和显示设备三类。存储设备主要用于各类数据的存储,常用的有静态易失性存储器(ram, sram)、动态存储器(dram)和非易失性存储器(rom、epron、eeprom、flash)三种;绝大多数常用的通信设备接口都可以直接在嵌入式系统中应用、包括rs232串行通讯接口、spi(串行外围设备接口)、irda(红外线接口)、usb(通用串行总线接口)、ethernet(以太网接口);嵌入式系统中的显示设备通常是阴极射线管(crt)、液晶显示器(lcd)和触摸板(touch panel)等。3、嵌入式操作系统为了使嵌入式系统的开发更加方便和快捷,需要有专门负责管理存储器分配、中断处理、任务调度等功能的软件模块,这就是嵌入式操作系统。嵌入式操作系统是用来支持嵌入式应用的系统软件,是嵌入式系统极为重要的组成部分,通常包括与硬件相关的底层驱动程序、系统内核、设备驱动接口、通讯协议、图形用户界面(gui)。它具有通用操作系统的基本特点。但在系统实时性、硬件依赖性、软件固化性以及应用专用性等方面,嵌入式操作系统具有更加鲜明的特点。根据应用场合,嵌入式操作系统可以分成两大类:一类是面向消费电子产品的非实时系统;另一类则是面向控制、通信、医疗等领域的实时操作系统。实时系统(real time system)是一种能够在指定或者确定时间内完成系统功能,并且对外部和内部事件在同步或者异步时间内能作出及时响应的系统。在实时系统中,操作的正确性不仅依赖于逻辑设计的正确程度,而且与这些操作进行的时间有关。4、嵌入式应用软件嵌入式应用软件是针对特定应用领域,基于某一硬件平台,用来达到用户预期目标的计算机软件。由于用户任务可能有时间和精度上的要求。嵌入式应用软件和普通应用软件有一定的区别,它不仅要求其准确性、安全性和稳定性等方面能够满足实际应用的需要,而且还要尽可能地进行优化。以减少对系统资源的消耗,降低硬件成本。2.1.4嵌入式系统的开发过程由于嵌入式系统是应用于特定环境下面对专业领域的应用系统,具有与通用计算机系统明显不同的特点,因此其开发过程和开发环境同传统的软件开发相比有着显著的不同。在硬件设计开发过程,首先根据模型确定硬件需要实现的功能,接着确定硬件的构成,并确定数据的控制流程,完成结构化设计,然后是硬件逻辑设计,最后是物理硬件实现,以开发板的形式出现。在软件设计过程中,首先分析系统需要实现的任务,根据任务划分使用的模块,在通用高级语言实现各个高层模块,并通过并通过交叉开发环境实现目标代码,完成系统测试。2.3嵌入式linux系统概述由于linux的可裁剪性,使得它正逐渐地应用于嵌入式设备。嵌入式linux一般由一个kernel(内核)及一些根据需要进行定制的系统模块组成。其kernel很小,一般只有1.7m左右(未裁剪编译过的)。即使加上其他必须的模块和应用程序,所需的存储空间也很小。它有多任务、多进程的系统特点,有些还具有实时性。一个小型的嵌入式linux系统只需要引导程序、linux微内核、初始化进程三个基本元素。运行嵌入式linux的cpu可以是arm、x86、alpha、sparc、mips等。嵌入式linux所需的存储器是rom、compactflash、msystmes的diskonchip等体积极小(于主板上的bios大小相近)存储容量不太大的存储器。2.3.1嵌入式linux的特点首先,linux是开放源代码的,在价格上极具竞争力,在技术上不存在黑箱,易于定制裁剪,遍布全球的众多linux爱好者又是linux开发的强大技术后盾;其次,linux的内核小、功能强大、运行稳定、系统健壮、效率高;第三,linux不仅支持x86 cpu,还可以支持arm、sparc、mips、ppc等其他数十种cpu芯片;第四,有大量的而且仍在不断增加的开发工具,这些工具为嵌入式系统的开发提供了良好的开发环境;第五,linux沿用了unix的发展方式,遵循国际标准,可以方便地获得众多第三方软硬件厂商的支持;最后,linux内核的结构在网络方面是非常完整的。它不仅可以充当嵌入式系统的开发平台,其本身也是嵌入式系统应用开发的好工具。随着技术的进步和需求的推动,基于linux的嵌入式系统得到了很大的发展。2.3.2主流嵌入式linux系统1、rt-linux 由美国墨西哥理工学院开发的嵌入式linux硬实时操作系统。 2、uclinux 它主要是针对目标处理器没有存储管理单元mmu(memory management unit) 的嵌入式系统而设计的。其运行稳定,具有良好的移植性和优秀的网络功能,针对各种文件系统有完备的支持,并提供标准丰富的api 3、embedix 提供了超过25种的linux系统服务,包括web服务器等。 此外还推出embedix的开发调试工具包、基于图形界面的浏览器等。embedix是一种完整的嵌入式linux解决方案。 4、xlinux 采用了超字元集专利技术,让linux核心不仅能与标准字符集相容,还含盖了1 2个国家和地区的字符集。因此,xlinux在推广linux的国际应用方面有独特的优势。 5、poketlinux 它可以提供跨操作系统并且构造统一的、标准化的和开放的信息通信基础结构,在此结构上实现端到端方案的完整平台。 6、红旗嵌入式linux 由北京中科院红旗软件公司推出的嵌入式linux,它是国内做得较好的一款嵌入式操作系统。2.3.3嵌入式系统的发展趋势以信息家电为代表的互联网时代嵌入式产品,不仅为嵌入式市场展现了美好前景,注入了新的生命;同时也对嵌入式系统技术,特别是软件技术提出新的挑战。这主要包括:支持日趋增长的功能密度、灵活的网络联接、轻便的移动应用和多媒体的信息处理。嵌入式应用软件的开发需要强大的开发工具和操作系统的支持。随着因特网技术的成熟、带宽的提高icp和asp在网上提供的信息内容日趋丰富、应用项目多种多样。为了满足应用功能的升级,设计师们一方面采用更强大的嵌入式处理器如32位、64位risc芯片或信号处理器dsp增强处理能力;同时还采用实时多任务编程技术和交叉开发工具技术来控制功能复杂性,简化应用程序设计、保障软件质量和缩短开发周期。1、强大的网络支持成为必然趋势。针对外部联网要求,嵌入设备必需配有通信接口,相应需要tcpip协议簇软件支持,同时也需要提供相应的通信组网协议软件和物理层驱动软件,以支持应用软件的特定编程模式。2、支持电子设备实现小尺寸、微功耗和低成本。为满足这种特性,要求嵌入式产品设计者相应降低处理器的性能,限制内存量和复用接口芯片。这就相应提高了对嵌入式软件设计技术要求。3、提供精巧的多媒体人机界面。第3章arm及qt2440e arm920t硬件平台嵌入式开发的主要工作之一是硬件的开发,而硬件开发更基础的工作是构建硬件开发平台,本课题使用的硬件平台是基于arm920t 嵌入式微处理器,以该处理器为核心而构建的开发板。下面作更为详细的说明。3.1 arm处理器概述arm是advanced risc machines的所写,由英国advanced risc machines limited公司设计。arm32 bit体系结构目前被公认是业界领先的32bit嵌入式risc微处理器结构,所有arm处理器共享这一体系结构。这可确保当开发者转向更高性能的arm处理器时,在软件开发上可获得最大的回报。arm芯片具有risc系统的一般特点,如具有大量的寄存器。绝大多数都在寄存器中进行,通过load/store的体系结构在内存和寄存器之间传递数据;寻址方式简单;采用固定长度的指令格式。除此之外,arm系统采用了一些特别的技术,在保证高性能的同时尽量减小芯片体积,降低芯片的功耗。3.1.1 arm微处理器的应用领域1、工业领域:作为三十二位的risc架构,arm微控制器的低功耗、高性价比,向传统的8bit/16bit微控制器提出了挑战。2、无线通讯领域:目前已经有超过百分之八十五的无线通讯设备采用了arm技术。3、网络应用:随着宽带技术的推广,采用arm技术的adsl芯片正逐步获得竞争优势。此外,arm在语音及视频处理上进行了优化,并获得广泛支持,也对dsp的应用领域提出了挑战。4、消费类电子产品:arm技术在目前流行的数字音频播放器、数字机顶盒和游戏机中得到广泛采用。5、成像和安全产品:现在流行的数码相机和打印机中绝大部分采用arm技术。6、除此之外,arm微处理器及技术还应用到许多不同的领域,并会在将来取得更广泛的应用。3.1.2 arm微处理器的寄存器结构arm处理器共有37个32位寄存器,这些寄存器分为两类:31个通用寄存器和6个状态寄存器。通用寄存器包括r0r15,可以分为三类:为分组寄存器r0r7、分组寄存器r8r14和程序寄存器pc(r15)。r0r7:与所有处理器模式无关的寄存器,可以用作任何用途。r8r14:与处理器模式有关的寄存器,在不同的模式下,对应不同的物理寄存器。r13又叫sp,一般用于堆栈指针。r14又叫做lr,一般用于保存返回地址。r15又叫做程序计数器,即pc程序状态寄存器包括cpsr、spsr_svc、spsr_abt、spsr_und、spsr_irq、spsr_fiq。这六个状态寄存器目前只用了每个其中的12位。cpsr:当前程序状态寄存器spsr:保存的程序状态寄存器3.1.3 arm微处理器运行模式1、arm微处理器支持7种运行模式,分别为:2、用户(usr):处理器正常工作状态3、快速中断(fiq):用于高速数据传输或通道处理4、外部中断(irq):用于通用的中断处理5、超级用户(svc):操作系统使用的保护模式6、数据访问中止(abt):用于虚拟存储及存储保护未定义指令中止(und):未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真7、系统模式(sys):运行具有特权的操作系统任务arm微处理器的运行模式可以通过软件改变,也可以通过外部中断或异常处理改变。大多数的应用程序运行在用户模式下,当处理器运行在用户模式下时,某些被保护的系统资源是不能被访问的。除用户模式以为,其余的所有6种模式称之为非用户模式,或特权模式(privileged modes);其中出去用户和系统模式以外的5种又成为异常模式(exception modes),常用于处理中断或异常,以及需要访问受保护的系统资源等情况。3.2 arm9处理器arm9系列有arm9tdmi、arm920t和带有高速缓冲器宏单元的arm940t。全部的arm9系列处理器均具有thumb压缩指令和基于embeddedice的调试方式。arm9兼容arm7系列,而且比arm7进行更加灵活的设计。arm9系列处理器在高性能和低功耗特性方面提供最佳的性能。 arm9微处理器的特点:1、5级整数流水线,指令执行效率更高。2、基于嵌入式ice jtag的软件调试方式,调试开发方便。3、提供1.1mipsmhz的哈佛结构。4、支持32位arm指令集和16位thumb指令集。5、支持32位的高速amba总线接口。6、全性能的mmu,支持windows ce、linux、palm os等多种主流嵌入式操作系统。7、mpu支持实时操作系统。3.3 qt2440e arm920t开发板介绍qt2440e开发板是在qt2440开发板基础上进行裁剪得到的。采用了核心板+底板的形式。适合于快速产品的开发。这款开发板底板我们提供了protel99se的工程文件,包含sch和pcb文件。用户开发产品时,只需要对底板进行修改就可以完成新的产品设计。已经有多个用户将qt2440e的核心板用于最终产品。qt2440e开发板能够运行windows ce和linux两种操作系统。1、核心板部分处理器:s3c2440a-40 400mhz主频,arm 920t内核flash:512m bit nand flash,8bit宽度ram:512m bit sdram,133mhz,32bit宽度(两片组成)网络:10mbps低功耗嵌入式专用以太网网络芯片cs8900a-cq3。音频:uda1341ts,立体声音频输入输出接口。rtc时钟:s3c2440a内部集成,外部提供rtc电池,插座安装,可更换。2、底板部分电源:7-24v宽电压输入,lt1765高效dc/dc降压,标配12v电源串口:3路串口,1路带握手信号,可接调制解调器或者gprs。液晶接口:支持cstn,tft等多种lcd摄像头接口:预留30pin插座,方便用户连接数字摄像头usb host:2个usb host接口,usb full speed。可外接hub扩展。usb device:1路usb device接口,usb full speedsd卡接口:支持sd/mmc和sdio设备jtag接口:arm标准20芯jtag接口第4章linux内核分析4.1操作系统内核功能构成1、进程管理进程(process)可以定义为“执行程序的一个实力”。系统中可以同时运行多个进程。内核负责进程的创建、销毁,进程调度,进程间通信等。内核本身不是一个进程,而是进程的管理者。2、内存管理管理进程地址空间。每个进程都运行在它的私有地址空间。在用户态运行的进程涉及到私有栈、数据区和代码区。当在内核态运行时,进程访问内核的数据区和代码区,但使用内核栈。3、提供文件系统支持unix中所有东西几乎都可以当作文件看待。文件类型有:(1)普通文件(2)目录(3)符号链接(硬链接是目录中的文件名,而符号(软)链接是一个短文件)(4)面向块的设备文件(5)面向字符的设备文件(6)管道和命名管道(fifo)(7)套接字(socket)4、设备控制通过各类型的驱动程序来完成5、中断和异常相应内核还要负责相应外部设备的中断请求,以及进程产生的异常6、网络功能4.2 linux的运行状态硬件进程需要与硬件交互,一些操作系统允许所有的用户程序都直接与硬件部分交互(如msdos)。 相反,类unix操作系统把与物理硬件相关的访问都对用户程序隐藏起来,当用户想使用硬件资源时,需要向内核发出请求,内核代表应用程序与相关的硬件进行交互。为了实现这种机制,现代操作系统通过特殊的硬件特性禁止用户程序直接与底层硬件交互,或者禁止直接访问任何的物理地址。4.2.1内核态内核在此时运行,拥有受保护的内存空间和访问硬件的所有权限。4.2.2用户态用户应用程序在此时运行,它们只能看到允许它们使用部分的系统资源,不能直接访问硬件,还有一些其他限制。硬件处理器常常提供多种状态,比如x86有4种,arm有7种,但所有标准的unix内核只用了内核态和用户态。4.2.3进程上下文和中断上下文cpu在任意时间只可能运行在下面三种情况:1、运行于内核空间,处于进程上下文,代表某个特定的进程执行2、运行于内核空间,处于中断上下文,与任何进程无关,处理某个特定的中断3、运行于用户空间,执行用户进程4.3 linux内核的特点linux内核属于单内核,以单个静态二进制文件的形式存放于磁盘。运行在单独的内核地址空间。并具有以下特点:1、模块化设计2、抢占式内核(可满足较高的实时要求)3、支持内核线程4、支持对称多处理机制(smp)5、可动态装载和卸载内核模块4.4内核源代码树的介绍1、/arch包含和硬件体系结构相关的代码,每种平台占一个相应的目录。和32位pc相关的代码存放在i386目录下,其中比较重要的包括:kernel(内核核心部分)mm(内存管理)math-emu(浮点单元仿真)lib(硬件相关工具函数)boot(引导程序)pci(pci总线)power(cpu相关状态)2、/crypto常用加密和散列算法(如aes、sha等),还有一些压缩和crc校验算法3、/documentation关于内核各部分的通用解释和说明。参见00-index,kernel-docs.txt以及/kbuild下的内容4、/drivers设备驱动程序,每个不同的驱动占用一个子目录5、/fs各种支持的文件系统,如ext、fat等6、/include头文件。其中和系统相关的头文件被放置在linux子目录下7、/init内核初始化代码(注意不是系统引导代码)8、/ipc进程间通信的代码9、/kernel内核的最核心部分,包括进程调度、定时器等,和平台相关的一部分代码放在arc/*/kernel目录下10、/lib库文件代码11、/mm内存管理代码,和平台相关的一部分代码放在arch/*/mm目录下12、/net网络相关代码,实现了各种常见的网络协议13、/scripts编译内核所用的脚本14、/security主要是一个selinux的模块15、/sound常用音频设备的驱动程序等16、/usr早期用户空间代码(所谓的initramsf)在i386体系下,系统引导将从arch/i386/kernel/head.s开始执行,并进而转移到init/main.c中的main()函数初始化内核。第5章嵌入式开发环境的搭建在pc上安装redhat linux,选择完全安装,将安装完光盘的全部软件,需要磁盘空间大约5gb。在安装完redhat后还要安装armlinux的交叉编译器和开发库以及armlinux的所有源代码。考虑到不同的软件部分对编译器兼容性的要求,需要创建多个用户来编译嵌入式系统的不同部分,这样做的主要目的就是防止编译器冲突。然后配置网络,包括配置ip地址、nfs服务器和tftp服务器。网络配置主要是要安装好以太网卡。然后配置宿主机ip为23。还要安装合适bootloader烧写工具,配置串口工具minicom 。5.1交叉编译工具要在linux中开发可以再arm平台上运行的程序,首先要获得针对arm 处理器的交叉编译工具。开发板的配套光盘中提供了3个版本的交叉编译工具:arm-linux-gcc2.95.3 、arm-linux-gcc3.3.21、创建 /usr/local/arm 目录rootfree-sky mkdir /usr/local/arm2、拷贝arm-linux-gcc 到 /usr/local/arm 目录下。rootfree-sky cp r arm-linux-gcc-* /usr/local/arm5.2配置uboot工作目录和环境变量在uboot工作目录下,将完成uboot的移植工作1、添加uboot用户rootfree-sky useradd g root g root d /home/uboot uboot rootfree-sky passwd uboot 2、添加工作目录rootfree-sky mkdir doc myboot uboot utools 3、建立环境变量在用户目录下的.bashrc文件中添加一行export path=$path:/usr/local/arm/295.3/bin5.3配置linux工作目录和环境变量在arm工作目录下,完成linux内核的移植工作,并完成文件系统的构建1、添加arm用户rootfree-sky useradd g root g root d /home/arm arm rootfree-sky passwd arm 2、添加工作目录rootfree-sky mkdir doc kernel rootfs atools3、建立环境变量rootfree-sky vi /.bashrc export path=/usr/local/arm/3.4.4/bin:$path5.4配置tftp工作目录和环境变量1、从rpm包安装tftp-servertftp server的安装包为:tftp-server-0.32-4.i386.rpm,将其拷贝到uboot/utools用下面命令安装rootfree-sky # rpm ivh tftp-server-0.32-4.i386.rpm 2、 建立tftp 的主工作目录rootfree-sky # mkdir /home/uboot/utools/tftpboot 3、修改配置文件并启动服务rootfree-sky # vi /etc/xinetd.d/tftp service tftp disable = no/原来是yes 将其改成no socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /tftpboot per_source = 11 cps = 100 2 flags = ipv4 4、用下面的命令打开tftp服务开关rootfree-sky # chkconfig tftp on 5、重启服务:rootfree-sky # /etc/init.d/xinetd restart 停止 xinetd: 确定 启动 xinetd: 确定 6、检查tftp服务是否启动rootfree-sky # netstat -a | grep tftp udp 0 0 *:tftp *:* 5.5 nfs 服务器的配置1、安装nfs 服务器rootfree-sky #rpm ivh nfs-utils-1.0.8.tc2-4.fc5.2.i386.rpm 2、配置nfs服务器rootfree-sky # vi /etc/exports 加入如下内容:/tftpboot *(rw,sync,no_root_squash) 3、启动nfs服务器使用如下命令启动rootfree-sky # /etc/init.d/nfs start 启动 nfs 服务: 确定 关掉 nfs 配额: 确定 启动 nfs 守护进程: 确定 启动 nfs mountd: 确定 4、测试nfs服务器rootfree-sky # netstat -a | grep nfs tcp 0 0 *:nfs *:* listenudp 0 0 *:nfs *:* 5、显示被exports 出的目录rootfree-sky # exportfs /tftpboot 5.6 uboot烧写工具当刚拿到开发板的时候,flash中是什么也没有的,此时,需要一个软件把制作好的uboot.bin 程序烧写到flash中,这种软件一般称为flash烧写软件,大多数想好些软件都是通过jtag接口向flash芯片传输信息的。5.7串口通讯工具有了uboot 后,就可以借助它向开发板下载linux内核和文件系统了。uboot和pc之间的通讯时通过串口开完成的。在linux下的串口通讯工具是minicom1、串口设备在使用minicom之前,首先要确定串口的设备文件。如果是普通串口设备,设备名前缀是ttys,第一个串口为ttys0,第二个串口位ttys1,以此类推。2、配置minicom -s 出现如下configuration窗口:图5.1configuration窗口选择serial port setup配置并修改其中内容,修改结果如下图所示:图5.2修改结果窗口然后,回到第一个窗口,按save setup as dfl 保存设置。再按exit from minic退出 minicom.3、启动minicom执行如下命令minicom第6章移植u-bootu-boot,全称universal boot loader,即通用bootloader,是遵循gpl条款的开放源代码项目。其前身是由德国denx软件工程中心的wolfgang denk基于8xxrom的源码创建的ppcboot工程。后来整理代码结构使得非常容易增加其他类型的开发板、其他架构的cpu(原来只支持powerpc);增加更多的功能,比如启动linux、下载s-record格式文件、通过网络启动、通过pcmica/compactflash/ata disk/scsi等方式启动。增加arm架构cpu及其他更多cpu的支持后,改名u-boot。6.1在u-boot中建立自己的开发板类型,并测试编译我为开发板取名叫: tekkaman24406.1.1在工作目录下解压uboottekkamanninjaarm9-host working$ tar -xjvf u-boot-1.3.1.tar.bz26.1.2进入u-boot目录,修改makefiletekkamanninjaarm9-host working$ cd u-boot-1.3.1tekkamanninjaarm9-host u-boot-1.3.1$ kwrite makefile#为tekkaman2440建立编译项sbc2410x_config: unconfig$(mkconfig) $(:_config=) arm arm920t sbc2410x null s3c24x0tekkaman2440_config : unconfig$(mkconfig) $(:_config=) arm arm920t tekkaman2440 tekkaman s3c24x0各项的意思如下:arm: cpu的架构(arch)arm920t: cpu的类型(cpu),其对应于cpu/arm920t子目录。tekkaman2440: 开发板的型号(board),对应于board/tekkaman/tekkaman2440目录。tekkaman: 开发者/或经销商(vender)。s3c24x0: 片上系统(soc)。同时在“ifndef cross_compile ”之前加上自己交叉编译器的路径,比如我使用crosstool-0.43制作的基于2.6.24内核和gcc-4.1.1-glibc-2.3.2的arm9tdmi交叉编译器,则:cross_compile=/home/tekkamanninja/working/gcc4.1.1/gcc-4.1.1-glibc-2.3.2/arm-9tdmi-linux-gnu/bin/arm-9tdmi-linux-gnu-6.1.3在/board子目录中建立自己的开发板tekkaman2440目录由于我在上一步板子的开发者/或经销商(vender)中填了 tekkaman ,所以开发板tekkaman2440目录一定要建在/board子目录中的tekkaman目录下 ,否则编译会出错。tekkamanninjaarm9-host u-boot-1.3.1$ cd boardtekkamanninjaarm9-host board$ mkdir tekkaman tekkaman/tekkaman2440tekkamanninjaarm9-host board$ cp -arf sbc2410x/* tekkaman/tekkaman2440/tekkamanninjaarm9-host board$ cd tekkaman/tekkaman2440/tekkamanninjaarm9-host tekkaman2440$ mv sbc2410x.c tekkaman2440.c还要记得修改自己的开发板tekkaman2440目录下的makefile文件,不然编译时会出错:tekkamanninjaarm9-host tekkaman2440$ kwrite makefilecobjs

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论