1.1 什么是嵌入式系统?
“嵌入式系统”一般指非 PC 系统,有计算机功能但又不称之为计算机的设备或器材。它是以应用为中心,软硬件
可缩扩的,适应应用系统对功能、可靠性、成本、体积、功耗等综合性严格要求的专用计算机系统;主要由嵌入
式处理器、相关支撑硬件、嵌入式操作系统及应用软件系统等组成。
1.2 简述嵌入式系统的发展过程
从 20 世纪七十年代单片机的出现到今天各式各样的嵌入式微处理器、微控制器的大规模应用,嵌入式系统已
经有了近 40 年的发展历史。
70 年代,嵌入式系统的出现最初是基于单片机的。
从 80 年代早期开始,更低的开发资金和更高的开发效率的嵌入式系统出现。
90 年代以后,随着对实时性要求的提高,软件规模不断上升,实时内核逐渐发展为实时多任务操作系统(RTOS)。
1.3 嵌入式系统有哪些特点?
嵌入式系统特性
(1)功能特定性
(2)规模可变性
(3)实时性与稳定性
系统其他特性
(1)操作系统内核小(2)专用性强(3)系统精简(4)高实时性 OS(5)使用多任务的实时操作系统(6)
嵌入式系统需要开发工具和环境
1.4 嵌入式系统的应用领域有哪些?
1.消费类电子产品应用 2.智能仪器、仪表类应用 3.通信信息类产品应用 4.过程控制类应用 5.国防武器
设备应用 6.生物微电子应用
2.1 从硬件系统看,嵌入式系统由哪几部分组成?
嵌入式硬件主要包括提供嵌入式计算机正常运行的最小系统(如电源、系统时钟、复位电路、存储器等)、通
用 I/O 口和一些外设及其它设备。
2.2 从软件系统看,嵌入式系统由哪几部分组成
系统软件由操作系统(OS)、文件系统(FS)、图形用户接口(GUI)、网络系统(NM)及通用组件模块(如
TCP/IP 协议包)等组成。
2.3 嵌入式处理器按体系结构分为哪几类?
2.4 嵌入式软件体系结构有哪几种类型,优缺点如何?
轮转结构(round-robin)
优点:简单,它没有中断,没有共享数据,无须考虑延迟时间
缺点:
如果一个设备需要比微处理器在最坏情况下完成一个循环的时间更短的响应时间,那么这个系统将无法工作。
即使所要求的响应时间不是绝对的截止时间,当有冗长的处理时系统也会工作得不好。
这种结构很脆弱。
带中断的轮转结构
优点:可对优先级进行更多的控制。中断程序可以获得很快的响应,因为硬件的中断信号会使位处理器停止正
在 main 函数中执行的任何操作,而转去执行中断程序
缺点:中断程序与主程序中的数据共享问题,当正在执行的主程序正在处理共享数据时,被中断程序中断,进
而处理中断程序,在中断程序中有可能又对共享数据进行了相应的操作,从而导致回到主程序时,共享数据的
值已经发生了改变,导致意想不到的结果。
函数队列调度(function-queue scheduling)结构
优点:main 可以根据任何可以达到目标的优先级方案来调用函数,这样任何需要更快响应的任务代码都可以
被更早执行。为了做到这一点,只需要在对函数指针进行排队的程序中对代码进行一点技巧性设计。
缺点:
具有较低优先级任务代码的函数可能会有更差的响应。
如果某个较低优先级任务的代码函数过长,就有可能影响较高优先级函数的响应时间。
实时操作系统(real-time operating system)结构。
使用实时操作系统结构的系统不仅可以控制任务代码的响应时间,还可以控制中断程序的响应时间。
3.1 嵌入式系统的硬件有哪几个组成部件?
1.核心板
2.扩展板(人机交互外设,常用外设及接口,其他专用设备
按处理器集成与否可分为:CPU 集成外设,扩展外设 )
3.2 通用处理器与嵌入式处理器有哪些相同和不同的地方?
通用处理器属于复杂指令集计算机(CISC)体系结构,通用的是用针脚…可以拨插换
嵌入式处理器都是精简指令集计算机(RISC)体系,嵌入式的是焊死在主板上的
CISC 和 RISC 是 CPU 指令集的两种架构。其中,RISC 充分发掘并运用了 80/20 法则(CISC 指令集中只有大
约 20%的指令被反复使用),要求指令规整、对称和简单,在并行处理性能上明显优于 CISC,可以使处理器
流水线高效地执行,使编译器更易于生成优化代码。
3.3 嵌入式操作系统有哪些特点,怎样选择嵌入式操作系统?
特点:1)系统内核小 2)专用性强 3)系统精简 4)高实时性 5)多任务的操作系统 6)需要开发
工具和环境
一般而言,在选择嵌入式操作系统时,可以遵循以下原则:
(1)市场进入时间(2)可移植性(3)可利用资源(4)系统定制能力 (5)成本 (6)中文内核支持 (7)
开发工具的支持
4.1ARM 处理器的特点有哪些?
小体积、低功耗、成本低、高性能;
16 位/32 位双指令集;
全球众多的合作伙伴。
4.2 简述 ARM 处理器的工作状态?
ARM 体系结构在 V4T 及其以上版本定义了称为 Thumb 指令集的 16 位指令集。Thumb 指令集的功能
是 32 位 ARM 指令集的功能子集。
正在执行 Thumb 指令集的处理器是工作在 Thumb 状态下的。同样,正在执行 ARM 指令集的处理器
是工作在 ARM 状态下。ARM 状态下的处理器不能执行 Thumb 指令,在 Thumb 状态下的处理器也不
能执行 ARM 指令。必须确保处理器不接受对当前状态来说为错误指令集的指令。每个指令集都包括切
换处理器状态的指令。ARM 处理器总是在 ARM 状态下开始执行代码。
4.3 简述 ARM 处理器的 7 种运行模式?
用户模式(User,usr)
快速中断模式(FIQ,fiq)
外部中断模式(IRQ,irq)
特权模式(Supervisor,sve)
数据访问中止模式(Abort,abt)
未定义指令中止模式(Undefined,und)
系统模式(System,sys)
4.4 简述 Boot Loader 的作用?
1 在自主模式(或启动加载模式)下,初始化系统,加载内核,跳转到内核代码,启动整个系统。 2.在下载
模式下,初始化目标板,进入 BootLoader 的交互界面(通过串口通信和主机上的 minicom 工具),下载或更新
Linux 内核和文件系统,然后加载内核,跳转到内核代码,启动整个系统。
5.1 嵌入式处理器的复位电路有哪几种?
上电复位
外部硬件复位
内 部 硬 件 复
位
锁相环失锁复位
软件看门狗复位
检错停机复位
测试端口硬复位
JTAG 复位
外部软件复位
内 部 软 件 复
位
调试端口软复位
JTAG 软复位
5.2 说明 UART 的工作原理
UART:通用异步接收/发送装置。UART 首先将并行数据转换成串行数据来传输。消息帧从一个低位起始位开始,
后面是 5~8 个数据位,一个可用的奇偶位和一个或几个高位停止位。该总线双向通信,可以实现全双工传输和
接收。在嵌入式设计中,UART 用来与 PC 进行通信。
5.3 简述矩阵键盘的扫描原理
键盘扫描程序
BYTE GetKey()
{
//键盘扫描子程序
BYTE i,keytemp;
keytemp= rPDATD&0xF0; //将列的值存入 keytemp 高四位
for(i = 1; i< =8;i<<=1)
{
rPDATD =~i;
if((rPDATD&0xF0)== keytemp)
{
//比较是否有零输入
keytemp=(~keytemp&0xF0)|i; //将行的值存入 keytemp 低四位
break;
}
}
return keytemp;
6.1 嵌入式操作系统的主要技术指标是什么?
(1)实时性(2)小内核(3)可剪裁、可配置(4)易移植(5)高可靠性(6)低功耗
6.2 设计嵌入式应用系统时,对嵌入式操作系统有哪些基本要求?
1.任务及任务状态 (代码 数据 堆栈 上下文环境 )2.优先级 3.调度(不可剥夺型内核与非占先式调度 可
剥夺型内核与占先式调度) 4.实时性(常用系统调用平均运行时间 任务切换时间 信号量混洗时间 任务响
应时间 )
6.3 嵌入式操作系统中的任务控制方式有哪几种?
休眠(DORMANT):指任务驻留在存储空间内,还没有被操作系统激活;
就绪(READY):任务运行的条件已经满足,进入任务等待列表,通过调度进入运行。
挂起或等待(WAITING):任务被阻塞,等待事件的发生。
运行(RUNNING):任务获得 CPU 使用权,执行相应
7.1
C/OS-Ⅱ内核包括哪几部分?调度策略是什么?
void mytask(void *pdata)
{
for (;;) {
do something;
waiting;
do something;
}
}
7.2C/OS-Ⅱ中 TCB 的作用是什么?
任务控制块(Task Control Block)是用来实现任务管理的数据结构。在内核中每个任务对应一个 TCB,所有
任务的 TCB 构成一个空闲任务控制块列表 。