软考高级 架构师 第四章 嵌入式开发

嵌入式开发全面解析

第四章嵌入式开发

1.嵌入式微处理器体系结构

1.1.冯诺依曼结构

冯诺依曼结构(也称普林斯顿结构)是一种将程序指令存储器和数据存储器合并在一起的存储器结构。
在这里插入图片描述

计算机程序和数据公用一个存储空间。程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置。
采用单一的地址和数据总线,程序指令和数据宽度相同。
处理器执行指令时,先从存储器中取出指令解码,再取操作数执行运算,单条指令也可能要耗时几个或者几十个周期,在高速运算时,在传输通道上会出现瓶颈效应。

1.2.哈佛结构

哈佛结构是一种并行体系结构,主要特点:将程序和数据存储在不同存储空间中。程序存储器和数据存储器是两个相互独立的存储器。每个存储器独立编址、独立访问。
在这里插入图片描述

与两个存储器相对应的是系统中两套独立的地址总线和数据总线。
分离两种总线可允许在一个机器周期内同时获取指令字和操作数,提高执行速度,使数据吞吐率提高了1倍。

2.微处理器分类

根据嵌入式微处理器的字长宽度,可分为4位、8位、16位、32位、64位。一般把16位及以下的称为嵌入式微控制器,32位及以上的成为嵌入式微处理器。
根据系统集成度划分,可划分为两类:一种是微处理器内部仅包含单纯的中央处理器单元,称为一般用途微型处理器;另一种则是将CPU、ROM、RAM及I/O等部件集成到同一个芯片上,称为单芯片微控制器。
根据用途分类,一般分为:嵌入式微控制器MCU、嵌入式微处理器MPU、嵌入式数字信号处理器DSP、嵌入式片上系统SoC等。

嵌入式微控制器MCU的典型代表是单片机,相对MPU的最大特点:单片化、体积小、片上外设资源丰富、功耗成本低、可靠性高,适合控制,是嵌入式工业的主流。

嵌入式微处理器MPU通常由计算机的CPU演化而来。特征:具有32位以上的处理器,具有较高性能,但是价格也相应较高。在实际嵌入式应用中,只保留和嵌入式应用紧密相关的功能硬件,取出其他冗余功能部分,这样就以最低的功耗和资源实现嵌入式应用的特殊要求。与传统工控机相比,具有体积小、重量轻、成本低、可靠性高的优点。

嵌入式微数字信号处理器DSP是专门用于信号处理方面的处理器,其在系统结构和指令算法方面进行了特殊设计。具有很高的编译效率和指令执行速度。采用哈佛架构、流水线处理。其处理速度比最快的CPU还快10-50倍。

嵌入式片上系统SoC,是追求产品系统最大包容的集成器件。SoC的最大特点是实现了软硬件无缝结合,直接在处理器片内嵌入操作系统的代码模块。是一个由专用目标的集成电路,其中包含完整系统并有嵌入软件的全部内容。

3.多核处理器

多核指的是多个微处理器内核,是将两个或多个微处理器封装在一起,集成在一个电路中。多核处理器是单枚芯片,能够直接插入单一的处理器插槽中。多核与多CPU相比很好的降低了计算机系统的功耗和体积。在多核技术中,由操作系统软件进行调度,多进程多线程都可以。

3.1. 2个或多个内核工作协调实现方式

对称多处理技术SMP:将2颗完全一样的的处理器封装在一个芯片内,达到双倍或接近双倍的处理性能,节省运算资源。
非对称多核处理技术AMP:2个处理内核彼此不同,各自处理和执行特定的功能,在软件的协调下分担不同的计算任务。

3.2.多核CPU调度

多核CPU环境下进程的调度算法一般有全局队列调度和局部队列调度两种。
全局队列调度是指操作系统维护一个全局的任务等待队列,当系统中有一个CPU空闲时,操作系统就从全局任务等待中选取就绪任务开始执行,CPU内核利用率高。
局部队列调度是操作系统为每个CPU内核维护一个局部的任务等待队列,当系统中由一个CPU内核空闲时,就从核心任务等待队列中选取适当的任务执行,优点是无需在多个CPU之间切换。

4.嵌入式软件

嵌入式软件是指应用在嵌入式计算机当中的各种软件。除了具有通用软件的一般特性,还具有一些嵌入式系统相关的特点,包括:规模小、开发难度大、实时性和可靠性要求高、要求固化存储。

4.1.嵌入式软件分类

系统软件:控制和管理嵌入式系统资源,为嵌入式应用提供支持的各种软件,如设备驱动程序、嵌入式操作系统、嵌入式中间件等。
应用软件:嵌入式系统的上层软件,定义了嵌入式设备的主要功能和用途,并负责与用户交互,一般面向特定的应用领域,如飞行控制软件、手机软件、地图等。
支撑软件:辅助软件开发的工具软件,如系统分析设计工具、在线仿真工具、交叉编译器等。

4.2.板级支持包

板级支持包(BSP)是主板硬件和操作系统中驱动层之间的一层,一般认为它属于操作系统的一部分,主要是实现对操作系统的支持,为上层的驱动程序提供访问硬件设备寄存器的函数包,使之能够更好的运行于硬件主板。
具体功能:
单板硬件初始化,主要是CPU的初始化,为整个软件系统提供底层硬件支持。
为操作系统提供设备驱动程序和系统中断服务程序。
定制操作系统的功能,为软件系统提供一个实时多任务的运行环境。
初始化操作系统,为操作系统的正常运行做好准备。

主要特点:
硬件相关性,因为嵌入式实时系统的硬件环境具有应用相关性,而作为上层软件与硬件平台之间的接口,BSP需为操作系统提供操作和控制具体硬件的方法。
操作系统相关性,不同的操作系统具有各自软件的层次结构,因此不同的操作系统具有特定的硬件接口形式。

一般来说BSP主要包含两个方面的内容:引导和加载程序BootLoader和设备驱动程序。

4.2.1.BootLoader

是嵌入式系统加电后运行的第一段软件代码,是在操作系统内核运行之前运行的一小段程序。通过这段程序,可以初始化硬件设备、建立内存空间的映射图,从而将软硬件环境设置到一个合适的状态,以便为最终调用操作系统内核做好准备。
功能:
片级初始化:主要完成微处理的初始化,包括设置微处理器的核心寄存器和控制寄存器、微处理器的核心工作模式以及其局部的总线模式等。片级初始化把微处理器从上电时的默认状态逐步设置成系统所要求的工作状态。这是一个单纯的硬件初始化过程。
板级初始化:通过正确的设置各种寄存器的内容来完成微处理器以外的其他硬件设备的初始化。例如,初始化LED显示设备、初始化定时器、设置中断控制寄存器、初始化串口通信、初始化内存控制器、建立内存空间的地址映射等。在此过程中,除了要设置各种硬件寄存器以外,还要设置某些软件的数据结构和参数。因此。这时一个同时包含有软件和硬件在内的初始化过程。
加载内核(系统及初始化):将操作系统和应用程序的映像从Flash存储器复制到系统的内存中,然后跳转到操作系统内核的第一条指令处继续执行。

4.2.2.设备驱动程序

在一个嵌入式系统中,操作系统是可能存在也可能不存在的。但无论如何,设备驱动程序时必不可少的。所谓的设备驱动程序,就是一组库函数,用来对硬件进行初始化和管理,并向上层软件提供良好的访问接口。
对于不同的硬件设备来说,它们的功能时不一样的,所以它们的设备驱动程序也是不一样的。但是一般来说大多硬件驱动程序都会具备以下一些基本功能:
硬件启动:在开机上电或系统重组的时候,对硬件进行初始化
硬件关闭:将硬件设置为关机状态
硬件停用:暂停使用这个硬件
硬件启用:重新启用这个硬件
读操作:从硬件中读取数据
写操作:向硬件中写入数据

5.嵌入式系统

组成:嵌入式处理器、相关支撑硬件、嵌入式操作系统、支撑软件以及应用软件组成。
特性:
专用性强
技术融合
软硬一体软件为主
比通用计算机资源少
程序代码固化在非易失存储器中(注意不是在硬盘中,一般在存储芯片或者单片机本身之中)
需专门开发工具和环境
体积小、价格低、工艺先进、性能价格比高、系统配置要求低、实时性强
对安全性和可靠性的要求高

5.1.分类

根据用途的不同可分为嵌入式实时系统和嵌入式非实时系统两种,而嵌入式实时系统又可以分为强实时系统和弱实时系统。从安全性要求看,嵌入式系统还可以分为安全有关系统和非安全攸关系统。

5.2.嵌入式系统层级

嵌入式系统分为5个层级:
1、硬件层:主要是为嵌入式系统提供运行支撑的硬件环境,其核心是微处理器、存储器、I/O接口和通用设备以及总线、电源、时钟等。
2、抽象层:在硬件层和软件层之间为抽象层,主要实现对硬件层的硬件进行抽象,为上层应用提供虚拟的硬件资源:板级支持包是一种硬件驱动软件,它是面向硬件层的硬件芯片或电路进行驱动,为上层操作系统提供对硬件进行管理的支持。
3、操作系统层:操作系统层主要由嵌入式操作系统、文件系统、图形用户接口、网络系统和通用组件等可配置模块组成。
4、中间件层:一般位于操作系统之上,管理计算机资源和网络通信,中间件层是连接两个独立应用的桥梁。
5、应用层:应用层是指嵌入式系统的具体应用,主要包括不同的应用软件。

5.3.嵌入式数据库系统EDBMS

使用环境特点:
设备随时移动性
网络频繁断接
网络条件多样化
通信能力不对称

系统组成:
一个完整的EDBMS系统由若干个子系统构成,包括:主数据库、同步服务数据库、嵌入式数据库和连接网络等几个子系统。
嵌入式移动数据库在实际应用中必须解决好数据的一致性、高效事务处理和数据安全性等关键问题。
在这里插入图片描述

5.4.嵌入式操作系统EOS

与通用操作系统相比,EOS主要具有以下特点:
1、微型化
2、代码质量高
3、专业化
4、实时性强
5、可裁剪和可配置

5.5.嵌入式实时操作系统RTOS

嵌入式实时系统是指一种完全嵌入受控器件内部,为特定应用而设计的专用计算机系统。在嵌入式实时系统中,要求系统在投入运行前即具备确定性和可预测性。
可预测性:系统在运行之前,其功能、响应特性和执行结果是可预测的。
确定性:系统在给定初始状态和输入条件下,在确定的时间内给出确定的结果。

实时操作系统RTOS的特点:
当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理结果又能在规定时间之内来控制生产过程或对处理系统做出快速响应,并控制所有实时任务协调一致运行。因为提供及时响应和高可靠是其主要特点。
实时操作系统由硬实时和软实时之分,硬实时要求在规定时间内必须完成操作,这是在操作系统设计时保证的;软实时则只要按照任务的优先级,尽可能快地完成操作即可。
实时操作系统的特征:
高精度计时系统
多级中断机制
实时调度机制

6.嵌入式软件设计

一个典型的交叉平台开发环境,包括三个高度集成的部分。
1、运行在宿主机和目标机上的强有力的交叉开发工具和实用程序。
2、运行在目标机上的高性能、可裁剪的实时操作系统。
3、连接在宿主机和目标机的多种通信方式,例如:以太网、USB、串口等。

6.1.交叉编译

在一个平台上生成另一个平台上执行的代码。嵌入式系统的开发需要借助宿主机来编译出目标机的可执行代码。

6.2.交叉调试

在宿主机和目标机之间进行交叉调试,调试器仍然运行在宿主机的通用操作系统之上,但被调试的进程确实运行在基于特定硬件平台的嵌入式操作系统中,调试器和被调试的进程通过串口或者网络进行通信,调试器可以控制、访问被调用进程,读取被调试进程的当前状态,并能够改变调试进程的运行状态。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值