没有合适的资源?快使用搜索试试~ 我知道了~
嵌入式复习题非常全适合期末复习.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 29 浏览量
2022-07-14
12:19:56
上传
评论
收藏 970KB PDF 举报
温馨提示
试读
24页
嵌入式复习题非常全适合期末复习.pdf
资源推荐
资源详情
资源评论
欢迎共阅
1、 ARM 微处理器有 7 种工作模式,它们分为两类 非特权模式 、
特权模式 。其中用户模式属于 非特权模式
4、ARM 微处理器复位后, PC 的地址通常是 0x0 ,初始的工作模式是
Supervisor 。
5、ARM 微处理器支持虚拟内存,它是通过系统控制协处理器 CP15 和 MMU
(存储管理部件)来进行虚拟内存的存储和管理。当系统发生 数据
异常和 指令领取 异常时,异常处理程序透过嵌入式操作系统的内存管
理机制, 通过 MMU 交换物理内存和虚拟内存的页面, 以保证程序正常执行。
6、编译链接代码时, 有两种存储代码和数据的字节顺序, 一种是 小端对齐 ,
另一种是 打断对齐
7、构建嵌入式系统开发环境的工具链有多种,其中开放源码的工具链是 GNU
工具链 ,ARM 公司提供的工具链是 ADS 工具链
计算机有 CISC 和 RISC 两种类型,以 ARM 微处理器为核心的计算机属于
RISC 类型,其指令长度是 定长的
1、目前使用的嵌入式操作系统主要有哪些?请举出六种较常用的。
Windows CE/Windows Mobile、VxWork、Linux 、uCos、Symbian、QNX任选六
2、ARM 系统中的堆栈有四种,如下图。请按图标出四种堆栈的类型。 ATPCS 编
程规范约定使用的堆栈是哪一种?
答:FD、FA、ED、EA。ATPCS 编程规范约定使用的堆栈是 FD
3、Boot Loader 在嵌入式系统中主要起什么作用?完成哪些主要的工作?
答:Boot Loader 是在嵌入式系统复位启动时,操作系统内核运行前,执行的一段
程序。通过 Boot Loader,初始化硬件设备,建立内存和 I/O 空间映射图,为最
终加载操作系统内核调整好适当的系统软硬件环境。
4、搭建嵌入式开发环境,连接目标板,一般使用什么通信接口连接?在 Windows
主机上使用什么软件建立连接?在 Linux 主机上使用什么软件建立连接?
1、答: RS-232,以太网口、并口
在 Windows 主机上使用超级终端软件
在 Linux 主机上使用 Minicom 软件
5 嵌入式开发环境主要包括哪些组件?
嵌入式系统开发需要交叉编译和在线调试的开发环境,主要包括
宿主机
目标机(评估电路板)
基于 JTAG的 ICD仿真器、或调试监控软件、或在线仿真器 ICE
运行于宿主机的交叉编译器和链接器、以及开发工具链或软件开发环境
嵌入式操作系统
6 在进行基于 ARM 核的嵌入式系统软件开发时,调用如下函数:
2、ARM 支持两个指令集, ARM 核因运行的指令集不同,分别有两个状态
ARM 、 Thumb ,状态寄存器 CPSR的 T 位反映了处理器运
行不同指令的当前状态
3、ARM 核有多个寄存器, 其中大部分用于通用寄存器, 有小部分作为专用寄存
器, R15 寄存器用于存储 PC,R13 通常用来存储 SP ,ARM 处
理器有两种总线架构,数据和指令使用同一接口的是 冯诺依曼结构 ,数据
和指令分开使用不同接口的是 哈佛结构
。。。
SP
SP
SP
SP
栈
空
间
的
增
长
方
向
地
址
的
增
长
方
向
栈
空
间
的
增
长
方
向
栈
空
间
的
增
长
方
向
栈
空
间
的
增
长
方
向
Hi Address
Lo Address Lo Address
Hi Address
欢迎共阅
int do_something(int arg1,void *arg2,char arg3,int *arg4)
这四个参数通过什么方式从调用程序传入被调函数?
根据 ATPCS 编程规范,调用函数和子程序通过 R0——R3 四个寄存器传递参
数,超过四个参数使用堆栈传递。因此 arg1 通过 R0 传入, arg2, 通过 R1 传入,
arg3 通过 R2 传入, arg4 通过 R3 传入
7 目前使用的嵌入式操作系统主要有哪些?请举出六种较常用的。
Windows CE/Windows Mobile、VxWork、Linux 、uCos、Symbian、QNX任选六
1、写一条 ARM 指令,完成操作 r1 = r2 * 3 (4 分)
ADD R1,R2,R2,
LSL #1
2、初始值 R1=23H,R2=0FH 执行指令 BIC R0, R1,R2,LSL #1 后,寄存器
R0,R1 的值分别是多少?( 4 分)
R0=21H,R1=23H
3、说明指令 STMIA r12!, {r0-r11} 的操作功能。( 4 分)
将 R0-R11 十二个寄存器中的 32 位数据,存储到 R12 地址指针为起始地址的内存
中,地址的操作方式是先操作、后增加,并更新地址。
4、写一段 ARM汇编程序:循环累加队列 myarray 中的所有元素,直到碰上零值元
素,结果放在 r4 中。程序框架如下,补充代码完成上述功能。( 8 分)
AREA total, CODE READONLY
ENTRY
start
MOV r4, #0
ADR r0, myarray
;在此补充代码
loop
LDR r1, [r0], #4
ADD r4, r4, r1
CMP r1, #0
BNE loop
5、这是一个由源程序 strtest.c 和 scopy.s 组成的混合程序项目,通过调用
strcopy 完成字符串复制, 程序代码如下。 要求阅读程序, 在程序中的注释符 “// ”
后,说明该句程序的作用,并说明 extern 和 EXPORT伪指令的在程序中的作用。
(8 分)
strtest.c
#include <stdio.h>
extern void strcopy(char *d, const char *s);
int main()
{ const char *srcstr = "First string - source";
char dststr[] = "Second string - destination";
printf("Before copying:\n");
printf(" '%s'\n '%s'\n",srcstr,dststr); //
strcopy(dststr,srcstr); //
printf("After copying:\n");
printf(" '%s'\n '%s'\n",srcstr,dststr); //
return 0;
}
欢迎共阅
scopy.s
AREA SCopy, CODE, READONLY
EXPORT strcopy
strcopy
LDRB r2, [r1],#1 ;
STRB r2, [r0],#1 ;
CMP r2, #0 ;
BNE strcopy ;
MOV pc,lr ;
END
// 输出源串和目标串 (8 分)
// 调用 strcopy 函数
// 输出复制后的源串和目标串
;r1 指向源串,从源串载入一个字节的字符到 r2, 并更新 r1=r1+1
;r0 指向目标串,从 r2 保存一个字节的字符到目标串 , 并更新 r0=r0+1
;测试串尾标志 \0
;非零转标号 strcopy
;返回
一、 程序测试题 (共 24 分)
1、写一段 ARM汇编程序:循环累加队列 myarray 中的所有元素,直到碰上零值元
素,结果放在 r4 中。程序框架如下,补充代码完成上述功能。( 8 分)
AREA total, CODE READONLY
ENTRY
start
MOV r4, #0
ADR r0, myarray
;在此补充代码
答:
loop
LDR r1, [r0], #4
ADD r4, r4, r1
CMP r1, #0
BNE loop
stop
B stop
myarray
DCD 0x11
DCD 0x22
……
DCD 0x0
END
2、有如下程序段,画出程序流程图,并回答执行程序以后 R0 的值是多少。( 8
分)
num EQU 2
start
欢迎共阅
MOV r0, #0
MOV r1, #5
MOV r2, #2
BL func
stop
B stop
func
CMP r0, #num
MOVHS pc, lr
ADR r3, JumpTable
LDR pc, [r3,r0,LSL#2]
JumpTable
DCD DoA
DCD DoS
DoA
ADD r0, r1, r2
MOV pc, lr
DoS
SUB r0, r1, r2
MOV pc,lr
END
答:R0为 0 调用 DoA,R0为 1 调用 DoS,R0 大于 2 直接返回,流程图略。 R0=7
3、这是一个由源程序 strtest.c 和 scopy.s 组成的混合程序项目,通过调用
strcopy 完成字符串复制,程序代码如下。要求阅读程序,在程序中的注释符
后,说明该句程序的作用, 并说明 extern 和 EXPORT伪指令的在程序中的作用。
(8 分)
strtest.c
#include <stdio.h>
extern void strcopy(char *d, const char *s);
int main()
{ const char *srcstr = "First string - source";
char dststr[] = "Second string - destination";
printf("Before copying:\n");
printf(" '%s'\n '%s'\n",srcstr,dststr); // 输出源串和目标串
strcopy(dststr,srcstr); // 调用 strcopy 函数
printf("After copying:\n");
printf(" '%s'\n '%s'\n",srcstr,dststr); // 输出复制后的源串和
目标串
return 0;
}
scopy.s
AREA SCopy, CODE, READONLY
EXPORT strcopy
strcopy
LDRB r2, [r1],#1 ; r1 指向源串,从源串载入一个字节的
字符到 r2, 并更新 r1=r1+1
欢迎共阅
STRB r2, [r0],#1 ;r0 指向目标串,从 r2 保存一个字节的字符
到目标串 , 并更新 r0=r0+1
CMP r2, #0 ;测试串尾标志 \0
BNE strcopy ;非零转标号 strcopy
MOV pc,lr ;返回
END
一、填空题 ( 请将答案填入题后括号中 ) :共 10 小题,每小题 2 分,满分 20 分。
1、一般而言,嵌入式系统的构架可以分为 4 个部分:分别是( 处理器 )、存储器、
输入/ 输出和软件,一般软件亦分为操作系统相关和( 应用软件 )两个主要部分。
2、根据嵌入式系统使用的微处理器, 可以将嵌入式系统分为嵌入式微控制器, (嵌
入式 DSP处理器 ),( 嵌入式微处理器 )以及片上系统。
3、操作系统是联接硬件与应用程序的系统程序,其基本功能有( 进程管理 )、进
程间通信、( 内存管理 )、I/O 资源管理。
4、从嵌入式操作系统特点可以将嵌入式操作系统分为( 实时操作系统 )和分时操
作系统,其中实时系统亦可分为( 硬实时系统 )和软实时系统。
5、内核负责管理各个任务,或者为每个任务分配 CPU时间,并且负责任务之间的
(通信 ),内核的基本服务是( 任务切换 )。
6、嵌入式开发一般采用( 宿主机 / 目标机方式 )方式,其中宿主机一般是指( PC
机或者台式机 )。
7、哈佛体系结构数据空间和地址空间( 分开), ARM7TDMI采用( 冯诺依曼体系 )
的内核架构。
8. ARM7TDMI采用( 3)级流水线结构, ARM920TDMI采用( 5 )级流水线。
9 . 按操作系统的分类可知, Dos操作系统属于顺序执行操作系统, Unix 操作系统
属于( 分时)操作系统, VxWorks属于( 实时嵌入式 )操作系统。
10、ARM7TDMI中, T 表示支持 16 位 Thumb指令集, D表示( 在片可调试 ),M表
示内嵌乘法器 Multiplier ,I 表示( 嵌入式 ICE),支持在线断点和调试。
二、选择题 ( 请将答案填入题后括号中 ) :共 10 小题,每小题 2 分,满分 20 分。
1、要使 CPU能够正常工作,下列哪个条件不是处理器必须满足的。
( D )
(A) 处理器的编译器能够产生可重入代码 (B) 在程序中可以找开或者关闭中
断
(C) 处理器支持中断,并且能产生定时中断 (D) 有大量的存储空间
2、下面哪种操作系统最方便移植到嵌入式设备中。
( D )
(A) DOS (B)unix (C) Windows xp (D)linux
3、下面哪个选项不是 SUB设备的特点。( B )
(A) 串行通信方式 (B)不可热拨插
(C) 分 HOST、DEVICE和 HUB (D)通信速率比 RS232快
4、下面哪种嵌入式操作系统很少用于手机终端设备上。
( C )
(A) Symbian (B)WinCE (C) uc/os (D)linux
5、以下哪项关于 SRAM和 DRAM的区别是不对 。
( A )
(A) SRAM比 DRAM慢 (B)SRAM比 DRAM耗电多
(C) DRAM存储密度比 SRAM高得多 (D)DRM需要周期性刷新
剩余23页未读,继续阅读
资源评论
lzx13599381087
- 粉丝: 2
- 资源: 9万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功