系统分析师备考第十七章-嵌入式技术

欢迎你来读这篇博客,这篇博客主要是关于系分考点·嵌入式技术的分享。
其中包括了关于我的经验和收集的知识分享。

正文

不是很重要,注意选择题就行了。大题不建议选做这个。

原本第十八章是关于企业经济、管理和数学相关的知识,不做整理了,也不是很难。

略过一章。

嵌入式微处理器

嵌入式微处理器体系结构

冯诺依曼结构传统计算机采用冯·诺依曼(Von Neumann)结构,也称普林斯顿结构是一种将程序指令存储器和数据存储器合并在一起的存储器结构。

冯·诺依曼结构的计算机程序和数据共用一个存储空间,程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置。

采用单一的地址及数据总线,程序指令和数据的宽度相同处理器执行指令时,先从储存器中取出指令解码,再取操作数执行运算,即使单条指令也要耗费儿个甚至几十个周期,在高速运算时,在传输通道上会出现瓶颈效应。

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

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

微处理器分类

根据嵌入式微处理器的字长宽度,可分为4位、8位、16 位、32 位和64 位。般把16 位及以下的称为嵌入式微控制器(Embedded Micro
Controller),32 位及以上的称为嵌入式微处理器。

如果按系统集成度划分,可分为两类:一种是微处理器内部仅包含单纯的中央处理器单元,称为一般用途型微处理器:另一种则是将CPU、ROM、RAM
及I/0 等部件集成到同一个芯片上,称为单芯片微控制器(singlechipMicrocontroller)

如果根据用途分类一般分为嵌入式微控制器MCU、嵌入式微处理器MPU、嵌入式数字信号处理器DSP、嵌入式片上系统SOC等。

嵌入式微控制器MCU的典型代表是单片机,其片上外设资源比较丰富,适合于控制。MCU芯片内部集成ROM/EPROM、RAM、总线、总线逻辑、定时/计数器、看门狗、1/0、串行口、脉宽调制输出、A/D、D/A、FIash
RAM、EEPROM等各种必要功能和外设。和嵌入式微处理器相比,微控制器的最大特点是单片化体积大大减小,从而使功耗和成本下降、可靠性提高,其片上外设资源一般较丰富,适合于控制,是嵌入式系统工业的主流。

嵌入式微处理器MPU由通用计算机中的CPU演变而来。它的特征是具有32位以上的处理器,具有较高的性能,当然其价格也相应较高。但与计算机处理器不同的是,在实际嵌入式应用中,只保留和嵌入式应用紧密相关的功能硬件去除其他的冗余功能部分,这样就以最低的功耗和资源实现嵌入式应用的特殊要求。与工业控制计算机相比,嵌入式微处理器具有体积小、重量轻、成本低可靠性高的优点。目前常见的有ARM、MIPS、POWER
PC等,

嵌入式数字信号处理器DSP是专门用于信号处理方面的处理器,其在系统结构和指令算法方面进行了特殊设计,具有很高的编译效率和指令的执行速度采用哈佛结构,流水线处理,其处理速度比最快的CPU还快10-50倍。在数字滤波、FFT、谱分析等各种仪器上DSP获得了大规模的应用。

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

多核处理器

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

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

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

多核CPu的调度

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

嵌入式软件与操作系统

嵌入式软件嵌入式系统

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

嵌入式软件分类

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

板级支持包(BSP)是介于主板硬件和操作系统中驱动层程序之间的一层,般认为它属于操作系统一部分,主要是实现对操作系统的支持,为上层的驱动程序提供访问硬件设备寄存器的函数包,使之能够更好的运行于硬件主板。

具体功能包括:

  • 1.单板硬件初始化,主要是CPU的初始化,为整个软件系统提供底层硬件支持
  • 2.为操作系统提供设备驱动程序和系统中断服务程序
  • 3.定制操作系统的功能,为软件系统提供一个实时多任务的运行环境
  • 4.初始化操作系统,为操作系统的正常运行做好准备。

主要具有以下两个特点。

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

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

BootLoader是嵌入式系统加电后运行的第一段软件代码,是在操作系统内核运行之前运行的一小段程序,通过这段程序,可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境设置到一个合适的状态,以便为最终调用操作系统内核做好准备。一般包括以下功能:

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

在一个嵌入式系统当中,操作系统是可能有也可能无的。但无论如何,设备驱动程序是必不可少的。所谓的设备驱动程序,就是一组库函数,用来对硬件进行初始化和管理,并向上层软件提供良好的访问接口。

对于不同的硬件设备来说,它们的功能是不一样的,所以它们的设备驱动程序也是不一样的。但是一般来说,大多数的设备驱动程序都会具备以下的一些基本功能。

  • 硬件启动:在开机上电或系统重启的时候,对硬件进行初始化硬件关闭:*将硬件设置为关机状态。硬件停用:暂停使用这个硬件。
  • 硬件启用:重新启用这个硬件。
  • 读操作:从硬件中读取数据
  • 写操作:往硬件中写入数据

嵌入式实时操作系统

嵌入式系统的组成嵌入式处理器。

  • (1)嵌入式系统的核心部件是各种类型的嵌入式处理器。
  • (2)总线。嵌入式系统的总线一般分为片内总线和片外总线。
  • (3)存储器。嵌入式系统的存储器主要包括主存和外存。
  • (4)I/O 设备与接口。嵌入式系统的输入设备因其应用领域的不同,有多种多样,比较常见的有键盘、鼠标、触摸屏、手柄和声控开关等。
  • (5)操作系统。嵌入式操作系统由操作系统内核、应用程序接口和设备驱动程序接口等几部分组成,一般采用微内核结构。
  • (6)应用支撑软件。应用支撑软件一般由窗口系统、网络系统、数据库管理系统和Java虚拟机等部分组成,但这些部分都不是必须的,不同的嵌入式系统具有不同的应用支撑软件。
  • (7)应用软件。应用软件位于嵌入式系统层次结构的最上层,直接与最终用户交互,是系统整体功能的集中体现。

嵌入式系统的特点

  • (1)系统专用性强。嵌入式系统是针对具体应用的专门系统,它的个性化很强软件和硬件结合紧密。一般要针对硬件进行软件的开发和移植,根据硬件的变化和增减对软件进行修改。
  • (2)系统实时性强。很多嵌入式系统对外来事件要求在限定的时间内及时做出响应,具有实时性,
  • (3)软硬件依赖性强。嵌入式系统的专用性决定了其软硬件的互相依赖性很强两者必须协同设计,以达到共同实现预定功能的目的,并满足性能、成本和可靠性等方面的严格要求。
  • (4)处理器专用。嵌入式系统的处理器一般是为某一特定目的和应用而专门设计的。通常具有功耗低、体积小和集成度高等优点。。
  • (5)多种技术紧密结合的紧密程度不及嵌入式系统。通用计算机技术也离不开这些技术,但它们相互结合。
  • (6)系统透明性。嵌入式系统在形态上与通用计算机系统差异甚大。它的输入设备往往不是常见的鼠标和键盘之类的设备,甚至没有输出装置。
  • (7)系统资源受限。嵌入式系统为了达到结构紧凑、高可靠性和低成本的目的其存储容量、I/0 设备的数量和处理器的处理能力都比较有限。

嵌入式数据库系统EDBMS - 感觉不会考,不整理了。

嵌入式操作系统EOS与通用操作系统相比,EOS 主要有以下特点:

  • (1)微型化。EOS的运行平台不是通用计算机,而是嵌入式系统。这类系统般没有大容量的内存,几乎没有外存,因此,EOS必须做得小巧,以占用尽量少的系统资源。
  • (2)代码质量高。在大多数嵌入式应用中,存储空间依然是宝贵的资源,这就要求程序代码的质量要高,代码要尽量精简。
  • (3)专业化。嵌入式系统的硬件平台多种多样,处理器的更新速度快,每种处理器都是针对不同的应用领域而专门设计的。因此,EOS要有很好适应性和移性,还要支持多种开发平台。
  • (4)实时性强。嵌入式系统广泛应用于过程控制、数据采集、通信、多媒体信息处理等要求实时响应的场合,因此,实时性成为EOS的又一特点。
  • (5)可裁减和可配置。应用的多样性要求EOS 具有较强的适应能力,能够根据应用的特点和具体要求进行灵活配置和合理裁减,以适应微型化和专业化的要求。

嵌入式实时系统是一种完全嵌入受控器件内部,为特定应用而设计的专用计算机系统。在嵌入式实时系统中,要求系统在投入运行前即具有确定性和可预测性。

  • 可预测性是指系统在运行之前,其功能、响应特性和执行结果是可预测的
  • 确定性是指系统在给定的初始状态和输入条件下,在确定的时间内给出确定的结果。

实时操作系统(RTOS)的特点当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统做出快速响应,并控制所有实时任务协调一致运行。

因而,提供及时响应和高可靠性是其主要特点。

实时操作系统有硬实时和软实时之分硬实时要求在规定的时间内必须完成操作,这是在操作系统设计时保证的;软实时则只要按照任务的优先级,尽可能快地完成操作即可。

实时操作系统的特征

  • 高精度计时系统计时精度是影响实时性的一个重要因素。在实时应用系统中,经常需要精确确定实时地操作某个设备或执行某个任务,或精确的计算一个时间函数。这些不仅依赖于一些硬件提供的时钟精度,也依赖于实时操作系统实现的高精度计时功能。
  • 多级中断机制-个实时应用系统通常需要处理多种外部信息或事件,但处理的紧迫程度有轻重缓急之分。有的必须立即作出反应,有的则可以延后处理。因此,需要建立多级中断嵌套处理机制,以确保对紧迫程度较高的实时事件进行及时响应和处理。
  • 实时调度机制实时操作系统不仅要及时响应实时事件中断,同时也要及时调度运行实时任务但是,处理机调度并不能随心所欲的进行,因为涉及到两个进程之间的切换,只能在确保“安全切换”的时间点上进行,实时调度机制包括两个方面,
    • 一是在调度策略和算法上保证优先调度实时任务;
    • 二是建立更多“安全切换”时间点,保证及时调度实时任务。

嵌入式开发

嵌入式软件设计

典型的交叉平台开发环境,包含三个高度集成的部分:

  • 运行在宿主机和目标机上的强有力的交叉开发工具和实用程序
  • 运行在目标机上的高性能、可裁剪的实时操作系统。
  • 连接宿主机和目标机的多种通信方式,例如,以太网、USB、串口等。

软件开发工具

交叉编译:
嵌入式软件开发所采用的编译为交叉编译。所谓交叉编译就是在个平台上生成可以在另一个平台上执行的代码。编译的最主要的工作就在将程序转化成运行该程序的CPU所能识别的机器代码,由于不同的体系结构有不同的指令系统。因此,不同的CPU需要有相应的编译器,而交叉编译就如同翻译一样,把相同的程序代码翻译成不同CPU的对应可执行二进制文件。嵌入式系统的开发需要借助宿主机(
通用计算机)来编译出目标机的可执行代码。

交叉调试:
嵌入式软件经过编译和链接后即进入调试阶段,调试是软件开发过程中必不可少的一个环节,嵌入式软件开发过程中的交叉调试与通用软件开发过程中的调试方式有很大的差别。在嵌入式软件开发中,调试时采用的是在宿主机和目标机之间进行的交叉调试周试器仍然运行在宿主机的通用操作系统之上,但被调试的进程却是运行在基于特定硬件平台的嵌入式操作系统中,调试器和被调试进程通过串口或者网络进行通信,调试器可以控制、访问被调试进程,读取被调试进程的当前状态并能够改变被调试进程的运行状态。

嵌入式软件的开发可以分为几个阶段:编码、交叉编译、交叉调试。

编辑器:
用于编写嵌入式源代码程序,从理论上来说,任何一个文本编辑器都可以用来编写源代码。各种集成开发环境会提供功能强大的编辑器,如VS系列、eclipse、kei、css等。常见的独立编辑器:
UE、Source Insight、vim等

编译器gcc:编译阶段的工作是用交叉编译工具处理源代码,生成可执行的目标文件,在嵌入式系统中,由于宿主机和目标机系统不一样,需要使用交叉编译,GNU
C/C++(gcc)是目前常用的一种交叉编译器,支持非常多的宿主机/标机组合。

调试器qdb在开发嵌入式软件时,交又调试是必不可少的一步。嵌入式软件调试特点:
调试器运行在宿主机上,被调试程序运行在目标机上。调试器通过某种通信方式与目标机建立联系,如串口、并口、网络、JTAG等在目标机上一般有调试器的某种代理,能配合调试器一一起完成对目标机上运行程序的调试,可以是软件或支持调试的硬件。gdb是GNU开源组织发布的一个强大的程序调试工具。

参考资料

  • 官方教材-系统分析师综合教程

启示录

富贵岂由人,时会高志须酬。

能成功于千载者,必以近察远。


系统分析师备考第十七章-嵌入式技术
https://allendericdalexander.github.io/2024/04/16/system_analyst17/
作者
AtLuoFu
发布于
2024年4月16日
许可协议