版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第一章嵌入式系统概论一.填空1. 嵌入式系统是以_为目的、以_基础的计算机系统。2. 计算机系统按应用可以分为_系统和_系统。3. 嵌入式系统按软件结构可分为嵌入式_系统和嵌入式_系统。4. 嵌入式系统按是否具有实时性能可分为嵌入式_系统和嵌入式_系统。5. 嵌入式实时系统除具有嵌入式系统的基本特征外,还具_和_的重要特点。6. 嵌入式系统的硬件架构是以_为中心,由_,I/O设备,通信模块以及电源等必要的辅助接口组成。7. 嵌入式系统的软件通常固态化存储在_、_或NVRAM中。8. 嵌入式系统的开发由于受到_限制,通常采用_环境。9. 嵌入式系统开发采用的交叉开发环境是由_和_组成的。10.
2、嵌入式系统的设计是使用一组_和_来完成所需功能的过程。解答:1. 嵌入式应用;计算机技术2. 通用计算机; 嵌入式计算机3. 单线程;事件驱动4. 非实时;实时5. 实时性;可靠性6. 嵌入式处理器;存储器7. ROM;FLASH8. 系统资源开销的;交叉开发9. 宿主机;目标机10. 物理硬件;软件二.选择1. 以下哪一项不属于嵌入式操作系统()AVxWorks B. WinCE C. BSD D. uClinux2. 以下关于嵌入式系统说法正确的是 ()A以开发为中心 B 对实时,成本,功耗要求严格C软硬件协同 D 软件可剪裁3. 以下关于嵌入式系统说法正确的是 ()A嵌入的系统中可以共存
3、多个嵌入式系统B对高性能要求严格C软硬件缺乏协同D不要求实时性4. 对响应时间有严格要求的嵌入式系统是()A.嵌入式实时系统 B.嵌入式多线程系统C.嵌入式多内核系统 D.嵌入式轮转询问系统5. 以下哪一项属于嵌入式系统不具备的特点()A.采用专用处理器 B. 跨平台可移植C.软硬件协同一体化 D.小型化与有限资源6. 嵌入式系统硬件的核心是 ()A.存储器 B.嵌入式微处理器C.嵌入式微控制器 D.BSP7. 嵌入式系统的软件部分不包括()ADSP B.嵌入式操作系统 C.设备驱动程序 D.应用程序8. 对性能要求高的嵌入式系统是()A.嵌入式实时系统 B.嵌入式多线程系统C.嵌入式多内核系
4、统 D.嵌入式轮转询问系统9. 嵌入式应用软件的开发阶段不包括()A交叉编译和链接 B.开发环境的建立C联机调试 D.应用程序模块加载10. 为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都保存在()A存储器芯片 B.磁盘 C.cache D.CDROM解答:1. C2. A3. A4. A5. B6. B7. A8. C9. D10. A三.判断解答:四.名词解释解答:五.简答题1. 给出嵌入式系统的一般定义和基本特征。2. 嵌入式实时系统相对其它嵌入式系统具有哪些不同的特点?任意列举两种为实现嵌入式实时系统所采用的措施。3. 请列举两种嵌入式系统开发的方法。4. 请简述嵌入式系统的特
5、点。5. 请列举ARM处理器支持的运行模式。解答:1. 定义:嵌入式系统(Embedded System)是以应用为中心、以计算机技术为基础、软件硬件可裁剪、功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。基本特征:(1)专用性: 采用专用的嵌入式处理器,功能算法的专用性;(2)小型化与有限资源: 资源约束和空间约束与专用性;(3)系统软硬件设计的协同一体化:硬件与软件的协同设计和应用软件与操作系统的一体化设计开发。2. 嵌入式实时系统除具有嵌入式系统的基本特征外,还具有实时性和可靠性的重要特点。为实现以上实时性能的要求,嵌入式系统一般采用如下方式:(1)采用高速硬件。如高速处理器、高
6、速A/D、D/A等;(2)利用嵌入式处理器提供的中断功能;(3)需要嵌入式实时操作系统(RTOS)的支持;(4)应用程序代码量小、执行速度快。3. 目前,嵌入式系统的开发有模拟开发调试、嵌入式在线仿真和远程调试等几种方法。4. 1、面向特定应用的特点。2、嵌入式系统的硬件和软件都必须进行高效地设计。3、嵌入式系统是将先进的计算机技术、半导体技术和电子技术与各个行业的具体应用相结合的产物。4、为了提高执行素的和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片中或单片机本身,而不是存储于磁盘中。5、嵌入式开发的软件代码尤其要求高质量,高可靠性。6、嵌入式系统本身不具备二次开发能力,必须有一套开
7、发工具和环境才能进行再次开发。5. 1、用户模式2、快速中断模式3、外部中断模式4、管理模式5、数据访问终止模式6、系统模式六.应用题解答:第二章. 嵌入式处理器基础一.填空1. ARM嵌入式系统主要由_,相关支撑硬件和 _ 组成。2. ARM 微处理器的特点包括:_,低成本和_。3. ARM 处理器共有37个寄存器,包括31个_和6个 _。4. ARM微处理器支持两种指令集:_和 _。5. ARM体系结构采用的特征有:_,_,3地址指令格式。6. ARM体系结构可用两种方法存储字数据,具体为_和_。7. ARM微处理器中,_下的寄存器集是ARM状态下寄存器集的一个_。8. ARM微处理器的工
8、作模式中,系统模式并不是通过_进入的,它和_模式具有完全一样的寄存器。9. ARM处理器工作状态主要有_,睡眠,_ 。10. 常用的嵌入式外围设备有_,通信设备,_。解答:1. 嵌入式处理器;嵌入式软件系统2. 低功耗;高性能3. 通用寄存器;状态寄存器4. ARM指令集;Thumb指令集5. Load/Store 体系结构;固定的32位指令6. 大端模式;小端模式7. Thumb状态;子集8. 异常; 用户9. 运行;空闲10. 存储设备;显示设备二.选择1. 以下哪一项不属于嵌入式处理器的特点()A.对实时多任务支持能力强 B.功耗低C.处理器结构不易扩展 D.存储保护能力强2. 以下哪一
9、项不属于嵌入式处理器()A.PowerPC B.pentium C.ARM D.MIPS3. 在指令系统的各种寻址方式中,获取操作数最快的方式是()A.直接寻址 B. 立即寻址 C. 寄存器寻址 D. 间接寻址4. ARM微处理器的寄存器在Thumb状态与ARM状态下相同的是()A.R8-R12 B.R15和CPSR C.R13-R14 D.R0-R75. ARM 指令系统采用()指令A.单地址 B.双地址 C.三地址 D.四地址6. ARM3级流水线下取第一条指令前程序计数器为PC,则取第三条指令为() A PC+3 B PC+6 C PC+8 D PC+127. 以下哪一项不属于ARM内核
10、的功能模块()A.支持16位压缩指令集Thumb B.支持片上DebugC.媒体功能扩展SIMD D.嵌入式ICE,支持片上断点和调试8. ARM寄存器组中除了以下哪组寄存器以外所有处理器模式下都可以访问()A.SPSR B.R0-R7 C.CPSR D.R8-R99. ARM异常处理中,软件中断处理程序执行()指令可以从SWI模式返回,无论是在ARM状态还是Thumb状态。A.MOVS PC , R14_svc B.MOVEQ PC,R14_svcC.MOVS PC, R14_und D.MOVEQ PC, R14_und10. 以下哪一项不属于ARM异常中断()A复位 B.IRQ C.条件
11、转移 D.数据终止解答:1. C2. B3. B4. D5. C6. D7. C8. A9. A10. C三.判断1. FIQ异常是为了支持数据传输或者中断处理而设计的。 ( )2. ARM指令为32位的长度,Thumb指令为16位长度。 ( )3. ARM微处理器采用RISC指令集,使用大量的寄存器。( )4. 所有的ARM指令都可根据前面的执行结果决定是否被执行,从而提高指令的执行效率。( )5. ARM微处理器的存储器格式必须按对齐规则对存储单元进行访问。( )6. ARM微处理器通用寄存器R14R0、程序计数器PC、一个或两个状态寄存器都是可访问的。( )7. ARM状态下的寄存器组织
12、分为三类:分组寄存器,程序寄存器,状态寄存器。( )8. R13在Thumb指令中常用作堆栈指针,但这只是一种习惯用法,用户也可使用其他的寄存器作为堆栈指针。( )9. ARM微处理器中状态寄存器的低8位称为控制位,发生异常时这些位可以被改变,但当处理器运行特权模式,这些位不可以改变。( )10. ARM微处理器可用加载/存储指令批量传输数据,以提高数据的传输效率。( )解答:1. 错2. 对3. 对4. 对5. 错6. 对7. 错8. 错9. 错10. 对四.名词解释1. 单机处理器2. ARM架构3. 超标量体系结构4. DSP微处理器5. 嵌入式片上系统解答:1. 所谓单机处理器是指那些
13、专门用于处理功能的处理器芯片,相对于集成化处理器,单机处理器需要一些外围电路支持才能够实现其基本功能。2. 进阶精简指令集机器,是一个32位精简指令集(RISC) 中央处理器架构,ARM处理器体系结构由ARM公司开发并拥有知识产权。3. 能够在一个时钟周期执行多个指令,在超标量体系结构设计中,处理器或指令编译器判断指令能独立于其它顺序指令执行,还是依赖于另一指令,必须跟其按顺序执行,然后处理器使用多个执行单元同时执行两个或更多独立指令。4. 是一种独特的微处理器,是以数字信号来处理大量信息的器件。其工作原理是接收模拟信号,转换为0或1的数字信号。再对数字信号进行修改、删除、强化,并在其他系统芯
14、片中把数字数据解译回模拟数据或实际环境格式。5. 单个芯片上集成一个完整的系统,对所有或部分必要的电子电路进行包分组的技术。完整的系统一般包括中央处理器,存储器以及外围电路等。随着电子数据交换的推广和VLSI设计的普及化,以及半导体工艺的迅速发展,在一个硅片上可以实现一个更为复杂的系统。五.简答题1. 当出现异常时,ARM微处理器会执行哪几步操作?2. 请简述ARM微处理器两种工作状态集的切换操作及方法。3. 请简述ARM微处理器的用户模式和特权模式,以及用户模式向特权模式的转换。4. ARM微处理器的运行模式有有哪几种,请列举并说明。5. 如何进行嵌入式处理器的选型?6. 嵌入式处理器通常划
15、分为哪四大类型?试列举出来。7. 试简述Thumb技术。解答:1. (1)将下一条指令的地址存入相应连接寄存器LR,以便程序在处理异常返回时能从正确的位置重新开始执行。若异常是从ARM状态进入,则LR寄存器中保存的是下一条指令的地址(当前PC4或PC8,与异常的类型有关);若异常是从Thumb状态进入,则在LR寄存器中保存当前PC的偏移量,这样,异常处理程序就不需要确定异常是从何种状态进入的。例如:在软件中断异常SWI,指令 MOV PC,R14_svc总是返回到下一条指令,不管SWI是在ARM状态执行,还是在Thumb状态执行;(2)将CPSR复制到相应的SPSR中;(3)根据异常类型,强制
16、设置CPSR的运行模式位;(4)强制PC从相关的异常向量地址取下一条指令执行,从而跳转到相应的异常处理程处。2. ARM指令集和Thumb指令集均有切换处理器状态的指令,并可在两种工作状态之间切换:(1) 在开始执行代码时,处于ARM状态;(2) 当操作数寄存器的状态位(位0)为1时,可以采用执行BX指令的方法,使微处理器从ARM状态切换到Thumb状态;(3) 当处理器处于Thumb状态时发生异常(如IRQ、FIQ、Undef、Abort、SWI等),则异常处理返回时,自动切换到Thumb状态;(4) 当操作数寄存器的状态位为0时,执行BX指令(状态跳转)时可以使微处理器从Thumb状态切换
17、到ARM状态。在处理器进行异常处理时,把PC指针放入异常模式链接寄存器中,并从异常向量地址开始执行程序,也可以使处理器切换到ARM状态。3. (1)除了用户模式之外的其他6种处理器模式称为特权模式.特权模式下,程序可以访问所有的系统资源,也可以任意地进行处理器模式的切换。(2)特权模式中,除系统模式外,其他5种模式又称为异常模式。大多数的用户程序运行在用户模式下,此时,应用程序不能够访问一些受操作系统保护的系统资源,应用程序也不能直接进行处理器模式的切换。(3)用户模式下,当需要进行处理器模式切换时,应用程序可以产生异常处理,在异常处理中进行处理器模式的切换。4. ARM微处理器的运行模式有7
18、种,分别为:(1)用户模式(User,usr):正常程序执行时,ARM处理器所处的状态。(2)快速中断模式(FIQ,fiq):用于快速数据传输和通道处理。(3)外部中断模式(IRQ,irq):用于通常的中断处理。(4)特权模式(Supervisor,sve):供操作系统使用的一种保护模式。(5)数据访问中止模式(Abort,abt):当数据或指令预取终止时进入该模式,用于虚拟存储及存储保护。(6)未定义指令终止模式(Undefined,und):用于支持硬件协处理器软件仿真。(7)系统模式(System,sys):用于运行特权级的操作系统任务。5. ARM微处理器选型时应注意:1ARM微处理器
19、内核的选择2系统的工作频率3芯片内存储器的容量4、片内外围电路的选择6. 嵌入式处理器通常分为四大类:嵌入式微处理器(MPU)、嵌入式微控制器(MCU)、嵌入式DSP处理器(DSP)、嵌入式片上系统(SOC)。7. Thumb是ARM体系结构的扩展,它有从标准32位ARM指令集抽出来的36条指令格式,可重新编制成16位的操作码。Thumb指令的宽度只有ARM指令宽度的一半,在运行时,这些16位的Thumb指令又由处理器压成32为的ARM指令。Thumb不仅仅是另一个混合指令集的概念,因为支持Thumb的核有2套独立的指令集,它使设计者得到ARM32位指令性能的同时,又能享有Thumb指令集产生
20、的代码方面的优势,可在性能和代码大小之间取得平衡。六.应用题解答:第三章Linux体系结构(内核)和BusyBOX一.填空1. Linux最重要的特点是_,Linux内核遵循GNU_条款,意味着Linux是自由软件。2. Shell是操作系统中运行的程序,位于操作系统_与_之间,充当了一个“命令解释器”的角色。3. LINUX支持_线程以及_内核模块。4. _是系统的用户界面,_是文件存放在磁盘等存储设备上的组织方法。5. Linux让所有任务都运行在_,直接调用函数,无须消息传递,避免了_机制的开销。6. 由于内核支持异步终端、抢占和SMP,因此必须时刻注意_和_。7. 命令提示符分为普通用
21、户和管理员用户两种,普通用户的命令提示符使用_,管理员用户的命令提示符是_。8. ls命令使用“-l”选项时,可以查看文件和目录的详细信息,文件(目录)列表的第一列字段信息是权限属性信息,此信息中的第一位(左数)标志位是“d”表示_,“-”表示_。9. 在内核里不能访问非法的_地址,也不要引用_指针。10. 挂载设备到文件系统的命令是_,从文件系统中卸载设备命令是_。解答:1. 开源;GPL2. 内核;用户3. 内核;动态装载4. Shell;文件系统5. 内核态;进程间通信(IPC)6. 同步;并发7. $;#8. 目录;普通文件9. 内存;空10. mount;umount二.选择1. 下
22、面选项中哪个不是Linux系统的主要部分()A.内核 B.Shell C.文件系统 D.Bash2. 以下关于Linux系统描述错误的是()A.支持动态加载内核模块 B.内核区分线程和其他进程C.内核可以抢占 D.支持对称多处理机制3. 以下内核开发特点描述错误的是()A.内核编程时不能访问C库 B.必须使用GNU CC.内核有一个较大的定长堆栈 D.很难使用浮点数4. touch命令的作用是()A.新建文件 B.新建目录 C.查看文件类型 D.文件移动或文件重命名5. 下面的命令中哪个不是显示文件内容的命令()A.cat B.less C.more D.file6. 删除文件命令rm 与()
23、选项配合使用可以完整的删除整个目录,无需事先删除目录中的内容。A.-l B.-t C.-r D.-a7. linux命令行中,“.”表示()A.当前目录 B.上一级目录 C.根目录 D.宿主目录8. 更改文件权限命令是chmod,基本格式是chmod ugoa+-=rwxFILE.,其中“ugoa”表示权限设置针对的用户类别,“o”表示的是()。A. 文件属主 B. 文件属组 C. 除属主和属组之外的其他用户 D. 所有用户9. 用户口令保存在()文件中。A.passwd B.shadow C.group D.skel10. 列目录命令ls与“-c”选项搭配使用表示()A.显示所有文件及目录
24、B.按列输出,纵向排序C.按列输出,横向排序 D.根据文件建立时间的先后次序列出解答:1. D2. B3. C4. A5. D6. C7. A8. C9. B10. B三.判断1. Linux系统的应用主要涉及4个方面:应用服务器、嵌入式领域、软件开发以及桌面应用。2. Linux系统具有开放性,多用户和多任务的优点,缺点是没有提供良好的用户界面。( )3. Shell是Linux操作系统的核心。( )4. Unix内核是一个不可分割的静态可执行块,即是单一内核,而Linux不是单一内核。( )5. Linux的模块化设计,抢占式内核带有微内核的影子。( )6. Linux不提供具有设备类的面
25、向对象设备模型,热插拔事件以及用户空间的设备文件系统。( )7. Linux是一个可移植性的操作系统。( )8. Linux系统在内核中的内存都不分页,故需要关注物理内存的大小。( )9. 在描述文件时,有时在文件名部分用到一些通配符,“*” 表示该位置可以是一个任意的单个字符 。( )10. cat命令适合查看长文件。( )解答:1. 对2. 错3. 错4. 错5. 对6. 错7. 对8. 对9. 错10. 错四.名词解释1. 单内核2. 微内核3. 内核4. Shell5. BusyBox解答:1. 整体上被作为一个单独的大过程实现,并同时运行在一个单独的地址空间。它具有简单高性能的特点,
26、被大多数Unix系统所采用。2. 被划分为独立的过程,每个过程为一个服务器,各种服务器之间通过进程间通信(IPC)机制互通消息,避免了服务器之间的失效传递,Windows NT和Mac OS X采用微内核。3. 内核是一个用来和硬件打交道并为用户程序提供一个有限服务集的低级支撑软件。一个计算机系统是一个硬件和软件的共生体,它们互相依赖,不可分割。4. Shell是操作系统中运行的程序,与系统中的其他程序不同,Shell程序位于操作系统与用户之间,负责接受用户输入的命令,在对已输入的命令进行解释后,将需要执行的命令程序传递给操作系统内核执行,因此Shell程序充当了一个“命令解释器”的角色。5.
27、 BusyBox是标准 Linux 工具的一个单个可执行实现。BusyBox 包含了一些简单的工具,还包含了一些更大、更复杂的工具,。有些人将 BusyBox 称为 Linux 工具里的瑞士军刀。简单的说BusyBox就好像是个大工具箱,它集成压缩了 Linux 的许多工具和命令。五.简答题解答:六.应用题解答:第四章 基于Linux平台的应用程序开发一.填空1. 在系统提示符号输入vi及文件名称后,就进入vi全屏幕编辑画面,进入vi之后,是处于_模式,要切换到_模式才能够输入文字。2. 在vi编辑中,可以使用键盘移动光标,按数字_,移到文章的开头,按_则移动到文章的最后。3. 使用vi编辑器
28、的末行命令_可以在编辑器中显示行号,同样在末行模式下使用_命令可以取消行号的显示。4. GCC的编译流程分为4个步骤,分别为:_ ,编译,_ ,链接。5. 一个简单的Makefile文件包含一系列的“规则”,其中_通常是要产生的文件的名称_是用来输入从而产生目标的文件。6. _是Make执行的动作,每个命令行前面必须是一个_字符。7. shell变量类型,只有_,变量可以被赋值,被修改,_。8. 变量引用中,在变量名前加$号,代表_,引用一个未定义的变量,变量值为_ 。9. 逻辑运算中,有几个基本的语法,其中-o表示_,_表示与(AND)。10. shell脚本文件的首行内容是指定shell环
29、境,shell环境的设置以_开始,后面为需要使用的shell程序的_名。解答:1. 命令行;插入2. 0;G3. set nu;set nonu4. 预处理; 汇编5. 目标;依赖6. 命令;Tab7. 字符串型;被引用8. 变量内容;空字符串9. 或者(OR);-a10. “#!”;全路径二.选择1. 在vi编辑环境中有3种模式状态,下面不属于这3种模式状态的是()。A. 命令行模式 B. 插入模式 C. 底行模式 D.编辑模式2. 在下面退出vi环境的命令中,()是退出的同时不对当前文件的修改进行任何保存。A. :q! B. :wq C. :q D. :w3. 下面()选项不是从命令行模式
30、切换到插入模式。A. i B. o C. ESC D. a4. vi可以直接用键盘上的光标来上下左右移动,但正规的vi是用小写英文字母进行移动,其中h表示()A. 向左移动光标 B. 向右移动光标 C. 向上移动光标 D.向下移动光标5. 在GCC的常用选项中,()表示编译为汇编代码。A. c B. S C. E D.-g6. gdb基本命令中,()命令表示执行一行源代码但不进入函数内部。A. run B. next C. file D. step7. Makefile中目标的例子不会是()。A. 可执行文件 B. OBJ文件 C. 伪目标 D. 链接8. shell变量名命名中不包括()。A
31、. 字母 B. 数字 C. 下划线 D.括号9. 创建的shell变量,默认为()。A. 环境变量 B. 全局变量 C. 局部变量 D. 静态变量10. test命令主要提供了判断功能,语法格式为:test dfrwxsfile,其中-f file表示()。A. 文件file存在且为目录文件 B. 文件file存在且为普通文件C. 文件file存在且文件长度为非零 D. 文件file存在且为可执行文件解答:1. D2. A3. C4. A5. B6. B7. D8. D9. C10. B三.判断1. Unix区分大小写,Linux不区分大小写。( )2. 按o进入插入模式后,是插入新的一行,从
32、行首开始输入文字。( )3. 在vi编辑器中,x表示每按一次,删除光标所在位置的前面一个字符。( )4. 在编译阶段,GCC首先要检查代码的规范性、是否有语法错误等,在检查无误后,GCC把代码翻译为汇编语言。( )5. Gdb是一款GNU开发组织并发布的UNIX/Linux下的程序调试工具,可以一行行的执行代码。( )6. Makefile的基本结构是文本文件。( )7. 一个 makefile 文件中可定义多个目标,利用 make target 命令可指定要编译的目标,如果不指定目标,则使用最后一个目标。( )8. shell变量定义规则,不需要事先定义,直接赋值定义新变量,直接赋值修改原变
33、量的值。( )9. 命令和命令test功能等价,区别是前者要求其最后一个命令行参数必须为右方括号。( )10. 大括号与括号的区别:括号括起的一组命令是在shell进程中进行,大括号括起的一组命令是在子shell中进行,括号内命令执行完毕后,子shell就会终止,返回父shell。( )解答:1. 错2. 对3. 错4. 对5. 对6. 对7. 错8. 对9. 对10. 错四.名词解释解答:五.简答题1. Linux文本编辑器有哪几类,不同分类之间的区别是什么?2. 简述GCC的编译流程。3. Gdb有哪些功能,并列举常用的Gdb基本命令。4. 一个简单的Makefile文件包含一系列的“规则
34、”,请描述“规则”的样式。5. Shell变量用于在Shell程序中保存系统和用户需要使用的值,Shell变量可分为4种类型,请简述这4中类型。解答:1. Linux文本编辑器有4类,分别为:行编辑器,全屏编辑器,字符界面编辑器和图形界面编辑器。(1) 行编辑器是以行为单位进行编辑的文本编辑器,当编辑完成某一行的文本内容并回车后,开始下一行的编辑,此时将不能任意返回文件前面的行进行编辑。(2) 全屏幕编辑器能够在编辑器的屏幕上编辑文件中所有行的文本内容。(3) 字符界面的编辑器占用系统资源小,运行效率高,可广泛地适用于各种场合,但是字符界面编辑器存在着用户界面不够友好,操作不够简单等方面的缺点
35、。(4) 图形界面编辑器是在Linux图形界面下运行的文本编辑程序,通常工作在X-Window图形环境中。2. 1预处理在该阶段,编译器分析处理源代码文件中的各种宏指令,如include等。2编译在该阶段,GCC首先要检查代码的规范性、是否有语法错误等,在检查无误后,GCC把代码翻译为汇编语言。3. 汇编在该阶段,编译器把编译生成的汇编代码转成二进制目标代码。4. 链接在该阶段,编译器把汇编阶段生成的二进制代码、程序中用到的库文件链接起来,生成可执行文件。3. (1)Gdb是一款GNU开发组织并发布Linux下的程序调试工具。它使用户能在程序运行时观察程序的内部结构和内存的使用情况。以下是 g
36、db 所提供的一些功能: 1.它使用户能监视你程序中变量的值. 2.它使用户能设置断点以使程序在指定的代码行上停止执行. 3.它使用户能一行行的执行你的代码.(2)Gdb基本命令: file装入想要调试的可执行文件. kill终止正在调试的程序 list列出产生执行文件的源代码的一部分. next 执行一行源代码但不进入函数内部.4. “规则”的样式如下:目标:依赖命令(command)目标通常是要产生的文件的名称,目标的例子是可执行文件或OBJ文件。目标也可是一个执行的动作名称,这样的目标通常称为伪目标。依赖是用来输入从而产生目标的文件,一个目标经常有几个依赖。命令是Make执行的动作,一个
37、规则可以含有几个命令,每个命令占一行。5. (1)环境变量环境变量是用户登录时Linux系统为用户预先设定好的一类Shell变量。环境变量的功能是设置用户在当前Shell中的工作环境,包括用户宿主目录,命令查找路径,用户当前目录等。(2)预定义变量预定义变量是Linux系统中已经定义好的变量,用户只能使用预定义变量,而不能创建或赋值预定义变量。所有的预定义变量都由“$”符和另一符号组成。(3)位置变量位置变量与Shell脚本程序执行时所使用的命令参数相对应,命令行中的参数按照从左到右的顺序赋值给位置变量。(4)用户自定义变量(本地变量)用户自定义变量是Shell用户自己定义的变量,只在用户自己
38、的Shell中有效,因此又称为本地变量六.应用题1. 使用shell脚本编程求解1+3+5+.+99的和。2. 使用shell脚本编程求解10!。3. 在根目录下有四个文件f1.txt,f2.txt,f3.txt,f4.txt,用Shell编程,实现自动创建m1,m2,m3,m4四个目录,并将f1.txt,f2.txt,f3.txt,f4.txt四个文件分别拷贝到m1,m2,m3,m4四个目录下。4. 编写一个名为myshell.sh的脚本,它包括以下内容:1) 包含一段注释,列出您的姓名、脚本的名称。2) 问候用户。3) 显示日期和时间。4) 显示这个月的日历。5) 显示您的机器名。6) 显
39、示当前这个操作系统的名称和版本。7) 显示变量PATH和HOME的值。8) 显示磁盘使用情况。9) 用id命令打印出您的组ID。10) 跟用户说“Good bye”5. 设计一个Shell程序,在/userdata目录下建立50个目录,即user1user50,并设置每个目录的权限为 rwxr-xrw-6. 设计一个shell程序,备份并压缩/etc目录的所有内容,存放在/root/bak目录里,且文件名为如下形式yymmdd_etc,yy为年,mm为月,dd为日。7. 编写shell程序,实现自动增加10个用户账号的功能。账号名为user1至user2,然后再将它们删除。8. 有如下含有3个
40、目标体的makefile文件:test: kang.o yul.ogcc kang .o yul.o -o testkang.o: kang.c kang.h gcc -Wall -O -g -c kang.c -o kang.oyul.o: yul.c yul.h gcc -Wall -O -g -c yul.c -o yul.o为了简化编写,请将上述文件使用自动变量替换实现。并且根据makefile的隐含规则,将其在简化。9. 用vi在同一目录下已经编辑了两个简单的hello程序,分别为hello.c和hello.h,请先在同一目录下用vi编辑makefile,用一个目标体实现;然后再将其
41、使用变量替换实现。10. 用vi在同一目录下已经编辑了两个简单的test程序,分别为test.c和test.h,请先在同一目录下用vi编辑makefile,用两个目标体实现;然后再将其使用变量替换实现。解答:1. #!/bin/bashsum=0i=0while $i -le 99 do sum=$(sum+i) i=$(i+2)doneecho the answer:$sum2. #!/bin/bashmult=1i=1while $i -le 10 do mult=$(mult*i) i=$(i+1)doneecho the answer:$mult3. #!/bin/bashcd /ro
42、ot/touch f1.txt f2.txt f3.txt f4.txti=1while $i -le 4 do mkdir m$i cp f$I.txt m$i i=$(i+1)done4. #!/bin/bash#name myshell.shuser=whoamicase $user inroot)echo hello root;zz)echo hello zz;*)echo hello $user,welcomeesacecho 日期和时间: dateecho 本月的日历: calecho 本机的机器名:uname -necho 当前这个操作系统的名称和版本:uname -s;unam
43、e -recho PATH的值:$PATHecho HOME的值:$HOMEecho 磁盘的使用情况:dfecho 用id命令打印出你的组ID:id -gecho Good bye!5. #!/bin/bashcd /root/dirai=1while $i -le 10 do mkdir -p /root/dira/user$i chmod u=rwx /root/dira/user$ichmod g=rx /root/dira/user$ichmod o=rw /root/dira/user$i i=$(i+1)done6. #!/bin/bashdirname=ls /root|grep
44、 bak if -z $dirname ; then mkdir /root/bak cd /root/bakfiyy=date + %Ymm=date + %mdd=date + %dtar czvf $yy$mm$dd_etc.gz /etcecho etc bak is finshied7. #!/bin/bashi=1while $i le 10 doadduser user$ii=$(i+1)donej=1while $jle 10 douserdel user$jj=$(j+1)done8. OBJS = kang.o yul.oCC = gccCFLAGS = -Wall -O
45、gtest: $(OBJS)$(CC) $ -o $kang.o:kang.c kang.h $(CC) $(CFLAGS) c $ -o $yul.o:yul.c yul.h $(CC) $(CFLAGS) c $ -o $根据隐含规则,上述makefile文件可以写成:OBJS = kang.o yul.oCC = gccCFLAGS = -Wall -O gtest: $(OBJS)$(CC) $ -o $9. 用vi编辑makefile: hello:hello.c hello.h gcc hello.c o hello用vi打开makefile,用变量进行替换: OBJS :=hel
46、lo.o CC :=gcchello:$(OBJS) $(CC) $ -o $10. 用vi编辑makefile:hello:hello.o gcc hello.o o hellohello.o:hello.c hello.h gcc c hello.c o hello.o用vi打开makefile,用变量进行替换:OBJS1 :=hello.oOBJS2 :=hello.c hello.hCC :=gcchello:$(OBJS1) $(CC) $ -o $(OBJS1): $(OBJS2) $(CC) c $ -o $第五章 内核初始化一.填空1. 为桌面计算机加电后,_软件系统会立即接管
47、对系统处理器的控制,该软件系统都是保存在_里面的,以便对该软件系统进行必要的升级工作。2. 在嵌入式系统中,当系统加电后,_所带的引导装入程序将立即接管_的控制权。3. Linux需要一个文件系统,文件系统包含了预先定义的一组_以及文件,它们都保存到硬盘驱动器或者其他媒介之中,Linux内核将其挂载为_。4. 当Linux内核完成所有内部初始化工作并且挂载了根文件系统之后,默认将启动名为_的应用程序,这就意味着系统将运行在_或者用户空间上下文中。5. 第二阶段引导装入程序的主要作用是充当开发板级的_和_之间的纽带。6. 内核入口点 head.o模块需要针对内核主体进行_级或_级的初始化。7.
48、Linux内核的所有启动任务都由内核C源程序_完成,通过初始化,内核的第一个线程将挂载一个_,同时会执行用户空间下的第一个应用程序。8. 引导装入程序或第二阶段引导装入程序通过一系列被称为_的参数实现对Linux的引导,尽管在实际中并不是通过shell命令提示来调用内核,但是引导装入程序常常采用将参数传递给_这种模式。9. 许多Linux子系统的初始化代码都可在main.c中找到,一些子系统所采用的初始化机制与_setup宏非常类似,简单地讲,_会为不同的初始化程序创建_,同时采用简单的循环机制依次执行。10. 在引导过程中运行着两个截然不同的线程:一个是_;另一个就是_。解答:1. BIOS
49、;闪存2. 目标板 系统处理器3. 系统目录树;根文件系统4. Init;用户空间5. 引导装入程序;内核6. 体系结构;CPU7. main.c;根文件系统8. 内核命令行;Linux内核9. 目标代码链接器;函数指针列表10. start_kernel();init()二.选择1. 引导装入程序在系统加电之后需要完成几项比较重要的任务,下面选项中错误的是()A初始化关键硬件组件 B. 初始系统化内存 C. 分配系统资源 D. 将必要的启动信息传递到硬盘2. 在Linux中,根据指定线程的运行环境,我们可以把它分为两个独立的运行上下文,当线程完全运行在内核空间时,我们称之为()。A. 内核上下文 B.用户空间上下文 C.进程上下文 D.特殊的上下文3. ()对处理器和必要的内存区域进行初始化,解压缩二进制内核映像并且在转交对系统的控制权之前把它加载到系统内存的合适位置。 A. 引导装入程序 B. 第二阶段引导装入程序 C. 操作系统 D. Lin
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新《政府会计制度》下行政事业单位财务管理研究
- 四川电影电视学院《大学生网络安全教育》2022-2023学年第一学期期末试卷
- 石河子大学《中国当代文学一》2022-2023学年第一学期期末试卷
- 石河子大学《学前儿童社会性发展与指导》2022-2023学年第一学期期末试卷
- 石河子大学《网络与信息安全》2023-2024学年期末试卷
- 石河子大学《软件项目管理》2021-2022学年期末试卷
- 石河子大学《电工学实验》2022-2023学年期末试卷
- 沈阳理工大学《中国古典园林》2021-2022学年第一学期期末试卷
- 沈阳理工大学《现代控制理论基础》2023-2024学年期末试卷
- 沈阳理工大学《嵌入式系统设计》2021-2022学年第一学期期末试卷
- 天津市基本医疗保险意外伤害首诊报告卡
- 北京市第十届迎春杯小学数学竞赛决赛试卷
- 大象版五年级科学上册第五单元《小小机械师》全部课件(共5课时)
- 《民航地面服务与管理》课程标准
- 陶瓷釉料配方600例
- Unit+5+Into+the+Unknown+Understanding+ideas+教学设计 高二下学期英语外研版(2019)选择性必修第四册
- 装订档案封皮打印模板
- 血管外科手术介入治疗基础知识课件
- 23331-2020能源管理体系要求及使用指南
- “玩工”与“玩乐劳动”:数字资本主义的游戏形式、同意制造与价值剥削
- UG软件的高级仿真教程
评论
0/150
提交评论