孟祥莲嵌入式系统原理及应用教程部分习题答案0618Word格式.docx
- 文档编号:16822526
- 上传时间:2022-11-26
- 格式:DOCX
- 页数:7
- 大小:79.52KB
孟祥莲嵌入式系统原理及应用教程部分习题答案0618Word格式.docx
《孟祥莲嵌入式系统原理及应用教程部分习题答案0618Word格式.docx》由会员分享,可在线阅读,更多相关《孟祥莲嵌入式系统原理及应用教程部分习题答案0618Word格式.docx(7页珍藏版)》请在冰豆网上搜索。
7.嵌入式操作系统的主要特点是什么?
体积小;
实时性;
特殊的开发调试环境。
8.叙述嵌入式系统的分类。
按嵌入式微处理器的位数分类可以分为4位、8位、16位、32位和64位等;
按软件实时性需求分类可以分为非实时系统(如PDA),软实时系统(如消费类产品)和硬实时系统(如工业实时控制系统);
按嵌入式系统的复杂程度分类可以分为小型嵌入式系统,中型嵌入式系统和复杂嵌入式系统。
习题2
1.ARM9处理器和工作状态有哪些?
ARM状态:
此时处理器执行32位的的字对齐的ARM指令。
Thumb状态:
此时处理器执行16位的,半字对齐的Thumb指令
2.叙述ARM9内部寄存器结构,并分别说明R13、R14、R15寄存器的作用。
共有37个内部寄存器,被分为若干个组(BANK),这些寄存器包括31个通用寄存器,包括程序计数器(PC指针)6个状态寄存器。
R13用作堆栈指针,R14称为子程序链接寄存器,R15用作程序计数器。
4.ARM处理器的工作模式有哪些?
用户模式:
ARM处理器正常的程序执行状态。
快速中断模式:
用于高速数据传输或通道处
改变,如果处理器运行特权模式,这些位也可以由程序修改。
③保留位:
CPSR中的其余位为保留位,当改变CPSR中的条件码标志位或者控制位时保留位不要被改变,在程序中也不要使用保留位来存储数据
习题3
1.ARM指令有哪几种寻址方式?
试分别叙述其各自的特点,并举例说明。
①寄存器寻址:
寄存器寻址就是利用寄存器中的内容作为操作数,寄存器本身就是操作数地址,例:
MOVR2,R3;
R2—R3指R3中的内容赋给R2
②立即寻址:
操作数没有存储在寄存器或存储器中,而是包含在指令的操作码中,只要取出指令也就取到了操作数.例:
ADDR1,R2,#1234;
R1—R1+1234
③寄存器间接寻址:
以寄存器中的内容作为操作数的地址,而操作数本身存放在存储器中。
例:
LDRR1,[R2];
R1—[R2]
④变址寻址:
将寄存器的内容与指令中给出的地址偏移量相加,从而得到一个操作数的有效地址。
例LDRR0,[R1,#8];
R0—[R1+8]⑤寄存器移位寻址:
操作数由寄存器的数值进行相应移位而得到例MOVR0,R1,LSL#4
⑥多寄存器寻址:
一条指令可以完成多个寄存器值的传送例:
LDMIAR1,{R2—R4,R5};
R2—[R1]R3—[R1+4]R4—[R1+8]R5—[R1+12]
⑦堆栈寻址:
一种数据结构,按先进后出的方式工作,使用一个称作堆栈指针的专用寄存器指示当前的操作位置,堆栈指针总是指向栈顶。
⑧相对寻址:
以程序计数器PC的当前值为基地址,指令中的地址标号作为为偏移量,将两者相加之后得到操作数的有效地址
2.简述ARM9指令集的分类
交换指令、ARM数据处理器指令、ARM分支指令、ARM协处理器指令⑤ARM软件中断指令
4.请叙述处理器如何实现ARM状态和Thumb状态的切换。
进入Thumb状态:
当操作数寄存器的状态位(位0)为1时,可以采用执行BX指令的方法,使微处理器从ARM状态切换到Thumb状态,此外,当处理处于Thumb状态时发生异常,则异常返回时,自动切换到Thumb状态。
进入ARM状态:
当操作数寄存器的状态位为0时,执行BX指令时可以微处理器从Thumb状态切换到ARM状态,此外,在处理器进行异常处理时,把PC指针放入异常模式链接寄存器中,并从异常向量地址开始执行程序,也可以是处理器模式切换到ARM状态
6.简述ARM9的LDM/STM堆栈指令中空、满,递增、递减的含义。
当堆栈指针指向最后压入堆栈的数据时,称为满堆栈。
当堆栈指针指向下一个将要放入数据的空位置时,称为空堆栈;
当堆栈由低向低地址向高地址生成时,称为递增堆栈;
当堆栈由高地址向低地址生成时,称为递减堆栈
10.BX和BL指令有什么不同
BX指令是分支和交换指令,寄存器的地址是目标地址其中的位[0]不是地址信息,当寄存器的位[0]为1时,表明目标地址处是Thumb指令,当寄存器的位[0]为0时,表明目标地址是ARM指令,此时,要求字对准,BL指令是分支和链接指令,将一条指令的地址复制到R14,并引起处理器移位到目标地址,但目标地址不可以是ARM指令,BL指定不能转移到当前指令+4MB以外的地址。
习题4
1.ARM伪指令与Thumb伪指令有什么区别?
与ARM指令相关的伪指令共有4条:
ADR、ADRL、LDR、NOP,这四条伪指令和通用的指令不同,在程序编译过程中,编译程序会为这四条指令产生代码,但这些代码不是它们自己的代码,所以尽管它们可以产生代码,但还是伪指令,与Thumb指令相关的伪指令共有3条,ADR、LDR、NOP,但这些伪指令必须出现在Thumb程序段。
3.编写一个完整的程序,结构是什么?
在汇编语言程序中,用AREA伪指令定义一个段,并说明所定义段的相关属性,ENTPY伪指令标示程序的入口点,接下来为语句段,执行主代码后,通过返回控制终止应用程序,并返回到DEBDG通过使用软件中断指令实现返回,在程序的末尾为END伪指令,该伪指令通知编译器停止对源文件的处理,每一个汇编程序段都必须有一条END伪指令,指示代码段的结束。
4..汇编语言中的表达式有哪些?
试举例说明
数字表达式、逻辑表达式、字符串表达式、以寄存器和程序计数器(PC)为基址的表达式。
BASE:
A.
5.汇编语言中的运算符有哪些?
试说明它们的特点及使用方法.
数字运算符:
表明两个表达式之间的关系。
算术运算符“+”、“-”、“x”及“MOD”
移位运算符”RDR”、“RDL“、“SHL、“SHR“
逻辑运算符“AND”、“OR”、“NOT”、”EOR”
逻辑运算符包括LAND,LDR,LNOT,LEOR运算符
关系运算符:
“=”、“>
“、“>
=”,“=<
”,“/=”、“<
”运算符
单目运算符,双目运算符
7.汇编语言与C/C++的混合编程通常有几种方式?
有三种方式:
在C/C++代码中嵌入汇编指令;
在汇编程序和C/C++的程序之间进行变量的互访;
汇编程序,C/C++程序间的相互调用。
习题5
1.S3C2440A芯片外部可寻址的存储空间是多少?
答S3C2440A芯片外部可寻址的存储空间是1GB,被分为8个存储模块,每块128MB
2.S3C2440A中的中断控制器可以从多少个中断源接收中断请求?
S3C2440A中的中断控制器可以60个中段源接收中断请求。
这些中断源由内部的外围I/O端口或部件如DMA控制器,UART,IIC等提供。
4.S3C2440A芯片有几个通道DMA,共有多少个寄存器?
S3C2440A芯片有4个通道DMA,共有36个寄存器,其中6个用于控制DMA传输,3个用于监视DMA的控制器的状态。
5.看门狗定时器原理是什么?
看门狗定时器用于当噪音或系统错误引起故障时恢复控制器操作的定时,看门狗定时器是一普通的16位时间间隔定时器,定时溢出来请求中断服务,每128个PCLK时钟周期产生一个复位信号。
6.触摸屏接口模式分为几类?
触摸屏接口模式可分为:
正常转换模式、分离xy坐标转换模式、自动xy坐标转换模式、等待中断模式、备用模式
习题6
1.S3C2440A芯片的
总线时序中,ACK信号的作用是什么?
结合相应的时序图加以说明
在完成一个字节的传输操作后,接收器应该发送一个ACK位给发送器。
ACK位应该出现在SCL线的第9个时钟,当接收器收到第9个时钟周期时,发送器应该通过使SDA
信号线变为高电平来释放SDA信号线变为低电平,以便使SDA信号线保持在低电平,而发出ACK信号。
2.S3C2440A芯片的
总线有几条信号线?
分别是什么?
答:
总线有4线,即串行数据输入(IISDI),串行数据输出(IISDD),左右通道选择(IISLRCK)和串行位时钟(IISCLK)
3.S3C2440A中的音频串行接口D模式是什么?
总线格式、MSBJUSTIFIED格式、采样频率和主设备时钟
4.S3C2440A芯片的AC97控制器的操作流程是什么?
答内部数据通路流程图操作AC—link数字接口协议AC97掉电
5.S3C2440A的摄像头接口由哪几部分组成?
共由图像多路复用器,捕捉单元,预览计数器,多媒体数字信号编解码器,DMA预览,DMA编解码器及特殊功能寄存器7个部分组成。
习题7
1.CodeWarriorIDE包括什么功能?
<
1>
建立一个工程<
2>
编译和链接工程
3.什么是交叉编译?
为什么要进行交叉编译?
交叉编译是嵌入式操作系统开发过程中的一项重要技术。
其主要特征是某机器中执行的程序代码不是在本机编译生成,而是在另一台机器编译生成。
一般前者成为目标机,后者称为主机
采用交叉编译的原因在于多数嵌入式目标系统不能提供足够的资源供编译过程使用,因而只好将编译过程转移到高性能的主机上进行。
这就需要在强大的PC上建立一个用于目标机的交叉编译环境。
4.Linux下的交叉编译环境主要包括几部分?
<
针对目标系统的编译器GCC。
针对目标系统的二进制工具binutils;
3>
目标系统的标准C库glibc,有时出于减小libc库大小的考虑,也可以用别的C库来代替glibc,例如uclibc,newlibc等;
4>
目标系统的LInux内核头文件。
7.简述嵌入式系统开发流程?
驱动调试的准备<
调试
10.简述嵌入式系统的交叉调试方法?
内核打FP函数获取内核信息处理出错信息内核源码调试
习题8
1.什么是Bootloader?
Bootloader就是在操作系统内核运行之前运行的一段程序,通过这段程序可以初始化硬件设备,以便为最终调用操作系统内核准备好环境。
2..简述Bootloader的启动过程。
首先加载引导程序,然后进入Linux内核,接着是文件系统,最后进入用户应用程序。
可以放在FLASH里启动,或者用Jtag仿真器.由于使用NORFLASH,根据2410的手册,片内的4KDRAM在不需要设置便可以直接使用,而其他存储器必须先初始化,比如告诉memorycontroller,BANK6里有两块SDRAM,数据宽度是32bit,==.否则memorycontrol会按照复位后的默认值来处理存储器.这样读写就会产生错误.
所以第一步,通过仿真器把执行代码放到0x4000_0000,(在编译的时候,设定TEXT_BAS
E=0x40000000)
第二步,通过AxD把linuxKERNELIMAGE放到目标地址(SDRAM)中,等待调用
第三步,执行BOOTLOADER代码,从串口得到调试数据,引导armlinux
3.vivi运行可以分为几个阶段?
说明每个阶段的主要工作
vivi运行分为两阶段,第一阶段是完成含依赖于CPU的体系结构硬件初始化代码,第二阶段是main()函数开始,同一般的C语言程序一样/init/main.c文件中,然后进行初始化工作。
4.简述ARMLinux内核启动三个阶段的功能
第一阶段功能为系统选择映像,第二阶段可以启动Linux内核,第三阶段主要完成剩余的与硬件平台相关的初始化工作,在进行一系列与内核相关的初始化工作后,调用第一个用户进程,这样整个Linux内核启动完成该函数所有具体工作。
5.ARM系统中Bootloader的主要作用是什么?
初始化硬件设备、操作系统引导。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 孟祥莲 嵌入式 系统 原理 应用 教程 部分 习题 答案 0618