嵌入式系统设计辅导秋.docx
- 文档编号:25563240
- 上传时间:2023-06-09
- 格式:DOCX
- 页数:13
- 大小:39.96KB
嵌入式系统设计辅导秋.docx
《嵌入式系统设计辅导秋.docx》由会员分享,可在线阅读,更多相关《嵌入式系统设计辅导秋.docx(13页珍藏版)》请在冰豆网上搜索。
嵌入式系统设计辅导秋
《嵌入式系统设计原理》辅导
第一章嵌入式系统概述
1、嵌入式系统的基本结构
经过不断的发展,原先嵌入式系统的3层结构逐步演化成为一种4层结构,包括:
硬件平台、硬件抽象层、嵌入式实时操作系统(RTOS)和嵌入式实时应用程序,如图所示:
2、嵌入式系统硬件平台的基本组成
嵌入式系统的硬件平台是以嵌入式处理器为核心,由存储器、I/O单元电路、通信模块、外部设备等必要的辅助接口组成的,如图所示。
3、板级支持包(BSP)
BSP是硬件抽象层的一种具体实现,它隔离了所支持的嵌入式操作系统与底层硬件平台之间的相关性,使嵌入式操作系统能够通用于BSP所支持的硬件平台。
BSP是介于底层硬件和操作系统之间的软件层次,它完成系统上电后最初的硬件和软件初始化,为上层的驱动程序提供访问硬件设备寄存器的函数包。
4、实时系统的特点及分类
实时系统的特点是,如果逻辑和时序出现偏差将会引起严重后果的系统。
大多数嵌入式系统都属于实时系统,根据实时性的强弱分为两种类型的实时系统:
软实时系统和硬实时系统。
第二章嵌入式系统基本知识
1、嵌入式微处理器分类
嵌入式微处理器包括嵌入式微控制器、嵌入式DSP处理器、嵌入式微处理器、嵌入式片上系统四类。
2、嵌入式片上系统(SOC)
SOC嵌入式系统微处理器就是一种电路系统。
它结合了许多功能区块,将功能做在一个芯片上。
SOC最大的特点是实现了软硬件无缝结合,直接在处理器片内嵌入操作系统的代码模块。
3、ARM7TDMI处理器
在ARM7TDMI的指令流水线中,每条指令可以分为取指、译码、执行3个阶段执行。
ARM7TDMI处理器有ARM和Thumb两种工作状态。
4、PowerPC处理器
PowerPC既有高端产品,又有低端产品,应用领域十分广泛,基于PowerPC架构的处理器主要有:
(1)IBMPowerPC,MotorolaPowerPC
5、嵌入式实时操作系统分类
常用的嵌入式实时操作系统一般分为3大类:
商用系统、专用系统和开放系统。
商用系统:
VxWorks、WindowsCE等;专用系统:
Android、Symbian等;开放系统:
Linux、uC/OS-II等;
6、影响CPU性能的因素
影响CPU性能的因素主要有:
流水线、超标量和缓存;
7、存储器SRAM与DRAM的差别
(1)SRAM比DRAM快;
(2)SRAM比DRAM耗电多;(3)DRAM存储密度比SRAM高得多;(4)DRM需要周期性刷新;
8、前后台系统
在前后台系统中,应用程序是一个无限的循环,循环中调用相应的函数完成相应的操作,这部分可以看成后台行为。
中断处理程序处理异步事件,这部分可以看成前台行为;当中断处理程序处理完异步事件后,程序将回到后台程序继续运行。
9、临界区
临界区是指处理时不可分割的访问共享资源的代码。
为确保多个进程互斥访问共享资源,可采用在进入临界区之前要关中断,而临界区代码执行完以后要立即开中断的方法,也可采用信号量机制来实现。
10、可剥夺型内核与不可剥夺型内核的区别
使用可剥夺型内核时最高优先级的任务一旦就绪,总能得到CPU的控制权。
当一个运行着的任务使一个比它优先级高的任务进入了就绪态,当前任务的CPU使用权就被剥夺了,那个高优先级的任务立刻得到了CPU的控制权。
如果是中断服务子程序使一个高优先级的任务进入就绪态,中断完成时,中断了的任务被挂起,优先级高的那个任务开始运行。
不可剥夺型内核要求每个任务自我放弃CPU的所有权。
异步事件由中断服务来处理,中断服务可以使一个高优先级的任务由挂起状态变为就绪状态。
但中断服务以后控制权还是回到原来被中断了的那个任务,直到该任务主动放弃CPU的使用权时,那个高优先级的任务才能获得CPU的使用权。
11、可重入型函数
可重入型函数可以被一个以上的任务调用,而不必担心数据的破坏。
可重入型函数任何时候都可以被中断,一段时间以后又可以运行,而相应数据不会丢失。
使用以下技术之一即可使一个函数具有可重入性:
(1)把函数中使用的临时变量定义为局部变量;
(2)调用函数之前关中断,调动后再开中断;(3)用信号量禁止该函数在使用过程中被再次调用;
12、嵌入式系统设计步骤
(1)系统需求分析:
确定设计任务和设计目标,并提炼出设计规格说明书,作为正式设计指导和验收的标准。
系统的需求一般分功能性需求和非功能性需求两方面;
(2)体系结构设计:
描述系统如何实现所述的功能和非功能需求,包括对硬件、软件和执行装置的功能划分以及系统的软件、硬件选型等;(3)硬件/软件协同设计:
基于体系结构,对系统的软件、硬件进行详细设计。
为了缩短产品开发周期,设计往往是并行的;(4)系统集成:
把系统的软件、硬件和执行装置集成在一起,进行调试,发现并改进单元设计过程中的错误;(5)系统测试:
对设计好的系统进行测试,看其是否满足规格说明书中给定的功能要求。
第三章ARM微处理器体系结构
1、ARM指令集和单纯的RISC定义的不同
(1)一些特定的指令周期数可变,改善了Load/Store指令的性能;
(2)内嵌桶形移位器产生了更为复杂的指令;(3)增加Thumb16位指令集,增强了内核的功能;(4)指令的条件执行减少了分支指令的数目,提高了代码密度。
2、CISC与RISC两种架构的主要差异
RISC使用相当少的指令类型及寻址模式;微程控尽量采用软件架构实现;在单一执行的周期内完成指令;微处理器中拥有更多的寄存器;使用最佳化的程序代码编译;简易的译码指令格式;高度并行化处理;CPU硬件结构设计更为简单;
CISC具有大量的指令和寻址方式;80%的程序只使用20%的指令;大多数程序只使用少量的指令就能够运行;更侧重于硬件执行指令的功能性,使CISC指令变得更复杂;指令长度通常不固定,执行也需要多个周期;
第四章ARM微处理器指令系统
1、ARM的运行模式
ARM处理器支持用户、快速中断、外部中断、管理员、系统、数据访问中止、未定义指令中止7种工作模式。
2、ARM指令的寻址方式
ARM指令系统支持6种寻址方式:
(1)立即寻址:
ADDR0,R0,#1
(2)寄存器寻址:
ADDR0,R1,R2
(3)寄存器间接寻址:
ADRR0,[R1]
(4)基址变址寻址:
LDRR0,[R1],#4
(5)多寄存器寻址:
LDMIAR0,{R1,R2,R3,R4}
(6)堆栈寻址:
STMFDSP!
{R1-R7,LR}
3、ARM汇编语言编程例子1。
阅读、理解并掌握以下编程思路和ARM汇编程序代码。
[说明]
设数组X中有X1、X2、……、X10十个数,试编制一个ARM汇编程序把该数组中的十个数求和后,将其结果以十六进制数的形式在屏幕上显示出来。
编程思路:
先将数组X的10个元素累加求和,将结果放入r1寄存器,然后把r1寄存器内的二进制数用十六进制数的形式在屏幕上显示出来。
由于ARM指令集中没有循环左移结构,所以只能用逻辑右移LSR或循环右移ROR结构来实现:
第1次右移28位;第2次右移24位;
第3次右移20位;第4次右移16位;
第5次右移12位;第6次右移8位;
第7次右移4位;第8次右移0位;
每次移位前,把r1寄存器的内容赋给r0,然后移动相应位数,再用0xf与r0相与后,把r0寄存器的内容转换成ASCII码,在屏幕上显示出来,循环次数是已知的,计数值为8.,程序代码如下:
[ARM汇编程序代码]
AREAHelloW,CODE,READONLY;声明代码区
SWI_WriteCEQU&0;输出r0中的字符
SWI_ExitEQU&11;程序结束
ENTRY;代码入口
START:
adrr0,x;获取数组X首址
movr1,#0;累求和初值
movr4,#0;计数器初值
sum1:
ldrhr5,[r0],#2;获取数组元素
addr1,r1,r5;累加求和
addr4,r4,#1;计数器+1
cmpr4,#10
jnzsum1
movr4,#0;计数器初值
movr2,#28;移动位数初值
Rotate:
movr0,r1,LSRr2;移位
andr0,r0,#0x0f;屏蔽无用高位
addr0,r0,#0x30;converthextoASCII
cmpr0,#0x3a;isit>9?
bltprintit;jumpifdigit=0to9(30H-39H)
addr0,r0,#7;digitisAtoF(41H-46H)
printit:
SWINESWI_WriteC;显示r0中的字符
subr2,r2,#4;移动位数-4
addr4,r4,#1;计数器+1
cmpr4,#8
jnzrotate
Endpro:
SWISWI_Exit;执行结束
xdcwx1,x2,x3,x4,x5,x6,x7,x8,x9,x10
END;程序结束
4、ARM汇编语言编程例子2。
阅读、理解并掌握以下编程思路和ARM汇编程序代码。
[说明]
设有数组X和Y。
X数组中有X1、X2、……、X10十个数,Y中有Y1、Y2、……、Y10十个数。
编制程序计算:
Z1=X1+Y1Z2=X2+Y2Z3=X3-Y3Z4=X4-Y4
Z5=X5-Y5Z6=X6+Y6Z7=X7-Y7Z8=X8-Y8
Z9=X9+Y9Z10=X10+Y10
编程思路:
设置一个10位的标志尺:
LOGIC_RULE,若它的每一位决定了当前按顺序该加法(该位为0)或减法(该位为1)操作,则由上列等式可知LOGIC_RULE中的低10位应是0b0011011100
[ARM汇编程序代码]
AREASumSubW,CODE,READWRITE;声明代码区
SWI_ExitEQU&11;程序结束中断
ENTRY;代码入口
START:
ADRr0,x
ADRr1,y
ADRr2,z
ADRr4,logic_rule
LDRHr4,[r4]
MOVr5,#0
NEXT:
LDRHr6,[r0],#2
LDRHr7,[r1],#2
TSTR4,#1
JNZSUB1
ADDr8,r6,r7
BALRESULT
SUB1:
SUBr8,r6,r7
RESULT:
STRHr8,[r2],#2;保存计算结果
MOVr4,r4,LSR#1
ADDr5,r5,#1
CMPr5,#10
BNENEXT
SWISWI_Exit;执行结束
xdcwx1,x2,x3,x4,x5,x6,x7,x8,x9,x10
ydcwy1,y2,y3,y4,y5,y6,y7,y8,y9,y10
zdcwz1,z2,z3,z4,z5,z6,z7,z8,z9,z10
logic_ruledcw0b0011011100;LOGIC_RULE初始化
END;程序结束
第五章嵌入式操作系统
1、嵌入式操作系统和通用操作系统的差别
嵌入式操作系统是一种多优先级,抢占型的实时操作系统。
嵌入式操作系统体积小,实时性强,对稳定性要求更高。
嵌入式操作系统强调高实时性,并且可裁减。
嵌入式操作系统专用性强,要求系统资源的消耗要尽可能的小。
由于嵌入式操作系统其本身不具备自主开发能力,即使设计完成以后,用户通常也是不能对其中的程序功能进行修改,必须有一套开发工具和环境才能进行开发。
而通用操作系统一般占用的资源比较多,系统软件故障带来的后果比嵌入式系统小的多,通用操作系统对实时性要求一般不高,大都是分时系统,一般只支持某一特定的微处理体系结构,系统软件的开发工具丰富,可选择性强。
2、嵌入式操作系统的进程
进程是可并发执行的、具有独立功能的程序在一个数据集合上的运行过程,是操作系统进行资源分配和保护的基本单位;
不论哪种操作系统,进程的基本调度状态可归为3种:
就绪状态、运行状态和阻塞状态;进程的基本状态及转换关系如图所示。
一个正在运行的进程,由于需要等待一个事件会暂停运行,进入阻塞状态;而一旦被阻塞进程所等待的事件发生,这个进程就会重新进入就绪状态。
3、嵌入式操作系统的中断
中断是指计算机在执行期间,系统内发生任何非寻常的或非预期的急需处理事件,使得CPU暂时中断当前正在执行的程序而转去执行相应的事件处理程序,待处理完毕后又返回原来被中断处继续执行或调度新的进程执行的过程。
引起中断发生的事件被称为中断源。
中断源向CPU发出的请求中断处理信号称为中断请求,而CPU收到中断请求后转到相应的事件处理程序称为中断响应。
在实时多任务系统中,中断服务程序通常包括3个方面的内容:
(1)中断前导:
保存中断现场,进入中断处理;
(2)用户中断服务程序:
完成对中断的具体处理;(3)中断后续:
恢复中断现场,退出中断处理;
广义的中断通常被分为硬件中断、自陷中断和异常中断等类别。
4、嵌入式UC/OS-Ⅱ操作系统
UC/OS-Ⅱ是一个多任务实时操作系统;具有可移植、可固化、占先式、可裁剪等性能特点;uC/OS–II任务状态有:
挂起、休眠、就绪、运行、被中断五种;uC/OS–II任务之间的通讯方式有:
共享内存、信号量、邮箱、消息队列等;uC/OS–II使用MemoryPartition内存管理方式;uC/OS–II的所有任务控制块分为空闲链表和使用链表。
5、嵌入式Linux操作系统
Linux是一个多用户、多用户操作系统,一般具有非实时的特性;Linux进程状态有5种,分别为运行态、可唤醒阻塞态、不可唤醒阻塞态、僵死状态和停滞状态;Linux进程控制块PCB中的主要内容包括:
进程状态、调度信息、进程标识、进程间关联、进程间通信、处理器相关信息、使用文件的信息等;Linux支持多种进程间通信机制,其中比较重要的5种是:
信号、管道、信号量、消息队列、共享内存;Linux的设备驱动程序开发一般采用C语言调用底层函数实现;
6、Linux虚拟文件系统(VFS)
Linux虚拟文件系统是物理文件系统与服务之间的一个接口,它对Linux实时运行时所支持的每一个物理的文件系统进行抽象,使得不同的文件系统在Linux内核以及系统中运行的其他进程看来都是相同的。
Linux虚拟文件系统的功能包括:
记录可用的文件系统类型;将设备同对应的文件系统联系起来;处理一些面向文件的通用操作;
7、Linux的中断处理例程
在处理硬件中断的时候,一般是要关闭中断的,以免再次中断。
但如果关闭的时间过长,就有可能失掉重要的外部中断信号。
但有时某个中断处理过程占用时间会很长,为了解决这个矛盾,Linux采用了将中断处理例程一分为二的办法,即分为tophalf和bottomhalf2部分。
tophalf读取必要的数据并保存在某个特定的缓冲区中,通知bottomhalf后即退出。
中断处理例程的这一段程序代码的执行不能被中断,但是因为时间很短,系统是可以忍受的,而剩余工作则会交给bottomhalf部分在适当的时候完成。
在这一部分的执行过程中系统就可以继续接收新的中断了。
8、嵌入式文件系统
文件系统是指在一个物理设备上的任何文件组织和目录,它构成了操作系统所有数据的基础,程序、库、系统文件和用户文件都驻留其中,是系统中最为基本和重要的资源;一个文件系统所在的存储空间一般被划分为引导块、超级块、索引节点区和数据区4部分;嵌入式操作系统必须获得文件系统的支持,文件系统的主要目标是实现按名存取。
常用的嵌入式文件系统可分为3类:
(1)基于Flash的文件系统:
JFFS2,yaffs,cramfs,romfs等;
(2)基于ROM的文件系统:
Ramdisk,ramfs/tmpfs等;(3)网络文件系统(NFS);
第六章嵌入式LINUX开发环境及其在ARM上的移植
1、Linux下构建嵌入式系统开发环境的方法
Linux下构建嵌入式系统开发的交叉编译环境有3种方法:
(1)分步编译和安装交叉编泽环境所需要的库和源代码,最终生成交叉编译环境;
(2)通过Crosstool脚本工具来实现一次编泽生成交叉编译环境;(3)使用开发平台供应商提供的开发环境安装套件建立交叉编译环境;
第七章嵌入式设备驱动程序
1、设备驱动程序的主要功能
设备驱动程序的主要功能有:
设备的初始化、打开和释放;读写设备接口数据;将设备数据传送到用户空间或将用户空间传来数据写入设备;检测和处理设备故障;
2、Linux系统的设备管理
Linux对设备管理进行了抽象,系统中所有设备均作为文件来对待。
字符设备和块设备可以通过设备文件节点来访问。
而由于网络设备不是面向流的设备,不会将其名字映射到文件系统中。
第八章嵌入式用户图形接口GUI
1、嵌入式GUI
嵌入式GUI具有体积小、运行时耗用系统资源小、上层接口与硬件无关、高度可移植、高可靠性、某些应用场合应具备实时性等特点。
常用的嵌入式GUI有Qt/Embedded、MiniGUI、Microwindows、TinyX等
2、Qt/Embedded的信号和插槽机制
信号和插槽机制是Qt的核心特性,它是一种高级接口,应用于对象之间的通信。
所有的QObject及其子类都能包含信号和插槽。
当对象改变状态时,信号就由该对象发射出去;而插槽是普通的对象成员函数,用于接收信号。
用户可以将多个信号与单个插槽连接,也可以将单个信号与多个插槽连接完成相应的事件处理。
第九章Boot-Loader模块设计
1、Boot-loader的stage1和stage2的执行步骤
stage1的执行步骤:
(1)基本的硬件初始化;
(2)为加载Boot-loader的stage2准备RAM空间;(3)拷贝stage2到RAM中;(4)设置堆栈指针SP;(5)跳转到stage2的C程序入口点;
stage2的执行步骤:
(1)初始化本阶段要使用到的硬件设备;
(2)检测系统的内存映射;(3)加载内核映像和根文件系统映像;(4)设置内核的启动参数;(5)调用内核;
第十章嵌入式系统综合开发实例
1、设施农业大棚监控系统一般利用ZigBee无线传感网、嵌入式终端、服务器、数据库及智能手机APP技术等实现对设施农业大棚主要环境参数(温度、湿度、光照强度、CO2浓度等)的远程实时监控。
其中,嵌入式终端主要通过ZigBee及智能传感器采集环境参数,将其传输给服务器,并可对大棚的卷帘等设备进行控制;服务器主要用于存储与发布数据;手机APP可远程监控大棚的环境参数或发送设备控制命令。
浅谈你对采用嵌入式系统技术开发设施农业大棚监控系统的设想(1500字以上)。
应包括以下内容:
(1)设想你要实现的设施农业大棚监控系统的架构及功能;
(2)嵌入式终端的初步设计,主要包括:
采用的硬件开发平台,并画出硬件平台的基本组成图;
采用的嵌入式操作系统、开发工具等;
将要用到的各种I/O接口、传感器、通信模块等;
系统应用软件的功能模块设计等;
2、工业现场数据采集系统一般需要实现对温度、湿度、压力等模拟量数据的采集,对位移、角度等脉冲计数数据的采集等,其数据的采集即可用集成在开发板(或主板)上的接口连接相应的传感器方式实现,也可通过RS-485串行通讯接口与连接着相应传感器的智能模块或智能仪表进行通信的方式来实现。
数据采集系统还应具有对采集到的数据进行显示、传输、存储、查询、打印等功能。
浅谈你对采用嵌入式系统技术开发工业现场数据采集系统的设想(1500字以上)。
应包括以下内容:
(1)设想你要实现的数据采集系统的功能;
(2)采用的嵌入式硬件平台,并画出硬件平台的基本组成图;(3)采用的嵌入式操作系统、开发工具等;(4)将要用到的各种I/O接口、传感器、通信模块等;(5)系统应用软件的功能模块设计等;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 系统 设计 辅导