微处理器系统结构与嵌入式系统设计(第二版)答案全

更新时间:2024-06-04 07:59:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

“微处理器系统结构与嵌入式系统设计”第一章习题解答

1.2 以集成电路级别而言,计算机系统的三个主要组成部分是什么?

中央处理器、存储器芯片、总线接口芯片 1.3 阐述摩尔定律。

每18个月,芯片的晶体管密度提高一倍,运算性能提高一倍,而价格下降一半。

1.5 什么是SoC?什么是IP核,它有哪几种实现形式?

SoC:系统级芯片、片上系统、系统芯片、系统集成芯片或系统芯片集等,从应用开发角度出发,其主要含义是指单芯片上集成微电子应用产品所需的所有功能系统。

IP核:满足特定的规范和要求,并且能够在设计中反复进行复用的功能模块。它有软核、硬核和固核三种实现形式。

1.8 什么是嵌入式系统?嵌入式系统的主要特点有哪些?

概念:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积和功耗的严格要求的专用计算机系统,即“嵌入到应用对象体系中的专用计算机系统”。

特点:1、嵌入式系统通常是面向特定应用的。

2、嵌入式系统式将先进的计算机技术、半导体技术和电子技术与各个行业的具体应用相结合的产物。

3、嵌入式系统的硬件和软件都必须高效率地设计,量体裁衣、去除冗余,力争在同样的硅片面积上实现更高的性能。

4、嵌入式处理器的应用软件是实现嵌入式系统功能的关键,对嵌入式处理

器系统软件和应用软件的要求也和通用计算机有以下不同点。

① 软件要求固体化,大多数嵌入式系统的软件固化在只读存储器中; ② 要求高质量、高可靠性的软件代码; ③ 许多应用中要求系统软件具有实时处理能力。

5、嵌入式系统和具体应用有机的结合在一起,它的升级换代也是和具体产品同步进行的,因此嵌入式系统产品一旦进入市场,就具有较长的生命周期。

6、嵌入式系统本身不具备自开发能力,设计完成以后用户通常也不能对其中的程序功能进行修改,必须有一套开发工具和环境才能进行开发。

第二章习题答案

2.2 完成下列逻辑运算

(1) 101+1.01 = 110.01 (2) 1010.001-10.1 = 111.101

(3) -1011.0110 1-1.1001 = -1100.1111 1 (4) 10.1101-1.1001 = 1.01 (5) 110011/11 = 10001 (6) (-101.01)/(-0.1) = 1010.1

2.3 完成下列逻辑运算

(1) 1011 0101∨1111 0000 = 1111 0101 (2) 1101 0001∧1010 1011 = 1000 0001 (3) 1010 1011⊕0001 1100 = 1011 0111

2.4 选择题

(1) 下列无符号数中最小的数是( A )。

A.(01A5)H C.(2590)D

B.(1,1011,0101)B D.(3764)O

(2) 下列无符号数中最大的数是( B )。

A.(10010101)B B.(227)O C.(96)H D.(143)D

(3) 在机器数( A )中,零的表示形式是唯一的。

A.补码 B.原码 C.补码和反码 D.原码和反码

(4) 单纯从理论出发,计算机的所有功能都可以交给硬件实现。而事实上,硬件只

实现比较简单的功能,复杂的功能则交给软件完成。这样做的理由是(BCD)。

A.提高解题速度 B.降低成本

C.增强计算机的适应性,扩大应用面 D.易于制造

(5) 编译程序和解释程序相比,编译程序的优点是(D),解释程序的优点是(C)。

A.编译过程(解释并执行过程)花费时间短 B.占用内存少

C.比较容易发现和排除源程序错误 D.编译结果(目标程序)执行速度快

2.5通常使用逻辑运算代替数值运算是非常方便的。例如,逻辑运算AND将两个位组合的方法同乘法运算一样。哪一种逻辑运算和两个位的加法几乎相同?这样情况下会导致什么错误发生?

逻辑运算OR和两个位的加法几乎相同。问题在于多个bit的乘或加运算无法用AND或OR运算替代,因为逻辑运算没有相应的进位机制。

2.6 假设一台数码相机的存储容量是256MB,如果每个像素需要3个字节的存储空间,而且一张照片包括每行1024个像素和每列1024个像素,那么这台数码相机可以存放多少张照片?

每张照片所需空间为:1024*1024*3=3MB 则256M可存照片数为:256MB/3MB≈85张。

2.14某测试程序在一个40 MHz处理器上运行,其目标代码有100 000条指令,由如下各类指令及其时钟周期计数混合组成,试确定这个程序的有效CPI、MIPS的值和执行时间。

指令类型 整数算术 数据传送 浮点数 控制传送

CPI=(45000/100000)*1+(32000/100000)*2+(15000/100000)*2+(8000/100000)*2=0.45*1+0.32*2+0.15*2+0.08*2=1.55 MIPS=40/1.55=25.8

指令计数 45 000 32 000 15 000 8000 时钟周期计数 1 2 2 2 执行时间T=(100000*1.55)*(1/(40*106) )=15.5/4*10(-3)= 3.875*10(-3) s= 3.875ms

2.15 假设一条指令的执行过程分为“取指令”、“分析”和“执行”三段,每一段的时间分别为?t,2?t和3?t。在下列各种情况下,分别写出连续执行n条指令所需要的时间表达式。

∧∧∧

(1) 顺序执行方式

T= (?t+2?t+3?t)*n=6n?t

(2) 仅“取指令”和“执行”重叠

当“取指令”和“执行”重叠时,指令的执行过程如图所示:

第1条指令执行完的时间:t1=?t+2?t+3?t=6?t 第2条指令执行完的时间:t2= t1+5?t=6?t+5?t*1 第3条指令执行完的时间:t3= t2+5?t=6?t+5?t*2 ?

第n条指令执行完的时间:tn= tn-1+?t=6?t+5?t*(n-1)=(1+5n)?t

(3) “取指令”、“分析”和“执行”重叠

当“取指令”、“分析”和“执行”重叠时,指令的执行过程如图所示:

第1条指令执行完的时间:t1=?t+2?t+3?t=6?t 第2条指令执行完的时间:t2= t1+3?t=6?t+3?t*1 第3条指令执行完的时间:t3= t2+3?t=6?t+3?t*2 ?

第n条指令执行完的时间:tn= tn-1+3?t=6?t+3?t*(n-1)=(3+3n)?t

“微处理器系统原理与嵌入式系统设计”第三章习题解答

3.1处理器有哪些功能?说明实现这些功能各需要哪些部件,并画出处理器的基本结构图。

处理器的基本功能包括数据的存储、数据的运算和控制等功能。其有5个主要功能:①指令控制②操作控制③时间控制④数据加工⑤中断处理。其中,数据加工由ALU、移位器和寄存器等数据通路部件完成,其他功能由控制器实现。处理器的基本结构图如下:

数据传送到内存数据来自内存数据传送到内存指令来自内存控制器寄存器组整数单元数据通路处理器浮点单元

3.2处理器内部有哪些基本操作?这些基本操作各包含哪些微操作?

处理器内部的基本操作有:取指、间接、执行和中断。其中必须包含取指和执行。 取指包含微操作有:经过多路器把程序计数器的值选送到存储器,然后存储器回送所期望的指令并将其写入指令寄存器,与此同时程序计数器值加1,并将新值回写入程序计数器。

间接有4个CPU周期,包含微操作有:第1周期把指令寄存器中地址部分的形式地址转到地址寄存器中;第2周期完成从内存取出操作数地址,并放入地址寄存器;第3周期中累加器内容传送到缓冲寄存器,然后再存入所选定的存储单元。

执行包含微操作有:在寄存器中选定一个地址寄存器,并通过多路器将值送到存储器;来自于存储器的数据作为ALU的一个原操作数,另一个原操作数则来自于寄存器组中的数据寄存器,它们将一同被送往ALU的输入;ALU的结果被写入寄存器组。

中断包含微操作有:保护断点及现场,查找中断向量表以确定中断程序入口地址,修改程序指针,执行完毕后恢复现场及断点。

3.3什么是冯·诺伊曼计算机结构的主要技术瓶颈?如何克服?

ULCON1 EQU 0x50004000 ;UART line control register 0 UCON1 EQU 0x50004004 ;UART control register 0 UFCON1 EQU 0x50004008 ;UART FIFO control register 0 UMCON1 EQU 0x5000400C ;UART modem control register 0 UBRDIV1 EQU 0x50004028 ;UART baud rate divisor register 0 UTRSTAT1 EQU 0x50004010 ;UART TX/RX status register 0 UTXH1 EQU 0x50004020 ;UART transmit buffer register 0 URXH1 EQU 0x50004024 ;UART receive buffer register 0 MPLLCON EQU 0x4C000004 ;MPLL control register

AREA SerialCommunication,CODE,READONLY ENTRY

ldr r2,=MPLLCON ;设置MPLL为0x00076022 FCLK=Mpll=(2*m*Fin)/(p*(2的s次方)), Fin=16.9344MHz ; m=(MDIV+8), p=(PDIV+2), s=SDIV mov r3,#0x22 mov r4,#0x00076000 ADD r3,r3,r4 str r3,[r2]

ldr r2,=CLKDIVN ; CLKDIVN 设置为 0x03, PCLK=FCLK/4 mov r3,#0x03 str r3,[r2]

ldr r2,=CAMDIVN ; CLKDIVN 设置为 0x0200, PCLK=FCLK/4 mov r3,#0x200 str r3,[r2]

ldr r2,=ULCON1 ; ULCON1设置为 0x07, 含义是正常操作模式,无校验,停止位2,8个数据位 mov r3,#0x07 str r3,[r2]

ldr r2,=UCON1 ;UCON1设置为 0x05 表示发送、接收数据都使用查询方式,该处初始化为中断模式也正确 mov r3,#0x05 str r3,[r2]

ldr r2,=UFCON1 ;UFCON1设置为 0x00 为不使用 FIFO mov r3,#0x00 str r3,[r2]

ldr r2,=UMCON1 ;UMCON1设置为 0x00 为不使用流控 mov r3,#0x00

str r3,[r2]

ldr r2,=UBRDIV1 ;UBRDIV1设置为216,含义为波特率设为 19200, 由下面公式算得:UBRDIVn = (int)(PCLK/bps*16)-1

;其中 PCLK =66.68MHz mov r3,#216 strh r3,[r2]

;或者16进制表示0XD8

10.9在上题中,若采用查询方式进行数据传输,要将位于地址 DATA处的100字节发送到其他设备,试画出程序流程图, 并写出相关程序段。

查询方式进行数据传输的代码段如下:

CHECK

LDR R2,=UTRSTAT1

LDR R3,[R2] AND R3,R3,#0X02 CMP R3,#0X02 BNE WAIT SET LDR R5,=DATA LDRB R3,[R5],#1 LDR R2,=UTXH1 STRB R3,[R2]

SUB R5,R5,#1 CMP R5,#0x64

BNE CHECK

10.10在10.8题中,若要实现处理器收到数据0xAA,则回应1字节数据0x55的功能,试画出采用查询方式传输的程序流程图,并写出相关程序段。进一步思考如果采用中断方式工作,需要对软件进行怎样的修改?

相应代码段如下:

CHECK

LDR R2,=UTRSTAT1 LDR R3,[R2] AND R3,R3,#0X01 CMP R3,#0X01 BNE CHECK WAIT

LDR R3,[R2] AND R3,R3,#0X02 CMP R3,#0X02 BNE WAIT SET LDR R2,=URXH1 LDRB R3,[R2]

CMP R3,#0xAA

MOVEQ R3,#0x55

开始 LDR R2,=UTXH1 STRB R3,[R2] B CHECK

配置控制初始化控制字查询收发状态寄存器UTRSTAT1的状态位UTRSTAT1[0] UTRSTAT0[0]=1

是 查询收发状态寄存器UTRSTAT1的状态位UTRSTAT1[1]

否UTRSTAT0[1]=1

是 取出接收寄存器URXH1里的值放入寄存器R5

R5=0xAA否

R5=0x55 将R5的值复位发送寄存器UTXH1

若采用中断方式工作的话,需要将UCON1配置寄存器设为中断工作模式;在接收到数据后触发中断,进入中断子程序,进行相应操作。

否“微处理器系统原理与嵌入式系统设计”第十一章习题解答

1. 简述嵌入式软件系统的分层结构,各层之间有何联系?

嵌入式软件系统主要包括驱动层、操作系统层、中间软件和应用层。 驱动层与硬件直接相连,其为操作系统和应用提供所需驱动支持。

操作系统层从驱动层得到所需的驱动支持,可以调度应用层中各个任务的执行。 中间软件为应用层提供一些面向应用领域的中间件软件。

2. 简述嵌入式软件系统的工作流程,系统引导及加载在该流程中位于何处,有哪些功

能?

工作流程由下图所示:

该执行流程主要分为5个阶段:1.上电复位、板级初始化阶段。2.系统引导/升级阶段。3.系统初始化阶段。4.应用初始化阶段。5.多任务应用阶段。 系统引导及加载在该流程中位于第二阶段,其主要作用是初始化硬件设备、建立内存空间的映射图,然后将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。

11.3 简述U-Boot第一阶段工作的主要任务,它与第二阶段如何衔接?

代码通常放在start.s文件中,用汇编语言写成,其主要功能是设置处理器状态、初始化中断和内存时序、对整个U-Boot目标代码进行重新定位。接着通过下列语句跳转到C代码执行,实现阶段一与阶段二的衔接: ldr pc, _start_armboot _start_armboot: .word start_armboot

本文来源:https://www.bwwdw.com/article/ozm6.html

Top