版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、嵌入式开发报告学院:姓名:摘要随着电子技术飞速发展和我国传统产业结构升级的加速人们对设备越来越高用需求已无法满足当前和未来高性能的应用与发展需求。 同时激烈的市场竞争和技术竞争要求产品的开发周期越来越短显然嵌入式系统的软、 硬件技术和开发手段正日益受到重视成为各领域技术创新的重要基础。 嵌入式系统是将先进的计算机技术、 半导体技术和电子技术和各个行业的具体应用相结合后的产物这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。嵌入式是以应用为中心以计算机技术为基础软硬件可裁剪适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。 由于嵌入式系统通常具
2、有低功耗、 体积小、集成度高等特点因此随着消费家电的智能化和廉价微处理器的出现嵌入式系统将在日常生活里形成更大的应用领域。 嵌入式就业广泛嵌入式人才社会需求量大。论文内容条理清楚本着嵌入式控制系统的概况开发应用的撰写思路分三章逐步展开。 第一章概况详细地介绍了嵌式控制系统的定义、框架、特点、发展历程、现状、前景第二章嵌入式控制系统的开发主要论述了开发的步骤与方法第三章嵌入式控制系统的应用结合实例论述了嵌入式控制系统的实际应用服务大众生活。 作为这些研究成果的应用本文在最后总结系统的各方面能力和分析存在的问题为进一步的研究提供了方向和宝贵的经验。关键词电子技术嵌入式 系统 控制计算机集成系统目录
3、第一章 绪 论4一、嵌入式系统4二、选题目的及意义4三、嵌入式系统高级编程语言4四、解决的关键问题5第 2 章ARM处理器结构和 ARM指令集6一、寄存器和处理器模式6二、寄存器和处理器模式10ARM处理器结构10第三章 嵌入式 Linux 编程环境11一、 Linux 编译器 vi 的使用11二、 gcc 编译器13三、 Make 工程管理器13总结15参考文献15第一章绪论一、嵌入式系统计算机系统可以处理并管理各种数据,这里所说的数据包括文字、数字、图片以及各种指令。人们希望制造各种智能机器,这些机器需要一套“大脑”系统,对其中一些很小的机器,需要给他们设计一套小小的可以嵌在里面的“大脑”
4、系统,这个“大脑”有多聪明,就要看它的软件了。这一类隐藏在一些更大的系统中管理和控制这些系统并带有微处理器的专用软件硬件系统称为嵌入式计算机系统,通常为嵌入式系统。由于嵌入式体统本身是一个外延极广的名词,凡是与产品结合在一起的具有嵌入式特点的控制系统都可以叫做嵌入式系统,所以很难给它下一个准确的定义。 总体上,嵌入式系统可分划成硬件和软件两部分,硬件一般由高性能的微处理器和外围的接口电路组成,软件一般由硬件抽象层,操作系统,板级支持包,应用平台和应用程序几部分组成。二、选题目的及意义嵌入式系统技术已经广泛地应用于工业控制系统,信息家电,通信设备,医疗仪器,智能仪器仪表等众多领域,如手机, AD
5、A,MP3,手持设备,智能电话,机顶盒等,可以说嵌入式系统无处不在。市场对嵌入式系统的需求在飞速增长, 企业在努力使用开发嵌入式系统的速度跟上市场与竞争的需要。但是,与此同时,嵌入式系统开发的基础离乱与方法的研究却严重滞后,这与其纳入市系统的特点有关。三、嵌入式系统高级编程语言Ada 语言是 20 世纪 70 年代美国国防部开发并投入使用的功能强大的通用系统开发语言,最初为 Ada83。它支持模块化、独立编译、协处理等功能。其可靠性、可维护性、可读性都是相当好的。后来,为了更好地支持OOP(Object-OrientedProgramming),对其进行了改进,形成了目前广泛使用的Ada95。
6、使用 Ada 语言可以大大改善系统的清晰性、可靠性、可维护性等性能指标 2,3 。它是美国国防部指定的唯一一种可用于军用系统开发的语言。C 语言是由 Dennis Richie于 1972 年在 AT&Bell 实验室研究成功并投入使用的系统编程语言。其设计目标是使C既具有汇编语言的效率,又具有高级语言的易编程性。其最具代表性的应用是 UNIX操作系统。从 20 世纪 80 年代中期 C语言涉足实时系统后, 受到了普遍欢迎。1目前是使用最广泛的嵌入式系统编程语言。C+是由BjarneStroustrup于 1995 年在 Bell实验室研制成功并投入使用的。C+在支持现代软件工程、 OOP、结
7、构化等方面对C进行了卓有成效的改进,但在程序代码容量、执行速度、程序复杂程度等方面比C 语言程序性能差一些。Modula-2 是由 NicklansWirth 在 70 年代后期根据 Pascal和 Modula 开发的系统设计语言。其主要目标是在模块化、系统编程、协同处理等方面对Pascal进行改进。 Modula-2 具有很强的类型检查能力和丰富的低级功能支持。因此,可用它设计一个完整的实时程序而不用汇编语言的支持。 Modula-3 是 1988 年由 DEC(DigitalEquipment Company)和 ORC(OlivettiResearch Center )根据 Modul
8、a-2 开发研制并投入使用的系统开发语言。目标是设计一个功能强大但结构简单的通用编程语言。它在协同处理、 OOP、自动垃圾收集以及对C语言和 UNIX的支持等方面对Modula-2 进行了改进Java 是网络语言,而嵌入式系统则在功能、价格、体积、功耗、上市时间等方面有特殊要求。因此 Java 语言受速度和代码容量的限制,本身并不适合于嵌入式系统的应用。但Sun公司并不愿意放弃这个发展潜力巨大的应用市场,对Java 进行改进后发表了J2ME(Java2MicroEdition )。它是 Java API 的一个子集,只包含了Java 的关键特性,是专门针对对内存具有苛刻要求的嵌入式系统而设计的
9、。J2ME粗略地将应用对象划分为两大类:内存在128KB512KB之间的设备和内存大于512KB的设备,根据不同的类别提供不同的用户接口和软件包。四、解决的关键问题需解决的关键问题有:1、硬件各个模块的测试2、软件的设计与调试1第 2 章ARM 处理器结构和ARM 指令集一、寄存器和处理器模式1.ARM 有 7 个基本工作模式:User: 非特权模式,大部分任务执行在这种模式。限制你的内存访问并且你不能直接读取硬件设备正常程序执行的模式FIQ: 当一个高优先级 (fast)中断产生时将会进入这种模式高速数据传输和通道处理IRQ: 当一个低优先级 (normal) 中断产生时将会进入这种模式通常
10、的中断处理Supervisor : 当复位或软中断指令执行时将会进入这种模式供操作系统使用的一种保护模式Abort :当存取异常时将会进入这种模式虚拟存储及存储保护Undef:当执行未定义指令时会进入这种模式软件仿真硬件协处理器System:使用和 User 模式相同寄存器集的特权模式特权级的操作系统任务2. 寄存器组在 26 位体系下, ARM处理器有二十七个寄存器,其中一些是在一定条件下使用的,所以一次只能使用十六个。寄存器 0 到寄存器 7 是通用寄存器并可以用做任何目的。 不象 80x86 处理器那样要求特定寄存器被用做栈访问,或者象 6502 那样把数学计算的结果放置到一个累加器中,
11、 ARM处理器在寄存器使用上是高度灵活的。寄存器 8 到 12 是通用寄存器,但是在切换到FIQ 模式的时候,使用它们的影子(shadow) 寄存器。1寄存器 13 典型的用做 OS 栈指针,但可被用做一个通用寄存器。这是一个操作系统问题,不是一个处理器问题,所以如果你不使用栈,只要你以后恢复它,你可以在你的代码中自由的占用 (corrupt) 它。每个处理器模式都有这个寄存器的影子寄存器。寄存器 14 专职持有返回点的地址以便于写子例程。当你执行带连接的分支的时候,把返回地址存储到 R14 中。同样在程序第一次运行的时候, 把退出地址保存在 R14 中。 R14 的所有实例必须被保存到其他寄
12、存器中 ( 不是实际上有效 ) 或一个栈中。这个寄存器在各个处理器模式下都有影子寄存器。一旦已经保存了连接地址,这个寄存器就可以用做通用寄存器了。寄存器 15 是程序计数器。它除了持有指示程序当前使用的地址的二十六位数之外,还持有处理器的状态。为更清晰一些,提供下列图表:User 模式SVC模式IRQ 模式FIQ 模式APCSR0 -R0 -R0 -R0a1R1 -R1 -R1 -R1a2R2 -R2 -R2 -R2a3R3 -R3 -R3 -R3a4R4 -R4 -R4 -R4v1R5 -R5 -R5 -R5v2R6 -R6 -R6 -R6v3R7 -R7 -R7 -R7v4R8 -R8 -
13、R8R8_fiqv5R9 -R9 -R9R9_fiqv6R10 -R10 -R10R10_fiqslR11 -R11 -R11R11_fiqfpR12 -R12 -R12R12_fiqipR13R13_svcR13_irqR13_fiqsp1R14R14_svcR14_irqR14_fiqlr-R15 /PC -pc最右侧的列是APCS 代码使用的名字。 APCS,ARM过程调用标准 (ARMProcedureCallStandard) ,提供了紧凑的编写例程的一种机制,定义的例程可以与其他例程交织在一起。最显著的一点是对这些例程来自哪里没有明确的限制。它们可以编译自C、 Pascal 、也可
14、以是用汇编语言写成的。APCS定义了:对寄存器使用的限制。使用栈的惯例。在函数调用之间传递/ 返回参数。可以被回溯的基于栈的结构的格式, 用来提供从失败点到程序入口的函数 ( 和给予的参数 ) 的列表。程序计数器构造如下图2-2:32822211876540174365NZCVQJU n d e fi n e dIFTmodefsxc图 2-2程序计数器构造条件位:N = 1- 结果为负 ,0- 结果为正或 0Z = 1- 结果为 0,0- 结果不为 0C =1- 进位, 0- 借位V =1- 结果溢出,0 结果没溢出Q 位:仅 ARM5TE/J 架构支持指示增强型 DSP指令是否溢出J 位1
15、仅 ARM5TE/J 架构支持J = 1:处理器处于 Jazelle状态中断禁止位 :I = 1: 禁止 IRQ. F = 1: 禁止 FIQ.T Bit仅 ARM xT 架构支持T = 0:处理器处于ARM状态T = 1:处理器处于Thumb 状态Mode位 ( 处理器模式位):0b10000User0b10001FIQ0b10010IRQ0b10011Supervisor0b10111Abort0b11011Undefined0b11111System当处理器执行在ARM状态:所有指令32 bits宽所有指令必须word 对齐所以 pc 值由 bits31:2决定,bits1:0未定义 (
16、 所以指令不能 halfword/byte 对齐 ).当处理器执行在Thumb状态:所有指令16 bits宽所有指令必须halfword对齐所以 pc 值由 bits31:1决定,bits0未定义 ( 所以指令不能byte 对齐 ).当处理器执行在Jazelle状态:所有指令8 bits宽处理器执行word 存取一次取 4 条指令1二、寄存器和处理器模式ARM处理器结构ARM处理器的框架如图2-1 所示:ABEA31:0地址自增器地址寄存器IncrementerPC寄存器PC Update指令解码解码站ABBB指令解码u乘法器uss及读数据寄存器桶形移位器控制逻辑写数据寄存器32 位 ALUB
17、IGENDMCLKnWAITnRWMAS1:0ISYNCnIRQnFIQnRESETABORTnTRANSnMREQSEQLOCKnM4:0nOPCnCPICPACPB1第三章嵌入式 Linux 编程环境一、 Linux 编译器 vi 的使用1.vi的模式vi 有三种模式, 分别为命令行模式, 插入模式及底行模式, 下面具体进行介绍各模式的功能。(1)命令行模式。用户在用 vi 编辑文件时,最初进入的为一般模式。 在该模式中可以通过上下移动光标进行 “删除字符”或“整行删除”等操作,也可以进行“复制” ,“粘贴”等操作,但无法编辑文字。(2)插入模式。只有在该模式下,用户才能进行文字编辑输入,
18、用户可按Exs 键回到命令行模式。(3)底行模式。在该模式下,光标位于屏幕的底行。用户可以进行文件保存或退出操作,也可以设置编辑环境,如寻找字符串,列出行号等。2.vi的基本流程(1)进入 vi ,即在命令行下输入 vi hello 。此时进入的是命令行模式,光标位于屏幕的上方。(2)在命令行模式下输入i 进入到插入模式, 如下图,可以看出,在屏幕底部显示有 “插入”1表示插入模式,在该模式下可以输入文字信息。(3)最后,在插入模式中, 输入 Esc, 则当前模式转入命令模式,并在底行中输入 “:wq”(存盘退出)进行底行模式,如下图所示。1二、 gcc 编译器(1)预处理在该阶段,编译器将上
19、述代码中的 stdio.h 编译进来,并且用户可以使用 gcc 的选项“ -E” 进行查看,该选项的作用是让 gcc 在预处理结束后停止编译过程。(2)编译gcc 把代码编译成汇编语言。(3)汇编汇编阶段是把编译阶段生成“.s ”文件转成目标文件,读者在此可使用选项“-c ”就可看到汇编代码已转化为“ .o ”的二进制目标代码了,语句如下。rootlocalhostGcc# gcc c hello.so hello.o(4)链接成功编译之后,就进入了链接阶段。在这里涉及一个重要的概念- 函数库。三、 Make 工程管理器1.Makefile介绍make命令执行时,需要一个Makefile文件,
20、以告诉 make命令需要怎么样的去编译和链接程序。首先,我们用一个示例来说明 Makefile 的书写规则。以便给大家一个感兴认识。这个示例来源于 GNU的 make使用手册,在这个示例中,我们的工程有 8 个 C 文件,和 3 个头文件,我们要写一个 Makefile 来告诉 make命令如何编译和链接这几个文件。我们的规则是:(1).如果这个工程没有编译过,那么我们的所有C文件都要编译并被链接。(2).如果这个工程的某几个C文件被修改, 那么我们只编译被修改的C文件,并链接目标程序。(3).如果这个工程的头文件被改变了,那么我们需要编译引用了这几个头文件的C文件,并链接目标程序。2.Mak
21、efile基本结构(1)需要由 make 工具创建的目标体,通常是目标文件或可执行文件。(2)要创建的目标体所依赖额文件。(3)创建每个目标时需要运行的命令。13.Makefile变量Makefile往往是包含很多的文件和命令,这也是Makefile产生的原因。下面就可给出稍复杂一些的 Makefile进行讲解。在上面的例子中,先让我们看看edit的规则:edit:main.o kbd.ocommand.o display.oinsert.osearch.ofiles.outils.occ -o editmain.okbd.ocommand.odisplay.oinsert.osearch.o
22、files.outils.o我们可以看到 .o 文件的字符串被重复了两次, 如果我们的工程需要加入一个新的.o 文件,那么我们需要在两个地方加(应该是三个地方,还有一个地方在clean 中)。当然,我们的makefile并不复杂,所以在两个地方加也不累,但如果makefile变得复杂,那么我们就有可能会忘掉一个需要加入的地方,而导致编译失败。所以,为了makefile的易维护,在makefile中我们可以使用变量。 makefile的变量也就是一个字符串, 理解成 C 语言中的宏可能会更好。1总结着 Internet/Intranet 等技术的迅速发展和广泛应用, 很多企业都构建了自己的局域网
23、,他们能通过网络迅速地发布和传达信息, 也能通过网络迅速地搜寻和获取信息。网络改变了我们的日常生活,同时也给企业管理带来深刻的变革,建立基于Web的招聘管理系统正是顺应时代发展的需要。嵌入式系统是一个很有发展空间的领域,以嵌入式系统为标志的后PC时代已经到来。但嵌入式系统是一个软硬件结合很紧密的课题,特别是涉及到bios 开发、bootloader开发方面,则要求你对硬件要有一个较深的了解。所以学习嵌入式需要掌握了解很多知识,所以学习顺序一定不能乱, 在了解嵌入式系统开发的体系结构后,一步一步的下手。搭建开发环境需要 : 硬件平台, 编译器, 调试器, RTOS, C/C+库,协议栈等。建议有志于想把嵌入式学好者最好先分析一种 RTOS的源代码 -UCOS最容易;再分析一种通讯协议栈的实现方式-TCP/IP 最实用;精通一种单片机的开发集成环境 -keilC 最经典;精通一种MCU的开发集成环境 -ADS 1.2 最流行。通过这次我对计算机硬件方面, 和对计算机的整个体系结构从底层驱动到最高应用层以及中间那些协议都有了比较有了一些较具
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年上海海事大学单招综合素质笔试模拟试题含详细答案解析
- 2026年四川财经职业学院高职单招职业适应性测试模拟试题及答案详细解析
- 2026年江西环境工程职业学院单招综合素质考试模拟试题含详细答案解析
- 2026年新疆职业大学单招职业技能考试模拟试题含详细答案解析
- 2026年红河卫生职业学院单招职业技能考试备考题库含详细答案解析
- 2026年南充文化旅游职业学院单招综合素质考试模拟试题含详细答案解析
- 2026年广西工商职业技术学院单招综合素质考试模拟试题含详细答案解析
- 2026贵州省民政厅所属事业单位招聘10人备考考试试题及答案解析
- 2026年广西理工职业技术学院单招职业技能考试备考题库含详细答案解析
- 2026年福州黎明职业技术学院单招综合素质笔试备考题库含详细答案解析
- 夫妻债务约定协议书
- 土地管理学课件
- 村庄规划搬迁方案
- 安全文明施工措施方案
- 钢结构课程设计-车间工作平台
- 融资租赁实际利率计算表
- 民爆物品仓库安全操作规程
- von frey丝K值表完整版
- 勾股定理复习导学案
- 第二章单自由度系统振动
- GB/T 17880.6-1999铆螺母技术条件
评论
0/150
提交评论