完整word版嵌入式系统原理与应用习题答案Word文档下载推荐.docx
- 文档编号:17905467
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:19
- 大小:699.55KB
完整word版嵌入式系统原理与应用习题答案Word文档下载推荐.docx
《完整word版嵌入式系统原理与应用习题答案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《完整word版嵌入式系统原理与应用习题答案Word文档下载推荐.docx(19页珍藏版)》请在冰豆网上搜索。
(1)ARM7ARM9ARM9EARM10EARM11
(2)精简指令集计算机
(3)SamsungARM920TIIC总线
(4)BGA显卡布线
(5)1.8V3.3V
(6)81281
(7)S3C241064MB64MB
2.选择题
(1)D
(2)C(3)A(4)B(5)B
(6)C(7)D(8)C(9)C(10)B
3.简答题
(1)ARM和S3C2410X有什么关系?
S3C2410是韩国三星公司生产的嵌入式处理器,它采用了ARM公司的ARM920T(即ARM9)内核
(2)ARM7是32位RISC处理器,使用3级流水线,采用冯
•诺依曼体系结构,不支持MMU。
(3)ARM8是32位RISC处理器,使用5级流水线,采用哈佛体系结构,支持MMU。
(4)S3C2410X芯片有27根地址线,8根片选线(nGCS),32根数据线。
(5)S3C2410X芯片内部集成了一个LCD控制器,SDRAM控制器,3个通道UART,4个通道DMA,4个具有PWM功能的计时器和一个内部时钟,8通道的10位ADC。
(6)ARM体系结构有哪几种工作状态?
又有哪几种运行模式?
其中哪些为特权模式?
哪些为异常模式?
并指出处理器在什么情况下进入相应模式?
工作状态:
第1种:
ARM状态。
处理器执行32位的字对齐的ARM指令。
第2种:
Thumb状态。
处理器执行16位的半字对齐的Thumb指令。
运行模式:
用户模式(usr)快速中断模式(fiq)外部中断模式(irq)
管理模式(svc)数据访问中止模式(abt)系统模式(sys)
未定义指令中止模式(und)
在这7种运行模式,除了用户模式外,其他6种处理器模式都为特权模式。
在这6种特权模式中,除了系统模式外的其他5种特权模式又称为异常模式。
用户模式:
非特权模式,也就是正常程序执行的模式,大部分任务在这种模式下执行。
在用户模式下,
如果没异常发生,不允许应用程序自行切换果没异常发生,不允许应用程序自行改变处理器的工作模式,如果有异常发生,处理器会自动切换工作模式。
快速中断模式:
支持高速数据传输和通道处理,当一个高优(fast)中断产生时将会进入这种模式。
外部中断模式:
也称为普通中断模式,当一个低优先级中断产生时将会进入这种模式。
在这模式下按中断的处理器方式又分为向量中断和非向量中断两种。
通常的中断处理都在IRQ模式下进行。
管理模式:
是一种操作系统保护模式,当复位或软中断指令执行时处理器将进入这种模式。
数据访问中止模式:
当存取异常时将会进入这种模式,用来处理存储器故障、实现虚拟存储或存储保护。
系统模式:
使用和user模式相同寄存器组的特权模式,用来运行特权级的操作系统任务。
未定义指令中止模式:
当执行未定义指令时会进入这种模式,主要是用来处理未定义的指令陷阱,支持硬件协处理器的软件仿真,因为未定义指令多发生在对协处理器的操作上。
(7)ARM体系结构支持的数据类型?
有多少寄存器?
如何组织?
支持的数据类型:
1.字节(byte),各种处理器体系结构中,字节的长度均为8位。
2.半字(half-word),在ARM体系结构中,半字的长度为16位。
3.字(word),在ARM体系结构中,字的长度为32位。
ARM处理器共有37个寄存器,其中31个通用寄存器,6个状态寄存器。
(8)S3C2410的存储控制器如何对内存空间进行管理?
S3C2410X存储控制器为片外存储器提供控制信号。
它将系统的存储空间分成8组(Bank),每组的大小为128MB,共1GB。
(9)分析程序状态寄存器各位的功能描述,并说明C、Z、N、V在什么情况下进行置1和清0
状态寄存器(PSR)的具体格式为
V—溢出标志位
对于加/减法运算指令,当操作数和运算结果为二进制补码表示的带符号数时,V=1表示符号位溢出,其它指令通常不影响V位。
例如:
两个正数(最高位为0)相加,运算结果为一个负数(最高位为1),则符号位溢出,相应V=1.
C--进位或借位标志位
对于加法指令(包括比较指令CMN),结果产生进位,则C=1,表示无符号数运算发生上溢出,其他情况下C=0;
在减法指令中(包括比较指令CMP),结果产生借位,则C=0,表示无符号数运算发生下溢出,其他情况下C=1;
对于包含移位操作的非加/减法运算指令,C中包含最后一次溢出位的数值;
对于其他非加/减法运算指令,C位的值通常不受影响。
Z--结果为0标志位
Z=1表示运算结果是0,Z=0表示运算结果不是零;
对于CMP指令,Z=1表示进行比较的两个数大小相等。
N--符号标志位
本位设置成当前指令运算结果的bit[31]的值。
当两个补码表示有符号整数运算时,N=1表示运算的结果为负数,N=0
表示结果为正数或零。
(10)ARM指令可分为哪几类?
说出哪几条指令是无条件执行的。
ARM指令可分为:
数据处理指令,跳转指令,程序状态寄存器处理指令,加载/存储指令,协处理器指令
,异常产生指令。
无条件执行指令:
BLX指令,BKPT指令(产生软件断点中断)
(11)如何实现两个64位数的加法操作,如何实现两个64位的减法操作,如何求一个64位数的负数?
实现
64
位数据加法运算:
假设
R0和R1存放了一个64位数据(作为被加数),R0存放数据的低32位;
R2和R3中存放了另一个64位数据(作为加数),R2中存放低
32
位数据。
运算结果送回到[R1:
R0]中(R0中存放低
位)。
ADDS
R0,R0,R2
;
低32位相加并影响标志位
ADC
R1,R1,R3
高32位相加再加上
C
标志位
(进位值)
实现64位数据减法运算:
如果寄存器R0和R1中放置一个64位的被减数,其中R0中放置低32位数值;
寄存器R2和R3中放置一个64位的减数,其中R2
中放置低
位数值。
R0]中(R0中存放低32位)。
SUBS
R0,R0,R2
;
低32位相减并影响标志位
SBC
R1,R1,R3
高32位相减再减去C标志位的反码
求一个64位数的负数:
如果寄存器R0和R1中放置一个
位数,其中
R0
位数值;
寄存器R4和R5中放置其负数,其中R4中放置低32位数值。
RSBS
R4,R0,#0
0减去低32位并影响标志位
RSC
R5,R1,#0
0减去高32位再减去C标志位的反码
4.程序题
(1)分析下列每条语句,并说明程序实现的功能。
CMPR0,#0//判断R0是否等于0
MOVEQR1,#0//当R0等于0,则R1等于0
MOVGTR1,#1//当R0为正数时,则R1等于1
此功能码段可以判别R0中的值为正数还是0。
(2)写一条ARM指令,分别完成下列操作。
R0=16MOV
RO,#16
R0=R1/16MOV
RO,R1,LSR#4
R1=R2*4ADD
R1,R2.R2.LSL#1
R0=-R0RSB
RO,RO,#0
(3)写出实现下列操作的ARM指令。
当Z=1时,将存储器地址为R1的字数据读入寄存器R0。
MOVEQ
R0,
[R1]
当Z=1时,将存储器地址为R1+R2的字数据读入寄存器R0。
LDREQ
[R1,R2]
将存储器地址为R1-4的字数据读入寄存器R0。
LDR
R0,[R1,#-4]
将存储器地址为R1+R6的字数据读入寄存器R0,并将新地址R1+R6
写入R1。
R0,[R1,R6]!
(4)写出下列指令所实现的操作。
R2
[R3,#-2]!
将存储器地址为R3-2的字数据读入R2,并将地址R3-2写入R3
[R0],R1
将存储器地址为R0的字数据读入R0,并将地址R0+R1写入R0
R1
[R0,R2,LSL#2]!
将存储器地址为R0+R2*4的字数据读入R1,并将地址R0+R2*4写入R0
STRB
,[R2,#0xB0]
R0的低8位存入存储器地址为
R2+0xB0字节中
LDMIA
,{R1,R2,R8}
将内存单元R0所指向的地址单元以字为单位递减方式读取到R1,R2,R8
中,低地址编号的字数据内存单元对应低编号寄存器
STMDB
R0!
,
{R1~R5,R8,R9}
R1~R5,R8,R9存储到以R0为起始地址的递减内存中,最终R0
指向存放
R9的地址单元
5.计算题
某设备的接口电路如图所示,请计算出该设备的地址。
3.5练习题
(1)B
(2)A(3)C(4)D(5)A
(1).so.a程序运行过程中编译过程中
(2)LIo
(3)$
(4)$@$^$<
(CC、CFLAGS等)
(5)目标文件的完整名称所有不重复的依赖文件,以空格隔开第一个依赖文件的名称、
(1)make和Makefile之间的关系?
make是一种命令,是根据Makefile文件的规则决定如何编译和连接程序或其他的动作。
(2)Makefile的普通变量与预定义变量有什么不同?
预定义变量有哪些?
它们分别表示什么意思?
普通变量:
引用变量时,只需在变量前面加上$符;
预定义变量:
已经定义好,直接引用即可。
预定义变量有:
$@、$^、$<
。
$@:
表示完整的目标文件名;
$^:
表示所有的依赖文件;
$<
:
表示依赖文件列表中的第一个文件。
(3)GCC编译器的常用参数有哪些?
它们的功能分别是什么?
gcc编译器的常用参数:
-o,-I,-L,-E,-S,-c
功能:
-o表示编译成一个可执行程序;
-I表示指定头文件目录;
-L表示指定库文件目录选项;
-E表示对源代码进行预编译;
-S表示编译成汇编代码;
-c表示把.c文件转换为以.o为扩展名的目标文件。
4.编程及调试题
(1)根据要求编写Makefile文件。
有5个文件分别是main.c、visit.h、study.h、visit.c、study.c,具体代码如下。
//main.c文件
//visit.h文件
//study.h文件
//visit.c文件
//study.c
1)如果上述文件在同一目录,请编写Makefile文件,用于生成可执行程序zhs。
//Makefile文件
2)如果按照下面的目录结构存放文件,请改写Makefile文件。
bin:
存放生成的可执行文件
obj:
存放.o文件
include:
存放visit.h、study.h
src:
存放main.c、visit.c、study.c和Makefile.
3)如果按照下面的目录结构存放文件,请改写Makefile文件。
存放main.c和Makefile
src/src1:
存放visit.c
src/src2:
存放study.c
这可能只是其中一种方法,方法不唯一。
我这种做法有一个缺点就是需要修改visit.c和study.c文件的内容,如修改#include“../include/visit.h”。
(2)按要求完成以下操作。
1vi编辑test.c文件,其内容如下。
2用gcc–otest.otest.c编译,生成test.o
3用gcc–g–otest1.otest.c编译,生成test1.o
4比较test.o和test1.o文件的大小,思考为什么?
带调试选项-g的目标文件test1.o比较大。
因为在gcc编译源代码时指定-g选项可以产生带有调试信息的目标代码。
(3)使用GDB调试上面的程序
①调试参数-g进行编译
#gcc–gtest.c–otest
②启动GDB调试,开始调试
#gdbGtest
③使用gdb命令进行调试。
略。
(4)编写一个程序,将系统时间以year-month-dayhour:
minute:
second格式显示在屏幕上,并将它保存在time.txt文件。
4.4练习题
1.填空题
(1)串口
(2)11520081无无
(3)编程器串口网络接口
(4)Bootloader
(5)程序仿真调试程序的烧写
(6)zImageroot.cramfs
(7)启动加载模式下载模式
(8)汇编语言C语言
(9)U-BootBlobARMBoot(或者RedBootvivi)
(10)BusyBox
(11)启动加载模式
按回车进入启动加载模式;
按回车外的任意键进入vivi的下载模式。
(1)A
(2)C(3)A(4)A(5)A
(1)简述嵌入式开发环境的搭建过程
1、交叉编译工具链的安装;
2、安装配置TFTP服务;
3、安装配置NFS服务;
4、C-Kermit的安装配置;
5、minicom的安装配置;
6、windows下超级终端的配置。
(2)BootLoader的结构分两部分,简述各部分的功能?
两部分:
Stage1:
用汇编语言编写,主要进行设备的初始化;
Stage2:
用C语言编写,增强程序的移植性和可读性。
(2)ARM常用的Bootloader程序有哪些?
U-Boot,Blob,RedBoot,vivi
(3)简述生成内核映像文件zImage的步骤。
1、makeconfig进入命令行;
2、makemenuconfig内核裁剪;
3、makeclean清理以前已生成的目标文件;
4、makedep编译变量的依赖关系;
5、makezImage生成内核镜像文件zImage。
(4)BusyBox工具的功能是什么?
BusyBox工具用来精简基本用户命令和程序,它将数以百计的常用UNIX/Linux命令集成到一个可执行文件中。
(5)简述根文件系统的创建过程。
1、建立基本的目录结构;
2、交叉编译BusyBox;
3、创建配置文件;
4、利用cramfs工具创建根文件系统映像文件。
5.4练习题
(1)B
(2)D(3)C(4)A(5)C(6)D
(1)内核态
(2)字符设备块设备
(3)主设备号次设备号
(4)静态编译动态编译
(5)insmod
用于加载模块化驱动程序的命令是insmod;
用于卸载已安装模块化驱动程序的命令是rmmod;
用于查看已安装的模块化驱动程序的命令是lsmod。
(1)简述驱动程序的主要功能。
1、对设备初始化和释放;
2、数据传送;
3、检测和处理设备出现的错误。
(2)简述驱动程序的组成。
1、自动配置和初始化子程序;
2、服务于I/O请求的子程序;
3、中断服务子程序。
(3)简述设备驱动程序与应用程序的区别。
1、设备驱动程序工作在内核态下,而应用程序工作在用户态下;
2、设备驱动程序从module_init()开始,将初始化函数加入内核初始化函数列表中,在内核初始化时执行驱动的初始化函数,从而完成驱动的初始化和注册,之后驱动便停止工作,等待应用程序的调用;
而应用程序从main()函数开始执行。
3、应用程序可以和GLIBC库连接,因此可以包含标准的头文件;
驱动程序不能使用标准的C库,因此不能调用所有的C库函数。
(4)简述设备文件、驱动文件、主设备号和次设备号之间的关系。
驱动程序加载到内核后有一个主设备号。
在Linux内核中,主设备号标识设备对应的驱动程序,告诉Linux内核使用哪一个驱动程序为该设备(也就是/dev下的设备文件)服务,而次设备号则用来标识具体且唯一的某个设备。
(5)简述字符设备驱动程序提供的常用入口点及各自的功能。
open入口点:
对将要进行的I/O操作做好必要的准备工作,如清除缓冲区等。
如果设备是独占的,即同一时刻只能有一个程序访问此设备,则open子程序必须设置一些标志以表示设备处于忙状态。
close入口点:
当设备操作结束时,需要调用close子程序关闭设备。
独占设备必须标记设备可再次使用。
read入口点:
当从设备上读取数据时,需要调用read子程序。
write入口点:
向设备上写数据时,需要调用write子程序。
ioctl入口点:
主要用于对设备进行读写之外的其他操作,比如配置设备、进入或退出某种操作模式等,这些操作一般无法通过read或write子函数完成操作。
(6)简述逐次逼近型ADC的结构及工作原理。
逐次逼近型ADC通常由比较器,数模转换器(DAC),寄存器和控制逻辑电路组成。
工作原理:
初始化时,先将寄存器各位清空。
转换时,先将寄存器的最高位置1,再将寄存器的数值送入DAC,经D/A转换后生成模拟量送入比较器中与输入的模拟量进行比较,若Vs<
Vi,则该位的1被保留,否则被清除;
然后再将次高位置1,再将寄存器的数值送入DAC,经D/A转换后生成的模拟量送入比较器中与输入模拟量进行比较,若Vs<
重复上述过程,知道最低位,最后寄存器中的内容即为输入模拟值转换成的数字量。
5.编程题
S3C2410X通过GPG3端口来控制LED的亮和灭,具体电路如图,请为该字符设备设计一个驱动程序和应用程序,应用程序能够根据用户需要来控制LED的
//驱动程序
//应用程序
6.7练习题
(1)C
(2)D
TinyOS是UCBerkeley(加州大学伯克利分校)开发的开放源代码操作系统
(3)C
(1)XWindows,MicroWindows,MiniGUI
(或者QtopiaCore,Qt/Embedded,OpenGUI)
(2)XWindowServer,Xlib,帧缓存
3.问答题
(1)简述嵌入式GUI的特点。
1、轻型,占用资源少。
嵌入式GUI要求是轻量型的,这主要是受限于嵌入式硬件资源。
2、可配置。
由于嵌入式设备的可定制性,要求相应的GUI系统也是可以定制的,所以嵌入式GUI一般都具有可裁剪性。
3、高性能。
耗用系统资源较少,能在硬件性能受限的情况下、尤其是CPU资源较少的情况下达到相对较快的系统响应速度,同时减少能源消耗。
4、高可靠性。
系统独立,能适用于不同的硬件,在高性能的同时保证高可靠性。
(2)简述Qt/X11和QtopiaCore的异同点。
相同点:
都是嵌入式GUI,也就是在嵌入式系统中为特定的硬件设备或环境而设计的图形用户界面系统。
Qt/X11与QtopiaCore最大的区别在于Qt/X11依赖于XWindowServer或Xlib,而QtopiaCore是直接访问帧缓存。
它们所依赖的底层显示基础是不同的,从而导致了体系结构上的差异。
(3)简述信号与槽的作用。
信号:
当某个信号对其客户或所有者发生的内部状态发生改变,信号被一个对象发射。
只有定义过这个信号的类及其派生类能够发射这个信号,当一个信号被发射时,与其相关联的槽将会被立刻执行。
槽:
槽是普通的C++成员函数,可以被正常调用,它们唯一的特殊性就是很多信号可以与其相关联。
当与其相关联的信号被发射时,这个槽就会被调用。
槽可以有参数,但槽的参数不能有缺省值。
4.编程题
编写QtopiaCore程序:
在窗口建立两个按钮,单击ShowText按钮时在单行文本框中显示HelloWorld;
单击Quit按钮时关闭窗口。
7.4练习题
(1)A
(2)B(3)A
(1)可定制性好支持SQL查询语句提供接口函数,供高级语言调用实时性好
(2)自包含跨平台无数据类型
(1)常见的嵌入式数据库有哪些?
嵌入式数据库和其他数据库的主要区别是什么?
常见的嵌入式数据库有mSQL,BerkeleyDB,SQLite。
数据处理方式的不同,嵌入式数据库属于程序驱动式,其他数据库属于引擎响应式。
逻辑模式的不同,其他数据库基本上采用关系模型,而嵌入式数据库除采用关系模型外,还会采用网状模型或两者的结合体。
优化重点不同,其他数据库由于面向通用的应用,优化的重点是:
高吞吐量、高效的索引机制、详尽的查询优化策略。
而嵌入式数据库是面向特定应用的,并且资源有限,优化的重点是:
实时性、开销大小、系统性能、可靠性、可预知性和底层控制能力。
关键技术
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整 word 嵌入式 系统 原理 应用 习题 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)