




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、书后练习习题1(1) 嵌入式系统是以应用为中心、以计算机技术为基础,软、硬件可裁剪,适应于应用系统对功能、可靠性、成本、体积、功耗等方面有特设要求的专用计算机系统。(2) 嵌入到对象体系中的专用计算机系统。嵌入、专用、与计算机系统是嵌入式系统的三个基本要素。对象系统是指嵌入式系统所嵌入的宿主系统。(3) 嵌入式系统按形态可分为设备级(工控机)、板级(单极、模块)、芯片级。(4) 嵌入式系统由硬件和软件两部分组成,硬件一般由高性能微处理器和外围接口电路组成,软件一般由操作系统和应用程序构成,软件和硬件之间由所谓的中间层(BSP层,板级支持包)链接。(5) 嵌入式系统从组织层次上看,嵌入式系统一般
2、由硬件层、中间层、软件层和功能层组成。(6) 在专用的嵌入式板子上面运行GNU/Linux系统已经变得越来越流行。一个嵌入式Linux系统从软件的角度看通常可以分为四个层次:引导加载程序、Linux内核文件系统、用户应用程序。(8)嵌入式系统的核心部件是嵌入式处理器,一般把嵌入式处理器分成4类,即嵌入式微控制器、嵌入式微处理器、嵌入式数字信号处理器和嵌入式片上系统。(10)ARM7TDMI中,T表示支持Thumb指令集。D表示支持片上调试(Debug)。M表示内嵌硬件乘法器(Multiplier)。I表示支持片上断点和调试点。(12) ARM微处理器有两种工作状态:Thumb状态、ARM状态。
3、(13)通常寄存器分为三类:未分组寄存器、分组寄存器、程序寄存器。(15)精简指令集计算机RISC(Reduced Instruction Set Computer)和复杂指令集计算机CISC是当前CPU的两种架构。2.思考与简答(1)简述嵌入式系统的特点解:系统内核小专用性强运行环境差异大可靠性要求高系统精简和高实时性操作系统具有固化在非易失性存储器中的代码无自举开发能力(2) 简述嵌入式系统的应用领域解:工业控制、交通管理、信息家电、家庭智能管理系统、POS网络及电子商务、环境工程与自然、机器人(3) 简述嵌入式系统的发展趋势解:(1)新的微处理器层出不穷,精简系统内核,优化关键算法,降低
4、功耗和软硬件成本。(2)Linux、Windows CE、Palm OS等嵌入式操作系统迅速发展。(3)嵌入式系统的开发成了一项系统工程,开发厂商不仅要提供嵌入式软硬件系统本身,同时还要提供强大的硬件开发工具和软件支持包。(4) 简述嵌入式微处理器的特点解:实时多任务,很强的支持能力 具有很强的存储区保护功能 可扩展处理器结构 功耗低(14) 简述嵌入式操作系统的种类和特点解:uC/OS-II:可应用于8位,16、32位单片机或DSP windowsCE :微软开发的一个开放的,可升级的32位嵌入式系统,是基于掌上型电脑类的电子设备操作系统 VxWorks:专门为实时嵌入式系统设计开发的 Li
5、nux:类似于UNIX的操作系统 Palm OS:是一个32位的嵌入式操作系统 (16) 简述嵌入式系统的结构解: 硬件结构 软件结构(17) 简述嵌入式系统开发流程、开发要点。解:(1)系统需求分析 (2)体系结构设计 (3)硬件/软件协同设计。基于体系结构,对系统的软件、硬件进行详细设计。 (4)系统集成(5)系统测试习题21 填空题(1)交叉开发环境是由开发主机和目标板两套计算机系统构成的。(3)交叉编译的主要特征是某机器中执行的程序代码不是在本机编译生成,而是由另台机器编译生成的,一般把前者称为目标机,后者称为宿主机。(4)基于ARM平台的交叉编译工具链主要有: arm-linux-*
6、和arm-elf-* 。 (5)arm-linux-*是针对Linux程序的开发环境的 (6)arm-elf-*是针对uCLinux程序的开发环境(11)TFTP是TCP/IP协议族中的一个用来在客户机与服务器之间进行文件传输的简单协议,主要基于UDP协议来实现。2. 思考与简答(2)交叉开发环境主要由哪些工具组成? 解:交叉调试环境包括宿主机端的交叉调试器和目标机端的调试代理。(3)简述采用交叉编译的主要原因?解:采用交叉编译的主要原因有两个:首先,在嵌入式系统开发的起始阶段,目标平台尚未建立,因此需要做交叉编译,来生成所需的BootLoader以及操作系统内核;其次,当目标平台能够启动之后
7、,由于目标机资源的限制,不能提供足够的资源供编译过程使用,因而只好将编译工程转移到高性能的宿主机中进行(4)简述建立交叉编译工具链的方法。解:编写C语言或汇编语言源程序 生成目标文件 编写链接脚本文件 用链接器生成最终的目标文件 生成二进制代码 反汇编目标代码(5)arm-linux-*和arm-elf-*的区别解:arm-linux-*和arm-elf-*,两者区别主要在于使用不同的C库文件。arm-linux-*使用GNU的Glibc,而arm-elf-*一般使用uClibc/uC-libc或者使用REDHAT专门为嵌入式系统的开发的C库newlib.Glibc。习题31. 填空题(1)目
8、前,在嵌入式系统开发中,使用的主要编程语言是C和汇编 。 (2)从程序员的角度看,函数库实际上就是一些头文件(.h)和库文件(.so或.a)的集合。 (3)Linux下大多数函数默认将头文件放到/usr/include目录下,而库文件放到/usr/lib目录下。 (4)静态库也叫做档案(archive),可以认为是一些目标代码的集合,静态库的文件名按惯例以“.a”作为文件后缀名。 (5)共享库是在程序启动时被加载到执行程序中的,并且可以被多个执行程序共享使用。 (6)GCC(GNU Compiler Collection)是一组编译工具的总称,主要的任务是预处理和编译,并且提供了与编译器紧密相
9、关的运行库(libgcc_s.so、libstdc+.so等)的支持。(7)Makefile文件规则包含两个部分:依赖关系和生成目标的方法。 (8)编程库是指始终可以被多个Linux软件项目重复使用的代码集。 (9)在汇编语言中,用助记符代替操作码,用地址符号代替地址码。 (10)PC机上,对于x86系列的处理器,有AT&T 和Inter两种语法格式。 (11)目前常用的ARM编译环境有2种: ARM ASM、GNU ARM ASM。 (12)伪操作是ARM汇编语言源程序里的一些特殊助记符,其作用主要是为完成汇编程序做各种准备工作,在源程序汇编期间由汇编程序处理。 (13宏指令是由用户
10、按照宏定义格式编写的一段程序,其中语句可以是指令、伪操作、伪指令,甚至是已定义的宏指令。 (14)用户可以通过AREA伪操作来定义一个段。 (15)汇编源程序的缺省入口是 start 标号,用户也可以在链接脚本文件中用 ENTRY 标志指明其它入口点。 (16)为了使C语言程序和汇编程序之间能够互相调用,必须为子程序间的调用制定规则,在ARM处理器中,这个规则被称为 ATPCS规则。(18)在ARM处理器平台上的底层驱动开发,通常会有两种方式:一种是脱离操作系统的裸机驱动设计方法,这与以前在8位机和16位机上的常用开发方式类同。另一种就是 基于操作系统的底层驱动设计方法。 (21)ELF格式文
11、件有3类:可重定位的目标文件、可执行文件 、共享库。 (22)可从两个视角了解ELF文件格式:程序链接的视角、程序执行的视角。2. 思考与简答(1)简述GCC软件包里包含哪些工具,他们的作用是什么?解: 源代码预处理程序cpp cpp0 C编译器cc,ccl cclplus gcc C+编译器c+,cclplus g+(1) 简述编译C语言源程序时的基本流程。解:源程序-预处理器-编译器-汇编器-链接器-可执行程序(2) 简述gcc的基本用法解:GCC最基本的用法是gcc options filenames其中options就是编译器所需要的参数,filenames给出相关的文件名称。-c,只
12、编译,不链接成为可执行文件,编译器只是由输入的.c等源代码文件生成.o为后缀的目标文件,通常用于编译不包含主程序的子程序文件。-o output_filename,确定输出文件的名称为output_filename,同时这个名称不能和源文件同名。如果不给出这个选项,gcc就给出预设的可执行文件a.out。-g,产生符号调试工具(GNU的gdb)所必要的符号资讯,要想对源代码进行调试,我们就必须加入这个选项-O,对程序进行优化编译、链接,采用这个选项,整个源代码会在编译、链接过程中进行优化处理,这样产生的可执行文件的执行效率可以提高,但是,编译、链接的速度就相应地要慢一些。-O2,比-O更好的优
13、化编译、链接,当然整个编译、链接过程会更慢。(3) 简述GNU make工具的作用,以及GNU make工作流程 解:GNU make是一个命令工具通过在shell提示符下输入make命令调用。不过在执行make之前,需要一个命名为Makefile的特设文件来告诉make需要做什么,该怎么做。通常,make工具被用来进行工程编译和程序链接。make的执行过程如下: 依次读取变量“MAKEFILES”定义的makefile文件列表读取工作目录下的makefile文件 依次读取工作目录makefile文件中使用指示符“include”包含的文件 查找重建所有已读取的makefile文件的规则 初始
14、化变量值并展开那些需要立即展开的变量和函数并根据预设条件确定执行分支根据“终极目标”以及其他目标的依赖关系建立依赖关系链表 执行除“终极目标”以外的所有的目标的规则执行“终极目标”所在的规则(4) 简述Makefile 文件的作用解:makefile关系到了整个工程的编译规则。一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。makefile带来的好处就是“自动化编译”
15、,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率习题41. 填空题(1)引导加载程序是计算机系统加电后运行的第一段软件代码。对于计算机系统来说,从开机上电到操作系统启动需要一个引导过程。(2)一个嵌入式Linux系统从软件的角度来看,通常可以分为四个层次:引导加载程序、Linux内核、文件系统用户应用程序(3)大多数BootLoader都包含两种不同的操作模式:启动加载模式、下载模式习题51. 填空题(1)模块是一种目标对象文件,需要在内核空间执行,可以把它看做是一组已经编译好而且已经链接成可执行文件的程序。(2)内核移植主要是修改和硬件平台相关的代码。移植
16、的难道取决于两种硬件平台的差异。Linux对特定硬件平台的软件称为板级支持包 BSP。(3)典型的内核映像是zImage,包含自引导程序和压缩两部分习题61.填空题(1)为了对各类文件系统进行统一管理,Linux引入了虚拟文件系统VFS,并为各类文件系统提供一个统一的操作界面和应用编程接口。(2)Linux启动时,第一个必须挂载的是根文件系统,之后可以自动或手动挂载其他文件系统(3)闪存主要有NOR和NAND 两种技术(4)在嵌入式Linux下,MTD(存储技术设备)为底层硬件(闪存)和上层(文件系统)之间提供一个统一的抽象接口。补充:1、 嵌入式系统的定义解:以应用为中心、以计算机技术为基础
17、,软件硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。2、 嵌入式ARM和单片机的区别解:arm是单片机的一种,51也是,但是arm的ROM和RAM远大于51,而且I/O口功能和处理速度也是两个级别的,arm能上很多操作系统,51只能勉强上极其简单的实时操作系统,所以arm常用来开发手机登多媒体产品,51只能完成有限的实时控制功能,形象一点说,51和arm的等级差别就像手机和电脑的等级差别。3、 英文缩写:ARM(Acorn RISC Machine)板级支持包BSP(Bulk Synchronous Parallel) ATPCS(ARM-THUMB pro
18、cedure call standard)4、 常见的ARM编译环境SDT、ADS、REALVIEW DEVELOPER SUITE、RealView MDK、GNU、IAR EWARM、KEIL ARM-MDKARM、MULTI 2000、Embest IDE、Hitool for ARM、Mikro PRO for ARM5、 嵌入式处理器分类解:微控制器MCU、微处理器MPU、嵌入式DSPEDSP、片上系统System On Chip6、 常见的嵌入式系统有哪些?Linux、uClinux、WinCE7、嵌入式系统软件开发流程 编写源代码、编译程序、程序下载、软硬件测试、下载固化第二章1
19、、ARM编译环境ARM SDT、ARM、2、什么是交叉编译,为什么要交叉编译?就是指编译器在某一个平台下能够编译出另外一个平台下运行的程序主要是为了多平台应用程序使用的比如某一个程序,在windows下和linux和MacOS下都有相应的运行版本,使用交叉编译就可以在一个平台下全部完成,而不用切换到对应的平台再去编译5.LINUX常用命令 显示文件或目录Ls 显示当前目录的内容pwd显示当前目录cd 切换目录mkdir 新建目录rmdir 删除空目录cp 拷贝rm删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。mv将文件重命名或将其移至一个新的目录中ch
20、mod修改权限cat 1.一次显示整个文件。2.从键盘创建一个文件。3.将几个文件合并为一个文件如何修改环境变量?方法1:在/etc/profile文件中添加变量方法2:在用户目录下的bash_profile文件中增加变量方法3::直接运行export命令定义变量第三章ARM指令系统1. 寻址方式2. SWI 软件中断指令SWIcond immed_24Cond域:是可选的条件码 immed_24域:范围从 0 到 224-1 的表达式3. 伪指令、伪操作、宏指令定义伪指令:是汇编语言程序里的特设指令住记符,在汇编时被合适的机器指令替代。伪操作:为汇编程序所用,在源程序进行汇编时又汇编程序处理,只在汇编过程起作用,不参与程序运行。宏指令:通过伪操作定义的一段独立的代码。在调用它时将宏体插入到源程序中。编程:1 :#!/bin/bashecho "plase input number a b:"read a becho " number a = $a number b = $b "if $a -eq $b thenecho "a = b"elif $a -gt $b thenecho "a > b"else $a -lt $b echo "a < b"fi2:#!/bin
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年注册安全工程师重要考点试题及答案
- 江淮十校2025年高三最后一卷化学试卷含解析
- 植物的输水机制与功能试题及答案
- CPSM考试高效备考的心理准备试题及答案
- 统编版语文五年级下册第12课《清贫》精美课件
- 2025年控制电机及其驱动项目建议书
- CPSM考试记忆法与技巧试题及答案
- 常见国际贸易纠纷解析与试题及答案
- 2025年数据策略咨询项目发展计划
- 2025四川机电职业技术学院辅导员考试题库
- 高中语文整本书阅读教学研究
- 2024年苏州农业职业技术学院高职单招语文历年参考题库含答案解析
- 投资银行学第4版- 课件汇 马晓军 第1-4章 投资银行概述-上市公司再融资
- 2025年月度工作日历含农历节假日电子表格版
- 中国近现代史纲要心得体会
- 竣工结算审计服务投标方案(2024修订版)(技术方案)
- 2025年中考语文复习课件 模块三 语言综合运用
- 《年产2000吨果汁型茶饮料的生产工艺设计》4600字(论文)
- 中建落地式脚手架施工方案
- 基因检测销售培训
- 小学的数学课件
评论
0/150
提交评论