基于嵌入式开发毕业论文_第1页
基于嵌入式开发毕业论文_第2页
基于嵌入式开发毕业论文_第3页
基于嵌入式开发毕业论文_第4页
基于嵌入式开发毕业论文_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

长春职业技术学院毕业论文(设计)专用纸 毕业论文题目 基于嵌入式开发 学生姓名 张帆 学号 10011422 班 级 十四班 专 业 嵌入式系统工程 分 院 信息技术分院 指导教师 于薇 2013年 4 月 长春职业技术学院毕业论文(设计)专用纸 摘 要 随着电子技术飞速发展和我国传统产业结构升级的加速人们对设备越来越高用需求已无法满足当前和未来高性能的应用与发展需求。同时激烈的市场竞争和技术竞争要求产品的开发周期越来越短显然嵌入式系统的软、硬件技术和开发手段正日益受到重视成为各领域技术创新的重要基础。嵌入式系统是将先进的计算机技术、半导体技术和电子技术和各个行业的具体应用相结合后的产物这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。嵌入式是以应用为中心以计算机技术为基础软硬件可裁剪适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。由于嵌入式系统通常具有低功耗、体积小、集成度高等特点因此随着消费家电的智能化和廉价微处理器的出现嵌入式系统将在日常生活里形成更大的应用领域。嵌入式就业广泛嵌入式人才社会需求量大。论文内容条理清楚本着嵌入式控制系统的概况开发应用的撰写思路分三章逐步展开。第一章概况详细地介绍了嵌式控制系统的定义、框架、特点、发展历程、现状、前景第二章嵌入式控制系统的开发主要论述了开发的步骤与方法第三章嵌入式控制系统的应用结合实例论述了嵌入式控制系统的实际应用服务大众生活。作为这些研究成果的应用本文在最后总结系统的各方面能力和分析存在的问题为进一步的研究提供了方向和宝贵的经验。关键词电子技术 嵌入式 系统 控制 计算机 集成系统AbstractWith the ARM chip, as well as the emergence of LINUX operating system for embedded development into a strong vitality. LINUX Operating System Design and Implementation of the ARM9 platform to transplantation. U-boot the system boot process, it is necessary to transplant LIUNX operating system, U-boot is a must. LINUX operating system after a successful transplant, the system still does not start, but also the need for root file system (rootfs) support, so the system can be a normal start. However, for embedded systems is often the function of specific design, so, the system in order to complete certain functions, but also the need for top-level application support. Real-time calendar and the clock shows the design in hardware and software design of hardware that is synchronized. the led display at89s52 monolithic integrated circuits, and when should the electrical circuits, the system through the led display data so be humanized operate and intuitive that effect. including the software application programs, the keyboard, the program, etc. This system to monolithic integrated circuits of the assembly language for easily developing software design, and changes, software design to use modular design, the programming logical relationship with more and more so as to realize the time and date display the functions. all procedures in writing after wave of debugging the software and make no question of the proteus software embedded monolithic integrated circuits. Key Words:AT89S52; DS1302; LED目 录第一章 绪 论4一、嵌入式系统4二、选题目的及意义4三、嵌入式系统高级编程语言4四、解决的关键问题5第2章ARM处理器结构和ARM指令集5一、寄存器和处理器模式5二、寄存器和处理器模式9ARM处理器结构9第三章 嵌入式Linux编程环境10一、Linux编译器vi的使用10二、gcc 编译器12三、Make 工程管理器12总 结13参考文献14长春职业技术学院第一章 绪 论一、嵌入式系统 计算机系统可以处理并管理各种数据,这里所说的数据包括文字、数字、图片以及各种指令。人们希望制造各种智能机器,这些机器需要一套“大脑”系统,对其中一些很小的机器,需要给他们设计一套小小的可以嵌在里面的“大脑”系统,这个“大脑”有多聪明,就要看它的软件了。这一类隐藏在一些更大的系统中管理和控制这些系统并带有微处理器的专用软件硬件系统称为嵌入式计算机系统,通常为嵌入式系统。由于嵌入式体统本身是一个外延极广的名词,凡是与产品结合在一起的具有嵌入式特点的控制系统都可以叫做嵌入式系统,所以很难给它下一个准确的定义。 总体上,嵌入式系统可分划成硬件和软件两部分,硬件一般由高性能的微处理器和外围的接口电路组成,软件一般由硬件抽象层,操作系统,板级支持包,应用平台和应用程序几部分组成。二、选题目的及意义嵌入式系统技术已经广泛地应用于工业控制系统,信息家电,通信设备,医疗仪器,智能仪器仪表等众多领域,如手机,ADA,MP3,手持设备,智能电话,机顶盒等,可以说嵌入式系统无处不在。市场对嵌入式系统的需求在飞速增长,企业在努力使用开发嵌入式系统的速度跟上市场与竞争的需要。但是,与此同时,嵌入式系统开发的基础离乱与方法的研究却严重滞后,这与其纳入市系统的特点有关。三、嵌入式系统高级编程语言Ada语言是20世纪70年代美国国防部开发并投入使用的功能强大的通用系统开发语言,最初为Ada83。它支持模块化、独立编译、协处理等功能。其可靠性、可维护性、可读性都是相当好的。后来,为了更好地支持OOP(Object-Oriented Programming),对其进行了改进,形成了目前广泛使用的Ada95。使用Ada语言可以大大改善系统的清晰性、可靠性、可维护性等性能指标2,3。它是美国国防部指定的唯一一种可用于军用系统开发的语言。C语言是由Dennis Richie于1972年在AT&Bell实验室研究成功并投入使用的系统编程语言。其设计目标是使C既具有汇编语言的效率,又具有高级语言的易编程性。其最具代表性的应用是UNIX操作系统。从20世纪80年代中期C语言涉足实时系统后,受到了普遍欢迎。目前是使用最广泛的嵌入式系统编程语言。C+是由Bjarne Stroustrup 于1995年在Bell实验室研制成功并投入使用的。C+在支持现代软件工程、OOP、结构化等方面对C进行了卓有成效的改进,但在程序代码容量、执行速度、程序复杂程度等方面比C语言程序性能差一些。Modula-2是由Nicklans Wirth在70年代后期根据Pascal 和Modula开发的系统设计语言。其主要目标是在模块化、系统编程、协同处理等方面对Pascal 进行改进。Modula-2具有很强的类型检查能力和丰富的低级功能支持。因此,可用它设计一个完整的实时程序而不用汇编语言的支持。Modula-3是1988年由DEC(Digital Equipment Company)和ORC(Olivetti Research Center)根据Modula-2开发研制并投入使用的系统开发语言。目标是设计一个功能强大但结构简单的通用编程语言。它在协同处理、OOP、自动垃圾收集以及对C语言和UNIX的支持等方面对Modula-2进行了改进Java是网络语言,而嵌入式系统则在功能、价格、体积、功耗、上市时间等方面有特殊要求。因此Java语言受速度和代码容量的限制,本身并不适合于嵌入式系统的应用。但Sun公司并不愿意放弃这个发展潜力巨大的应用市场,对Java进行改进后发表了J2ME(Java2 Micro Edition)。它是Java API的一个子集,只包含了Java的关键特性,是专门针对对内存具有苛刻要求的嵌入式系统而设计的。J2ME粗略地将应用对象划分为两大类:内存在128KB512KB之间的设备和内存大于512KB的设备,根据不同的类别提供不同的用户接口和软件包。 四、解决的关键问题需解决的关键问题有:1、硬件各个模块的测试2、软件的设计与调试第2章ARM处理器结构和ARM指令集一、寄存器和处理器模式1.ARM 有7个基本工作模式:User:非特权模式,大部分任务执行在这种模式。限制你的内存访问并且你不能直接读取硬件设备正常程序执行的模式FIQ:当一个高优先级(fast)中断产生时将会进入这种模式高速数据传输和通道处理IRQ:当一个低优先级(normal)中断产生时将会进入这种模式通常的中断处理Supervisor:当复位或软中断指令执行时将会进入这种模式供操作系统使用的一种保护模式Abort: 当存取异常时将会进入这种模式虚拟存储及存储保护Undef: 当执行未定义指令时会进入这种模式软件仿真硬件协处理器System: 使用和User模式相同寄存器集的特权模式特权级的操作系统任务2.寄存器组在26位体系下,ARM 处理器有二十七个寄存器,其中一些是在一定条件下使用的,所以一次只能使用十六个。 寄存器 0 到寄存器 7 是通用寄存器并可以用做任何目的。不象 80x86 处理器那样要求特定寄存器被用做栈访问,或者象 6502 那样把数学计算的结果放置到一个累加器中,ARM 处理器在寄存器使用上是高度灵活的。 寄存器 8 到 12 是通用寄存器,但是在切换到 FIQ 模式的时候,使用它们的影子(shadow)寄存器。 寄存器 13 典型的用做 OS 栈指针,但可被用做一个通用寄存器。这是一个操作系统问题,不是一个处理器问题,所以如果你不使用栈,只要你以后恢复它,你可以在你的代码中自由的占用(corrupt)它。每个处理器模式都有这个寄存器的影子寄存器。 寄存器 14 专职持有返回点的地址以便于写子例程。当你执行带连接的分支的时候,把返回地址存储到 R14 中。同样在程序第一次运行的时候,把退出地址保存在 R14 中。R14 的所有实例必须被保存到其他寄存器中(不是实际上有效)或一个栈中。这个寄存器在各个处理器模式下都有影子寄存器。一旦已经保存了连接地址,这个寄存器就可以用做通用寄存器了。 寄存器 15 是程序计数器。它除了持有指示程序当前使用的地址的二十六位数之外,还持有处理器的状态。 为更清晰一些, 提供下列图表: User 模式 SVC 模式 IRQ 模式 FIQ 模式 APCSR0 - R0 - R0 - R0 a1R1 - R1 - R1 - R1 a2R2 - R2 - R2 - R2 a3R3 - R3 - R3 - R3 a4R4 - R4 - R4 - R4 v1R5 - R5 - R5 - R5 v2R6 - R6 - R6 - R6 v3R7 - R7 - R7 - R7 v4R8 - R8 - R8 R8_fiq v5R9 - R9 - R9 R9_fiq v6R10 - R10 - R10 R10_fiq slR11 - R11 - R11 R11_fiq fpR12 - R12 - R12 R12_fiq ipR13 R13_svc R13_irq R13_fiq spR14 R14_svc R14_irq R14_fiq lr- R15 / PC - pc最右侧的列是 APCS 代码使用的名字。APCS,ARM 过程调用标准(ARM Procedure Call Standard),提供了紧凑的编写例程的一种机制,定义的例程可以与其他例程交织在一起。最显著的一点是对这些例程来自哪里没有明确的限制。它们可以编译自 C、 Pascal、也可以是用汇编语言写成的。 APCS 定义了: 对寄存器使用的限制。 使用栈的惯例。 在函数调用之间传递/返回参数。 可以被回溯的基于栈的结构的格式,用来提供从失败点到程序入口的函数(和给予的参数)的列表。程序计数器构造如下图2-2: 2731N Z C V Q2867I F T mode1623 815 54024fsxc U n d e f i n e dJ图2-2 程序计数器构造n 条件位:n N = 1-结果为负,0-结果为正或0n Z = 1-结果为0,0-结果不为0n C =1-进位,0-借位n V =1-结果溢出,0结果没溢出n Q 位:n 仅ARM 5TE/J架构支持n 指示增强型DSP指令是否溢出n J 位n 仅ARM 5TE/J架构支持n J = 1: 处理器处于Jazelle状态n 中断禁止位:n I = 1: 禁止 IRQ.n F = 1: 禁止 FIQ.n T Bitn 仅ARM xT架构支持n T = 0: 处理器处于 ARM 状态n T = 1: 处理器处于 Thumb 状态n Mode位(处理器模式位):n 0b10000Usern 0b10001FIQn 0b10010IRQn 0b10011Supervisorn 0b10111Abortn 0b11011Undefinedn 0b11111Systemn 当处理器执行在ARM状态:n 所有指令 32 bits 宽n 所有指令必须 word 对齐n 所以 pc值由bits 31:2决定, bits 1:0 未定义 (所以指令不能halfword / byte对齐).n 当处理器执行在Thumb状态:n 所有指令 16 bits 宽n 所有指令必须 halfword 对齐n 所以 pc值由bits 31:1决定, bits 0 未定义 (所以指令不能 byte对齐).n 当处理器执行在Jazelle状态:n 所有指令 8 bits 宽n 处理器执行 word 存取一次取4条指令二、寄存器和处理器模式ARM处理器结构ARM处理器的框架如图2-1所示:乘法器指令解码地址自增器nRESETnMREQSEQABORTnIRQnFIQnRWMAS1:0LOCKnCPICPACPBnWAITMCLKnOPCBIGENDISYNCnTRANSnM4:0桶形移位器32 位 ALU写数据 寄存器读数据 寄存器地址寄存器寄存器A31:0ABE及控制 逻辑PC Update解码站指令 解码IncrementerPCABusBBus第三章 嵌入式Linux编程环境一、Linux编译器vi的使用1.vi的模式 vi有三种模式,分别为命令行模式,插入模式及底行模式,下面具体进行介绍各模式的功能。(1)命令行模式。用户在用vi编辑文件时,最初进入的为一般模式。在该模式中可以通过上下移动光标进行“删除字符”或“整行删除”等操作,也可以进行“复制”,“粘贴”等操作,但无法编辑文字。(2)插入模式。只有在该模式下,用户才能进行文字编辑输入,用户可按Exs 键回到命令行模式。(3)底行模式。在该模式下,光标位于屏幕的底行。用户可以进行文件保存或退出操作,也可以设置编辑环境,如寻找字符串,列出行号等。2.vi的基本流程(1)进入vi,即在命令行下输入vi hello。此时进入的是命令行模式,光标位于屏幕的上方。(2)在命令行模式下输入i进入到插入模式,如下图,可以看出,在屏幕底部显示有“插入”表示插入模式,在该模式下可以输入文字信息。(3)最后,在插入模式中,输入Esc,则当前模式转入命令模式,并在底行中输入“:wq”(存盘退出)进行底行模式,如下图所示。二、gcc 编译器(1)预处理在该阶段,编译器将上述代码中的stdio.h编译进来,并且用户可以使用gcc的选项“-E”进行查看,该选项的作用是让gcc在预处理结束后停止编译过程。(2)编译gcc 把代码编译成汇编语言。(3)汇编汇编阶段是把编译阶段生成“.s”文件转成目标文件,读者在此可使用选项“-c”就可看到汇编代码已转化为“.o”的二进制目标代码了,语句如下。rootlocalhost Gcc# gcc c hello.s o hello.o(4)链接成功编译之后,就进入了链接阶段。在这里涉及一个重要的概念-函数库。三、Make 工程管理器1. Makefile介绍make命令执行时,需要一个 Makefile 文件,以告诉make命令需要怎么样的去编译和链接程序。 首先,我们用一个示例来说明Makefile的书写规则。以便给大家一个感兴认识。这个示例来源于GNU的make使用手册,在这个示例中,我们的工程有8个C文件,和3个头文件,我们要写一个Makefile来告诉make命令如何编译和链接这几个文件。我们的规则是:(1). 如果这个工程没有编译过,那么我们的所有C文件都要编译并被链接。(2). 如果这个工程的某几个C文件被修改,那么我们只编译被修改的C文件,并链接目标程序。(3). 如果这个工程的头文件被改变了,那么我们需要编译引用了这几个头文件的C文件,并链接目标程序。2 Makefile 基本结构(1)需要由make 工具创建的目标体,通常是目标文件或可执行文件。(2)要创建的目标体所依赖额文件。(3)创建每个目标时需要运行的命令。3.Makefile变量M akefile 往往是包含很多的文件和命令,这也是Makefile产生的原因。下面就可给出稍复杂一些的Makefile 进行讲解。在上面的例子中,先让我们看看edit的规则:edit : main.o kbd.o command.o display.o insert.o search.o files.o utils.occ -o edit main.o kbd.o command.o display.o insert.o search.o files.o utils.o我们可以看到.o文件的字符串被重复了两次,如果我们的工程需要加入一个新的.o文件,那么我们需要在两个地方加(应该是三个地方,还有一个地方在clean中)。当然,我们的makefile并不复杂,所以在两个地方加也不累,但如果makefile变得复杂,那么我们就有可能会忘掉一个需要加入的地方,而导致编译失败。所以,为了makefile的易维护,在makefile中我们可以使用变量。makefile的变量也就是一个字符串,理解成C语言中的宏可能会更好。总 结着Internet/Intranet等技术的迅速发展和广泛应用,很多企业都构建了自己的局域网,他们能通过网络迅速地发布和传达信息,也能通过网络迅速地搜寻和获取信息。网络改变了我们的日常生活,同时也给企业管理带来深刻的变革,建立基于Web的招聘管理系统正是顺应时代发展的需要。嵌入式系统是一个很有发展空间的领域,以嵌入式系统为标志的后PC时代已经到来。但嵌入式系统是一个软硬件结合很紧密的课题,特别是涉及到bios开发、bootloader开发方面,则要求你对硬件要有一个较深的了解。所以学习嵌入式需要掌握了解很多知识,所以学习顺序一定不能乱,在了解嵌入式系统开发的体系结构后,一步一步的下手。搭建开发环境需要:硬件平台, 编译器, 调试器, RTOS, C/C+库, 协议栈等。建议有志于想把嵌入式学好者最好先分析一种R

温馨提示

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

评论

0/150

提交评论