-
第
1
章
什么是嵌入式系统
嵌入式系统是以应用为中心、以计算机技术为基础、软
/
硬件可剪裁、适用于对系统功
能、可靠性、成本、体积、功耗等有严格要求的专用计算
机系统。
嵌入式系统的应用领域有哪些
列举一些生活中的嵌入式系统实例。
嵌入式系统的应用领域有交通管理、工控设备、智能仪器、汽车电子、环境监测、电子
商
务、医疗仪器、移动计算、网络设备、通信设备、军事电子、机器人、智能玩具、信息家
电等;
①网络设备
:
交换机、路由器、
Modem
等。
②消费电子
:
手机、
MP3
、
PDA
、可视电话、
电视机顶盒、数字电视、数码照相机、数
码摄像机、信息家电等。
③办公设备
:
打印机、传真机、扫描仪等。
④汽车电子
: ABS (
防死锁制动
系统
)
、供油喷射控制系统、车载
GPS
等。
⑤工业控制
:
各种自动控制设备
嵌入式系统的组成有哪些
嵌入式系统一般由硬件层,中间层,软件层三层组成。
嵌入式系统的特点有哪些
嵌入式系统有以下
4
个特点:系统内核小、专用
性强、系统精简、实时性高。
简述嵌入式系统的发展。
嵌入式系统
具有以下
6
个发展趋势:系统工程化、开源化、功能多样化、节
能化、人性
化、网络化。
常用的嵌入式处理器分为哪几类
常见
的嵌入式处理器有一下四类:嵌入式微处理器、嵌入式微控制器、嵌入式
DSP
处
理器、嵌入式片上系统。
嵌入式操作系统的特点有哪些
p>
嵌入式操作系统有以下
6
个特点:系统内核
小、专用性强、系统精简、高实时性、多任
务的操作系统、需要专用开发工具和环境。<
/p>
什么是实时操作系统
IEEE
实时
UNIX
分委会认为实时操作系统应具备哪些特点
实时操作系统是指在限定的时间内能对过程调用产生正确的响应的操作系统。
IEE
E
的
实时
UNIX
< br>分委会认为实时操作系统应具备以下特点:异步的事件响应、切换时间和中断延
迟
时间确定、优先级中断和调度、抢占式调度、内存锁定、连续文件、同步。
常用的嵌入式操作系统有哪些
它们各有什么特点
操作系统
uCLinux
Android
Windows
CE
VxWorks
Nucleus
uC / OS
II
QNX
Linux
特点
遵守
GNU/
GPL
,完全开源;移植性好;网络功能优秀;支持多文件系
统;
API
接口丰富。
良好的平台开放性、可以实现个性化应用设定和与
Google
应用的无缝
结合。
与
Windows
系列有较好的兼容
性;能在多种处理器体系结构上运行;
采用模块化设计;没有开放源代码;耗费内存。<
/p>
支持多种处理器;具有先进的网络功能;具有良好的可靠性、卓
越的实
时性、高效的可裁剪性。
抢占
式多任务操作系统内核;便于移植并且支持多种处理器;核心代码
精简。
公开源代码;可移植性强;可固化、可裁剪;占先式、多任务;系统任
务;中断管理;稳定性和可靠性都很强。
实时可拓展;内核精简;运行速度快。
开源的自由操作系统;真正的多用户多任务操作系统;内核可剪裁;
实时性好;网络功
能强大;支持目前多数的处理器;
稳定性和可靠性
都很强。
p>
嵌入式系统工程设计的要点有哪些
应
用需求;硬件要求;实时性的实现;系统功耗;系统升级方式;调试方式;开发环境
的选
择等。
举出几个嵌入式系统应用的例子
,
通过查资料和独立思考
,
说明这些嵌
入式系统产品主要
由哪几部分组成,每个组成部分用于完成什么功能。
< br>
比较典型的例子:手机。
组成部分:
处理器:核心处理器;
内存:操作系统,程序运行的存储空间;
闪存:存放操作系统,文件等;
屏幕:显示,如果是触摸屏还有输入功能;
按键(非必须)
:输入。
第
2
章
ARM
微处理器及技术的应用领域及主要产品有哪些
举一些生活中常用的
ARM
处理器
应用的例子。
ARM
微处理器觉得应用领域有工业控制领域、无线通信领域、网络应用、消费
类电子
产品、
成像和安全产品等。
目前
绝大多数的手机、
平板采用的处理器都是
ARM
架构
cortex-a
系列的处理器,而其
cortex-m
系列在智能设备也得到广泛应用,小米手环
2
就是用的
cortex-m4
的核。
采用
RISC
架构的
ARM
微处理器有哪些特点
体积小、低功耗、低成本、高性能;支持
Thumb (16
位
) / ARM (32
位
)
双指令集
,
能很
好地兼容
8
位
/16
位器件;大量使用寄存器;指令执行速度更快;大多数数据操作都在寄存
器中完成;寻址方式灵活简单
,
执行效率高;指
令长度固定。
ARM
内核基本版本有哪些
每个版本都有哪些基本的性能
内核基本版本
V1
版本
基本的性能
基本的数据处理指令
(
无乘法
)
;基于字节、半字和字的
< br>
Load
/
Store
指令;转移指令
,
包括子程序调用及
链接指令;供操作系统使用
的软件中断指令
SWI
;寻址空间
: 64
MB
。
V2
版本
V3
版本
乘法和乘加指令;
支持协处理器操作指令;
快速中断模式;
SWP/
SWPB
的最基本存储器与寄存器交换指令;寻址空间
: 64
MB
。
寻址空间增至
32
位
(4
GB)
;
当前程序状态信息从原来的
R15
寄
存器移到当前程序状态寄存
器
CPSR
(Current
Program
Status
Re
gister)
中;增加了程序状态保存寄存器
SPSR (Saved Program Status Register)
;
增加了两种异常模式
,
使操作系统代码可方便地使用数据访问中止异
常、
指令预取
中止异常和未定义指令异常;
增加了
MRS/ MSR
指令
,
以
访问新增的
CPSR/ SPSR
寄存器;增加了从异常处理返回的指令功能。
V4
版本
有符号和无符号半字及有符号字节的存
/
取指令;
增加了
T
变种
,
处理器可工作在
Thumb
状态
,
增加了
16
位
Thumb
指令集;
完善了
软件中断
SWI
指令的功能;
处理器系统模式
引进特权方式时使用用户
寄存器操作;把一些未使用的指令空间捕获为未定义指令。
p>
V5
版本
新增带有链接和交换的转移
BLX
指令;新增计数前导零
CLZ
指
令;新增
BRK
中断指令;增加了数字信号处理指令
(V5TE
版
)
;为协
处理器增加更多可选择的指令;
改进了
ARM/
Thumb
状态之间的切换效
率;
V6
版本
ThumbTM:
35%
代码压缩;
DSP
扩充
:
高性能定点
DSP
功能;
JazelleTM:
Java
性能优化
,
可提高
8
倍;
Media
扩充
:
音
/
视频性能
优化
,
可提高
4
倍。
V7
版本
首次采用了强大的信号处理扩展
集;采用了
Thumb-2
技术;采用
了
NEON
技术;支持改良的浮点运算。
ARM
微处理器有哪些系列
它们有什么特点
微处理器系列
ARM7
微处理器系列
特点
调试开发方便;功耗极低;能够提供
MHz
的三级流水
线结构;
代码密度高
并兼容
16
的
Thumb
指令集;
对操作系
统的支持广泛;指令系统与
ARM9
系列、
ARM9E
< br>系列和
ARM10E
系列兼容
,
便于用户的产品升级换代;
主频最高
可达
130MIPS
。
ARM9
微处理器系列
5
级整数流水线
,
指令执行效率更高;提供
MHz <
/p>
的哈
佛结构;支持
32
< br>位
ARM
指令集和
16
位
Thumb
指令集
;
支持
32
位的高速
< br>AMBA
总线接口;全性能的
MMU
支持多
种主流嵌入式操作系统;
MPU
支持实时操作系统;支持数
据
Cache
和指令
Cache,
具有更高的指令和数据处理能力
ARM9E
微处理器系列
支持
DSP
指令集;
5<
/p>
级整数流水线;
支持
32
位
ARM
指令集和
16
位
Thumb
指令集;支持
< br>32
位的高速
AMBA
总线接口
;
支持
VFP9
浮点处理协处理器;<
/p>
全性能的
MMU
支持多种主流嵌入式操作
系统;
MPU
支持实时操作系统;
支持
数据
Cache
和指令
Cache,<
/p>
具有更高的指令和数据处
理能力;主频最高可达
< br>300MIPS
。
支持
DSP
指令集;
6
级
整数流水线;
支持
32
位
ARM
指
令集和
16
p>
位
Thumb
指令集;
支持
32
位的高速
AMBA
总线
接口;
支持
VF
P10
浮点处理协处理器;
全性能的
M
MU,
支持
多种主流嵌入式操作系统;支持数据
Cache
和指令
Cache,
具有更高的指令和数据处理能力;主频最高可达
400MIPS
;
内嵌并行读
/
写操作部件
ARM10E
微处理器系列
SecurCore
微处理器系列
带有灵活的保护单元
,
以确保操作系
统和应用数据的
安全;采用软内核技术
,
防止外部对其进行扫描探测;可集
成用户自己的安全特性和其他协处理器。
StrongARM
微处理器系列
Xscale
处理器
Cortex
系列处理器
集成度高;在软件上兼容
ARMv4
体系结构
p>
全性能、高性价比、低功耗;
支持
16
位的
Thumb
指令
和
DSP
指令集。
分为
Cortex-M
、
Cort
ex-R
和
Cortex-A
三类;<
/p>
Cortex-M
系
列针对微控制器
p>
,
在该领域中需要进行快速且具有高确定
性的中断管理
,
同时需将门数和可能功耗控制在最低;
Cortex-R
系列针对实时系统
,
p>
面向深层的嵌入式实时应用;
Cortex-A
面向尖端的基于虚拟内存的操作系统和用户应用
,
也叫应用程序处理器
在选择
ARM
微处理器时要考虑哪些因素
处理器的基本架构与内核版本;
处理器的性能,
功耗;
处理器的兼容性;
处理器的价格
;
支持的指令格式;处理器支持的操作系统等因素。
Cortex-A8
内核结构有哪些
组成部分每个部分各完成什么功能
Cortex-A8
内核有以下结构组成:
指令读取单元完成对
指令流进行预测;指令解码单元对所有
ARM
指令,
Thumb-2
指令
进行译码排序;
指令执行单元执行所有整数
ALl
运算和乘法运算
,
并影响标志位,<
/p>
根据要求
产生用于存取的虚拟地址以及基本回写值,
将要存放的数据格式化
,
并将数据和标志向前发<
/p>
送,处理分支及其他指令流变化
,
并评估指令条件码;数据存取单元包含了全部
L1
数据存
储系统和整数存取流水线;
L2
Cache
单元包含
L2 Cache
和缓冲接口单元
BIU
;
NEON
p>
单元单
元包含一个
10
段
NEON
流水线
,
< br>用于译码和执行高级
SIMD
多媒体指令集;
ETM
单元是一
个非侵入跟踪宏单元,
可以对指令和数据进行跟踪
,
并能对跟踪信息进
行过滤和压缩;处理
器外部接口。
三星
S5PV210
处理器是基于哪种
架构的它主要有哪些特点
三星
S5P
V210
处理器基于
ARM
架构,采用
基于
ARM V7
的
Cortex-A
8
核;有如下特点:
低功耗,高性能;主频可达
1GHz
,具有
64
/
32
位内部总线结构,
32
< br>/
32KB
的数据
/
指令一级缓
存,
p>
512KB
二级缓存
,
运算能力可以达到
2000DMIPS
;
< br>支持
LPDDR1
,
LPDDR
2
,
DDR2
类型
RAM
;
Nandflash
,<
/p>
Norflash
,
OneNand
p>
等类型
Flash
;
支持存储空间最大
32G
(
ROM<
/p>
)
,
最大支持
3
2G
的
TF
卡;
包含强大的硬件编解码功能,
内建
MFC
,
支持多种格式视频编解码;
支持
IIS
、
AC97
和
< br>PCM
音频接口;外部总线模块支持
4
< br>路
UART
串口,
3
路
IIC
总线,
2
路
SPI
总线。
ARM
集成开发环境
RVDS
包含哪几个模块这些模块各有什么特点
p>
RVDS
包含
4
个
模块
: IDE
、
< br>RVCT
、
RVD
和
RVISS
;
IDE<
/p>
:
将软件开发与
ARM RealVie
w
工具的编译和调试技术结合在一起。
可以用作项目管
理器
,
为
ARM
p>
目标创建、生成、调试、监视和管理项目。
RVCT
:业界最优秀的编译器
,
支
持全系列的
ARM
和
XSCALE
p>
架构
,
支持汇编、
C
和
C++
语
言,支持二次编译和代码数据压缩技术
,
能够生成更小的可执
行文件
,
节省
ROM
< br>空间。
RVD
:
RVD
是
RVDS
中的调试
软件
,
功能强大
,
支持
Flash
烧写和多核调试
,
支持多种调试手
段
,
< br>快速错误定位
RVISS
:<
/p>
RVISS
是指令集仿真器
,
支持外设虚拟
,
可以使软件开发和硬件开发同步进
行
,
同时
可以分析代码性能
,
加快软件开发速度。
ARM
集成开发环境
RVDS
支持哪些处理器和模拟器
RVDS
支持以下处理器:
ARM7
,
ARM9
,
ARM10
,
ARM11
处理器系列;
ARM11
MPCore
多核处理器;
Cortex
系列处理器;
RealView Debugger
< br>中的
SecurCore
、
SC
100
和
SC200
处理
器;
RVCT
中的
SecurCore
SC300
处理器;
RealView
Debugger
中支持
Farada
y
FA526
、
FA626
和
FA626TE
处理器;
Marvell Feroceon 88FR101
和
8
8FR111
处理器。
RVDS
p>
支持以下模拟器:
RealView
AR
Mulator
指令集模拟器
(RVISS)
< br>;指令集系统模型
(ISSM)
;
RTSM
;
SoC
Designer
。
什么是嵌入式系统的交叉开发环境
嵌
入式系统充当程序的运行环境而非开发环境,
因此为了能够开发出适合在嵌入式系统
p>
运行的程序,
就要使用交叉开发环境。
在一
个平台上开发出来在另一个平台运行的程序就是
交叉开发。交叉开发环境就是用来在宿主
机(通用计算机,通常为
PC
或工作站)上面生成
可以在目标机(嵌入式系统)运行的程序的开发环境。
GCC
交叉编译器的编译流程和执行过程有哪些
GCC
编译常见的错误类型有哪些
GCC
交叉编译的流程如下:源文件(
*.c
,
*.s
等)
< br>->
预处理(
*.i
)
->
编译(
*.S
)<
/p>
->
汇编
(
*.
o
)
->
链接(
elf
可执行文件)
->
转换(
p>
bin
文件)
G
CC
编译常见的错误类型有:语法错误;头文件错误,找不到代码中使用的头文件;内<
/p>
建函数使用错误;档案库错误,找不到库文件;未定义的符号错误等
嵌入式系统的交叉开发环境下有哪些调试方法
有以下调试方法:
ROM
仿真、在线仿真、在系统编程
、
JTAG
调试、软件仿真器等。
Eclipse
for
ARM
开发环境搭建的步骤是什么
根据本书介绍搭建
Eclipse
for
ARM
开发环
境。
安装
YAGARTO GCC
编译工具
;安装
YAGARTO
工具;安装
JR
E
;安装
Eclipse for ARM
;安
装仿真器驱动和仿真器工具软件。
在
Eclipse
for
ARM
开发环境下构建一个工
程并且编译调试工程
,
学会
Eclip
se
for
ARM
的使
用。
根据教材内容自行操作。
第
3
章
简述
Cortex -
A8
微处理器的几种工作模式。
Co
rtex-A8
处理器有
8
种模式:用
户模式(
usr
)
;系统模式(
sys
)
;管理模式(
svc
)
;中
止模式(
abt
)
;未定义模式(
u
nd
)
;通用中断模式(
irq
)
;快速中断模式(
fiq
< br>)
;监控模式
(
mon
)
。
举例说明
Cortex -
A8
微处理器的存储格式。
Cortex - A8
处理器支持小端格式和字节不变的大端
格式。
此外
,
处理器还支持混合大小端
格式(既有大端格式又有小端格式)和非对齐数据访问。对指令的读取
< br>,
则总是以小端格式
操作。
简述机器指令
LDR
与汇编伪指令的区别。
机器指令
LDR
用于将存储器中的
32
位的
字数据传送到目标寄存器中,使用格式为:
LDR{
条件
}
目的寄存器
<<
/p>
存储器地址
>
而
LDR
伪指令的作用是将一个值加载到目标寄存器中,使用格式为:
< br>
LDR
目的寄存器
=<
立即数
>
两者的本质的区别是一个是加载地
址中的数据,
一个是加载一个立即数。
LDR
< br>伪指令补
充了
MOV
指令加载立
即数限制的不足。
简述
CPSR
状态寄存器中各有效位的含义。
条件标志位(
N
、
Z
、
C
、
V
p>
)
;
Q
标志位(定
用于指示增强的
DAP
指令是否发生了溢出)
< br>;
IT
块(用于对
thumb<
/p>
指令集中
if-then-else
这一
类语句块的控制)
;
J
位用于表示处理
器是否
处于
ThumbEE
状态;
p>
GE[3
:
0]
(
该位用于表示在
SIMD
指令集中的大
于、
等于标志)
;
E
< br>位
(控
制存取操作的字节顺序)
;
A
位
(表示异步异常禁止)
;
控制位
(中断禁止位,
T
位和模式位)
。
简述
Cortex -
A8
微处理器的异常类型。
异常类型
说明
当复位信号产生时
,
复位发生处理器放弃正在执行的指令
FIQ
异常支持快速中断
复位异常
快速中断异常
FIQ
中断异常
IRQ
中止异常
软件中断
监控异常
未定义指令异常
发生中断,在快速中断过程中中断异常不发生
中止是一种异常
,
用于告知操作系统
< br>:
与某个值关联的内存访问失效。
进入管理模式
当处理器执行
SMC
指令时
,
内核进入监控模式请求监控功能
遇到一条处理器或系统协处理器无法处理的指令时进入
什么是寻址
简述
Cortex -
A8
微处理器的寻址方式。
寻址是根
据指令中给出的地址码字段来寻找真实操作数地址的方式;
Cortex-A8
支持的
寻址方式有
以下几种:寄存器寻址(取出寄存器中的值作为操作数)
、立即数寻址(操作数
为明确数值)
、寄存器移位寻址(对操作数进行移位操作)
、寄存器间接寻址(将寄存器中的
值作为地址,去改地址中保存的值作为操作
数)
、变址寻址(在基址寄存器的基础上加上偏
移量,然后将该
值作为地址取其地址中的值作为操作数)
、多寄存器寻址(一次操作传送多
寄存器的值)
、堆栈寻址(堆栈是一种按特定顺序进行存取)
、
块拷贝寻址
(把一块数据从存
储器的某一位置复制到另一位置)
、相对寻址(变址寻址的一种变通
< br>,
由程序计数器
(PC)
提供<
/p>
基地址
,
指令中的地址码字段作为偏移量
,
两者相加后得到操作数的有效地址)等。
编程实现
64
位加法、
64
位减法、
64<
/p>
位求负数功能,结果放在
R1
、
R0
寄存器中。
@64
位加法:
@R2
,
R3
存放第一个
64
位数据
@R4<
/p>
,
R5
存放第二个
64
位数据
ADDS R0,
R2, R4
:
加低
32
位字
ADC
R1, R3, R5
:
加高
32
位字
@64
位减法
@R2
,
R3
存放第一个
64
位数据(被减数)
@R4
,
R5
存放第二个
64
位数据(减数)
SUBS R0, R2, R4
SBC
R1, R3, R5
@64
位求负数
RSB R0, R2,
#0
RSC R1, R3,
#0
B
指令、
BL
指令、
BLX
指令和
BX
指令用于实现程序流程的跳转
< br>,
有何异同
B
指令只是做简单的跳转;
BL
指令在跳转之前会将当前
PC
寄存器的值保存在
R14
寄存
器(
LR
)
中,通过
LDR PC,LR
语句可以返回
跳转前的位置;
BLX
指令与
BL
p>
区别在于跳转的时
候切换处理器工作状态,在
ARM
状态和
Thumb
状态间切换
。
简述汇编语言的程序结构。
汇编语言
的程序结构由段(
section
)构成;段又分为代码段和数
据段;每个汇编程序至
少包含一个代码段,零个或多个包含初值的数据段,零个或多个不
包含初值的数据段。
ALIGN<
/p>
伪操作的指令的作用是什么什么情况下需要伪操作在
AREA
p>
伪操作中有
ALIGN
属性
,
它与单独的
ALIGN
伪操
作有什么不同
定义代码段和数据段的对齐方式。
当某代码段的地址不是
4
的整数倍的时候需要该伪操
作。在
AREA
伪操作中
ALIGN
属性的作用范围只限定于
AREA
申请的区域,而单独的
ALIGN
作用范围为
该伪操作后面的所有代码。
如何在
C
语言程序中内嵌汇编程序如何在汇编程序中访问
C
程序变量
在
C
语言中使用以下格式来嵌套汇编代码
__asm{
/*
汇编
1*/
/*
汇编
2*/
………...
}
< br>在汇编程序中访问
C
程序变量方式如下:
1)
使用
IMPORT
伪指令声明这个全局变量;
2)
使用
LDR
指令读取该全局变量的内
存地址,
通常该全局变量的内存地址存放在程序的数
据缓冲池中
;
3)
根据该数据类型
,
使用相应的
LDR
指令读取该全局变
量的值,
使用相应的
STR
指令修改
该全局变量的值。
程序设计
:
使用
LDR
指令读取
0x
上的数据
,
将数据加
1,<
/p>
若结果小于
10
则使用
< br>STR
指令把结
果写回原地址
,
若结果大于等于
10,
则把
0
写回原地址。
然后再次读取
0x
上的数据
,
将数据加
1,
判断结果是否小于
10……
周而复始循环。
程序设计如下:
_START:
MAIN:
LDR
R0, =0X
LDR
R1, [R0]
ADD
R1, R1, #1
MOV
R2, #10
SUBS
R3, R1, R2
MOVLT R3,#0
STR
R3, [R0]
B MAIN
第
4
章
S5PV210
微处理器是哪种封装
形式这种封装有什么优缺点
S5PV210
< br>芯片是
584
引脚的
FCFBG
A
封装,引脚间距,体积为
17x17mm
。
FCFBGA
封装既能容纳较
多的管脚,又能保证管脚间距,具有良好的电气性能。但是对
焊装的要求很高,无法手工
焊装。
微处理器有多少个
GPIO<
/p>
端口有多少
GPIO
引脚
S5PV210
微处理器有
35
组
GPIO
端口,
237
个
GPIO
引脚。
p>
如何对复用的
GPIO
< br>引脚进行配置
通过设置该引脚所属组的
端口控制寄存器
的相应位进行配置其功能,例如
GPA
0
组的第
一个端口作为输入端口则只需要将
GPA0CON
的
0-3
位设置为
0000
即可。
寄存器具体地址以
p>
及相应位可以查询芯片手册。
端口上拉寄存器的功能是什么何种情况下需要上拉
-
-
-
-
-
-
-
-
-
上一篇:三角函数公式及其定理
下一篇:常用诱导公式