系统架构设计师-第16章-嵌入式系统架构设计理论与实践-软考学习笔记
嵌入式系统( Embedded System) 是为了特定应用而专门构建的计算机系统,其架构是随着嵌入式系统的逐步应用而发展形成的。嵌入式软件架构的设计与嵌入式系统的体系架构是密不可分的。因此,本常首先介绍嵌入式系统硬件相关知识(系统特征、硬件组成和分类等)。其次,就嵌入式软件的架构设计原理、嵌入式的基础软件、嵌入式架构设计方法等进行详细论述。
嵌入式系统概述
嵌入式系统发展历程
嵌入式系统的发展大致经历了五个阶段:
第一阶段: 单片微型计算机(SCM ) 阶段,即单片机时代. 这一阶段的嵌入式系统硬件是单片机,软件停留在无操作系统阶段,采用汇编语言实现系统的功能. 这阶段的主要特点是:系统结构和功能相对单一,处理效率低、存储容量也十分有限,几乎没有用户接口。
第二阶段: 微控制器( MUC ) 阶段。主要的技术发展方向是:不断扩展对象系统要求的各种外用电路和接口电路,突显其对象的智能化控制能力。这一阶段主挺以嵌入式微处理器为基础,以简单操作系统为核心, 主要特点是硬件使用嵌入式微处理棉、微处理器的种类繁多,通用性比较弱,系统开销小,效率高。
第三阶段:片上系统(SoC) 。主要特点是:嵌入式系统能够运行于各种不同类型的微处理器上,兼秤性好,操作系统的内核小,效率高。
第四阶段:以Internet 为基础的嵌入式系统。嵌入式网络化主要表现在两个方面, 一方面是嵌入式处理器集成了恻络接口,另一方是嵌入式设备应用于网络环境中。
第五阶段: 在智能化、云技术情动下的嵌入式系统。
嵌入式系统硬件体系结构
嵌入式系统主要由嵌入式微处理器( 控制器( Micro Control Unit, MCU )) 、存储器( RAM/ROM ) 、内(外)总线逻辑、定时/ 计数器( Time) 、看门狗电路、UO接口〈串口、网络、USB 、JTAG 等)和外部设备(UART 、LED 等)等部件组成
1、嵌入式微处理器
嵌入式微处理器主要用于处理相关任务。
从处理器分类看,大致可分为:
· 微处理器( Micro Processor Unit, MPU)
· 微控制器(Micro Control Unit, MCU)
· 信号处理器(Digital Signal Processor, DSP)
· 图形处理器(Graphics Proccssing Unit, GPU)
· 片上系统( System on Chip, SoC)
2. 存储器
存储器(memory) 主要用于存储程序和各种数据信息的记忆部件,它也是时序逻辑电路的一种。
1 ) RAM ( Random Access Memory ,随机存取存储器)
( 1) DRAM CDynamic RAM , 动态随机存取存储器) 。
(2) SRAM ( Static RAM , 静态随机存取存储器)。
(3) VRAM ( VidωRAM ,视频内存〉。
(4) FPM DRAM ( Fast Page Mode DRAM,快速页切换棋式动态随机牟取倒在苦苦〉。
( 5) EDO DRAM (Extended Data Out DRAM , 延伸数据输出动态随机存取存储器).
( 6 ) BEDO DRAM ( Burst Extended Data Out DRAM , 爆发式延伸数据输出动态随机存取存
储器)。
(7) MDRAM ( Multì-Bank: DRAM,多插槽动态随机存取布~{i的措)。
( 8 ) WRAM ( Window RAM ,窗口随机存取存储器)。
(9) RDRAM ( Rambus DRAM , 高频动态随机存取存储器)。
(10) SDRAM CSynchronous DRAM,同步动态随机存取存储器〉。
( 11) SGRAM C Synchronous Graphics RAM ,同步绘图随机存取存储器)。
( 12) SB SRAM (Synchronous Burst SRAM,同步爆发式静态随机存取存储器〉。
(13) PB SRAM (Pipeline Burst SRAM,笆'线爆发式静态随机存取存储器)。
(14) DDR SDRAM (Double Data Rate SDRAM , 二倍速率同步动态随机存取存储器)。
( 15) SLDRAM (Synchronìze LinkDRAM,同步链环动态随机存取存储器〉。
(16) CDRAM CCached DRAM ,同步缓存动态随机存取存储器)。
(17) DDRII(Double Data Rate Synchronous DRAM,第二代同步双倍速率动态随机存取存
储器)。
(18) DRDRAM ( Direct Rambus DRAM ) 。
2) ROM ( Read Only Memory ,只读存储器)
根据组成元件的不同, ROM 内存又分为以F5 种:
(1) MASK ROM (掩模型只读存储器)。
制造商为了大量使产ROM 内存,需要先制作一颗有原始数据的ROM 或EPROM 作为样本,然后再大此复制,这一样本就是MASKROM,而烧录在MASKROM 中的资料永远无法做修改。它的成本比较低。
(2) PROM ( Programmable ROM , 可编程只读存储器〉。
这是一种可以用刻呆机将资料写入的ROM 内存, 但只能写入一次,所以也被称为"一次可编程只读存储辑" (One Time Programming ROM, OTP-ROM ) 0 PROM 在出厂时,存储的内容金为L 用户口J 以根据需要将其中的某些单元写入数据O( 部分的PROM 在出厂时数据全为0 ,则用户可以将其中的部分单元写入1 ) ,以实现对其"编程"的目的.
(3) EPROM CErasable Programmable , 可擦可编程只读存储器〉。
这是一种具有可擦除功能,擦除后即可进行再编程的ROM 内存,写入前必须先把里面的内容用紫外线照射它的IC 卡上的透明视窗的方式来清除掉。这一类芯片比较容易识别,其封装中包含有"石英破璃窗", 一个编程后的EPROM 芯片的"石英玻璃窗"一般使用黑色不干胶纸盖住,以防止遭到阳光直射.
(4) EEPROM ( ElcctricaIly Erasable Programmable. 电可擦可编程只读存储器) 。
功能与使用方式与EPROM 一样,不同之处是清除数据的方式,它是以约20V 的电压来进行消除的。另外'自还可以用电信号:ìtJ:行数据写入。这类ROM 内存多应用于即插即m ( PoP )接口中。
(5) Flash Memory ( 快闪存储器) 。
3. 内{外)总线逻辑
总线存在不同拓扑结构,主要包括星形、树状、环形、总线型和交叉开关型等五种。
按连接部件分类,还可分片内总线、系统总线、局部总线和通信总线等四种。
4. 看门狗电路
(1) IO 接口:
I/O接口是计算机与被控对象进行信息交流的纽带,处理器通过I/O接口与外部设备进行数据交换
常用的IO接口有:
· 串行接口;
· 并行接口;
· 直接数据传送接口:
· 小断控制接口;
· 定时器/计数器接口;
· 离散毡接口;
· 数字/模拟接口等。
(2) 外部设备:
外部设备是指计算机系统中输入、输出设备、外部存储器以及系统调试用的接口的统称。
嵌人式软件架构概述
通用的开放式架构( Generic Open Architecture, GOA )
GOA 架构的主要特点如下:
(1)可移植性。各种计算机应用系统可在具有开放结构特性的各种计算机系统间进行移植,不论这些计算机是否同种型号、同种机型。
(2) 可互操作性。如计算机网络中的各结点机都具有开放结构的特性,则该网上各结点机问可相互操作和资源共享。
(3)可剪裁性。如某个计算机系统是具有开放结构特性的,则在该系统的低档机上运行的应用系统应能在高档机上运行,原在高档机上运行的应用系统经剪裁后也可在低档机上压行。
(4) 易获得性。在具有开放结构特性的机器上所运行的软件环境易于从多方获得,不受某个来源所控制。
架构设计的目的应充分考虑系统的可靠性、安全性、可伸缩性、可定制性、可维护性、客户体验和市场时机等因素。
嵌入式系统软件架构原理与特征
两种典型的嵌入式系统架构模式
1. 层次化模式架构
层次化模式架构上要设计思想是:
(1) 当一个系统存在高层次的抽象,这些抽象的表现形式是一个个的抽象概念,而这些抽象概念需要H体的低层概念进行实现时,就可采用层次化模式。
(2) 分层模式结构只包含了一个主要的元素(域包)和它的接川,以及用来说明模式结构的约束条件。
(3)层次化模式可以分为两种: 封闭型和开放性。封闭型的特征是: 层中的对象只能调用同一层或下一个底层的对象提供的方法。而开放型一层中的对象可以调刷|司·层或低于该层的任意一层的对象提供的方法。这两种的优缺点在于: 开放型的性能较好,但由于破坏了封装,所以移植性不如封闭型的系统。
2. 递归模式架构
自顶向下
自底向上
嵌人式操作系统
1. 嵌入式操作系统的定义及特点
嵌入式操作系统( Embedded Operating System, EOS ) 是指用于嵌入式系统的操作系统。嵌入式操作系统是一种用途广泛的系统软件,负责嵌入式系统的全部软、硬件资源分配、任务调度、控制、协调并行活动等工作
主要特点。
(1)可剪裁性: 支持开放性和可伸缩性的体系结构:
(2) 可移植性: 操作系统通常可运行在不用体系结构的处理器和开发板上;
(3)强实时性:嵌入式操作系统实时性通常较强,可用于各种设备的控制:
(4) 强紧凑性: 由于嵌入式系统的资源受限的特点,嵌入式操作系统代码需要紧凑、精炼,不应存在无用代码:
(5) 高质量代码: 嵌入式系统已被广泛用于安全攸关系统,要求嵌入式操作系统代码质量要可靠,不存在由于代码的缺陷引发重大损失;
(6) 强定制性: 嵌入式操作系统可根据目标系统的不同需求,进行专业化定制:
(7) 标准接口: 嵌入式操作系统可提供设备统一的驱动接口;
(8) 强稳定性、弱交互性: 嵌入式系统一旦运行就不需要用户过多干预, 这就要负责管理的操作系统具有较强的稳定性。EOS 的用户接口一般不提供操作命令,它是通过系统的调用命令向用户程序提供服务的:
(9) 强确定性: EOS 对任务调度和资源管理应能够确保其在规定的时间、规定的容量内不发生任务超时和资源枯竭;
(10) 操作简洁、方便: EOS 提供友好的图形GUT 和图形界面,追求易学易用;
(11)较强的硬件适应性: 可适应多种类型的硬件资源。这里有两层意思: 其一是代码支持的硬件要有较强的可移植性;其二是可最大限度地发挥硬件处理能力;
(12) 可固化性: 在嵌入式系统中,嵌入式操作系统和应用软件通常是被固化在计算机系统的ROM 中,系统运行时调入内存运行。
2. 嵌入式操作系统的分类
嵌入式操作系统的通常分为两类,一类是面向控制、通信等领域的嵌入式实时操作系统。另一类是面向消费电子产品的非实时嵌入式操作系统
3. 嵌入式操作系统的一般架构
嵌入式操作系统通常由硬件驱动程序、调试代理、操作系统内核、文件系统和口I配置组件等功能组成,并为应用软件提供标准的API ( AppLication Programming Interface) 接口服务。
从嵌入式操作系统体系架构看,主要存在4 种结构:整体结构、层次结构、客户/ 服务器结构和面向对象结构。
4 . 嵌入式操作系统的基本功能
1 )操作系统内核架构
2 )任务管理
实时调度方法:
(1)离线和在线调度。
(2) 抢占和非抢占调度。
(3) 静态和动态调度。
几种典型强实时调度算法:
(1)最早截止时间优先(Earliest Deadline First. EDF) 算法。
(2) 最低松弛度优先(Lcast Laxity First. LLF ) 算法。
(3) 单调速率调度算法(Rate Monotonic Scheduling, RMS) 。
存储管理方法主要包括分区存储管理、分页存储管理、分段存储管理、段页存储管理以及虚拟存储管理等5 种。
分区存储管理又有三种不同的方式:静态分区、可变分区、可重定位分区。
可坐分区调度算法如下:
· 首次适应算法。
· 最佳适应算法。
· 最坏适应算法。
虚拟存储技术不仅可让我们可以使用更多的内存,它还提供了以下功能:
· 寻址空间
· 内存映射
· 物理内存分配
· 共享虚拟内存
5. 典型嵌入式操作系统
嵌入式数据库
1 . 嵌入式数据库的定义及特点
嵌入式数据库系统有以下几个主要特点:
· 嵌入式: 嵌入性是嵌入式数据库的基本特性。嵌入式数据库不仅可以嵌入到其他的软件当中,也可以嵌入到硬件设备当中。
· 实时性: 实时性和嵌入性是分不开的。只有具有了实时性的数据库才能够第一时间得到系统的资源, 对系统的请求在第一时间内做出响应。但是, 并不是具有嵌入性就一定具有实时性。要想嵌入式数据库具有很好的实时性,必须做很多额外的工作。
· 移动性: 移动性是目前在国内提得比较多的一个说法,这和目前国内移动设备的大规模应用有关。可以这么说, 具有嵌入性的数据库一定具有比较好的移动性, 但是具有比较好的移动性的数据库, 不一定具有嵌入性。
· 伸缩性: 伸缩性在嵌入式场合显得尤为重要。
2 . 嵌入式数据库的分类
按照嵌入对象的不同可分类为软件嵌入数据库、设备嵌入数据库、内存数据库;
按照系统结构不同可分类嵌入数据库、移动数据库、小型C/S(客户机/ 服务器)结构数据库等。
按照数据库存储位置的不同而进行分类是目前广泛采用的分类方法,它可以划分为基于内存方式、基于文件方式和基于网络方式三类
(1)基于内存的数据库系统( Main Memory Database System, MMDB ) 是实时系统和数据库系统的有机结合。
(2) 基于文件的数据库(File Database, FDB ) 系统就是以文件方式存储数据库数据,即数据按照一应格式储在在磁盘中.
(3)嵌入式网络数据库主要出三部分组成: 客户端、通信协议和远程服务端。
嵌入式网络数据库系统的
特点是:
· 无需解析SQL语句:
· 支持更多的SQL操作;
· 客户端小、无须支持可剪裁性;
· 有利于代码重用。
3. 嵌入式数据库的一般架构
数据库服务器和嵌入式数据库对比如下:
(1)数据库服务器通常允许非开发人员对数据库进行操作,而在嵌入式数据中通常只允许应用程序对其进行访问和控制。
(2)数据库服务器将数据与程序分离,便于对数据库访问的控制。而嵌入式数据库则将数据的访问控制完全交给应用程序,由应用程序来进行控制。
(3)数据库服务器需要独立的安装、部署和管理, 而嵌入式数据通常和应用程序一起发布,不需要单独地部署一个数据库服务器,具有程序携带性的特点。
1 )基于内存的数据库系统
2) 基于文件的嵌入式数据库系统
3 )基于网络的数据库系统
4. 嵌入式数据库的主要功能
嵌入式数据库的功能应与边用数据库功能相似, 应覆盖数据库的核心功能。通常,嵌入式数据库有其自身的特殊而耍,它应只备的功能包括以下4 点:
· 足够高效的数据存储机制;
· 数据安全控制〈锁机制) ;
· 实时事务管理机制:
· 数据库恢复机制(历史数据存储〉。
一般嵌入武数据库可划分成数据库运行处理、数据库存取、数据管理、数据库维护和数据库定义等功能
数据库运行处理: 主要负责实现嵌入式数据库运行过程的各种功能。包括实时事务管理、并发控制、数据库装入、运行日志维护、安全性和完整性控制等。
数据库存取: 上耍负责实现嵌入式数据库各种存取和查询功能. 包括实时数据更新、历史数据查询、数据添加、数据删除等。
数据管理:主要负责实现嵌入式数据库的数据空间管理功能。包括缓冲区管理、数据存储空间管理、数据索引管理等。
数据库维护:主要负责实现嵌入式数据库的数据维护管理功能。包括数据恢复、实时数据转储、数据装入等。
数据库定义:主要负责实现嵌入式数据库的安全性、完整性的定义功能。
5. 典型嵌入式数据库系统
嵌入式数据库中比较典型的三个产品是SQLite、Berkeley DB 和Firebird 嵌入服务器版,
嵌人式中间件
1. 嵌入式中间件的定义及特点
中间件具有以下共性特点:
· 通用性:满足大量应用的需要:
· 异构性: 运行于多种硬件和操作系统平台;
· 分布性: 支持分布式计算,提供跨网络、硬件和操作系统平台的透明性的应用或服务的交互功能;
· 协议规范性: 支持各种标准的协议;
· 接口标准化:支持标准的接口。
具体到嵌入式中间件而言,它还应提供对下列环域的支持:
· 网络化:支持移动、无线环境下的分布应用,适应多种设备特性以及不断变化的网络环境;
· 支持流媒体应用,道应不断变化的访问流量和宽带约束:
· QoS质量品质: 在分布式嵌入式实时环境下,适应强QoS的分布应用的软硬件约束;
· 适应性:能够适应未来确定的应用要求。
2. 嵌入式中间件的分类
中间件分为终端仿真/屏幕转换中间件、数据访问中间件、远程过程调用中间件、消息中间件、交易中间件和对象中间件六大类。
从现代中间件观点后, 通用中|同件大致存在以下几类:
· 企业服务总统中间件(Enterprise Service Bus, ESB) : ESB是一种开放的、基于标准的分布式同步/异步信息传递中间件。通过XML 、Web服务接I J 以及标准化基于规则的路由选择文挡支持, ESB为企业应用程序提供安全豆用性。
· 事务处理( Transaction Processing. TP ) 监控器: 为发生在对象闽的事务处理提供监控功能, 以保证操作成功。
· 分布式计算环境( Distributed Computing Environment ) : 指创建运行在不同平台上的分布式应用和序所需的一组技术服务。
.远程过程调用 ( Remote Procedure Call) : 指客户机向服务器发送关于运行某程序的情求时所需的标准。
· 对象请求代理( Obj ect Request Broker. ORB) : 为用户提供与其他分布式网络环境中对象通信的接口。
· 数据库访问中间( Database Access Middleware) : 支持用户防问各种操作系统成应用程序中的数据库。
· 消息传递( Mcssagc passing) : 电子邮件系统是该类中间件的其中之一。
· 基于XML的巾间件( XML-B ased Middleware ) : XML允许开发人员为实现fntemet巾交换结构化信息而创建文档。
3 . 嵌入式中间件的一般架构
1 )消息中间件
消息巾间件是消息传输过程中保存消息的一种容器。
消息中间件具有两个基本特点:
(1)采用异步处理模
(2) 应用程序和应用程序调用关系为松耕合关系
2) 分布式对象中间件
分布式对象中间件是为了解决分布计算和软件复用过程中存在的异构问题而提出的。
分布式对象中间付具有三个草本特点:
· 对象组件之间普遍采用软总线技术;
· 具有不依赖f编程珩吉、软硬件平台和网络协议等特点;
· 对象可以用任何一种软件开发商所支持的语言和平台来实现。
分布A对象中间件技术有:
• OMG (对象管理组织) 的公共对象请求代理结构<CORBA ) : 规定了分布式对象之间如何实现五操作:
• Mìcroso位公司的分.{Ii式组件对象模型( DCOM ) : 主要是为不同网络环境中的分布式对象提供交互标准:
• Java商、l忧应用组件技术EJB: 采用一种面向服务器端分布式构件的技术。
4. 嵌入式中间件的主要功能
嵌入式中间件的主要作用是对嵌入式应用屏蔽底层操作系统的异构性。其常用功能有网络通信、布储管理和数据处理等。
5 . 典型嵌入式中间件系统
嵌入式系统使用最为广泛的中间件有两个产品,
公共对象请求代理结构( CORBA )
数据分发服务( Data Distribution Service, DDS) 。
CORBA 的技术特征:
· 完整的作为事务代理的中间件:
· 客户端与服务器的可完全分离;
· 提供软件总线机制,支持多环境、多语种的分布式集成;
· 完整的对象内部细节的封装:
· 实时性强。
DDS 的技术特征:
· 灵活的发布/订阅模式;
· 完整DDS规范QoS服务质量策略:
· 己扩展的QoS服务质量策略;
· 互操作:
· 强实时:
· 跨平台:
· 支持多种底层物理通信协议:
· 支持仿真、测试和安装的全生命周期服务。
嵌入式系统软件开发环境
嵌入式系统软件开发环境主要能力包括:集成开发、工程管理、编译(汇编〉器、批处理文件、构建( Make ) 、配置管理、调试、下载、模拟、版本控制及其他。
嵌入式系统软件开发环境的主要特点:
· 集成开发环境Ontegrated Development Environment. IDE) : 是指用于提供程序开发环境的应用程序。一般包括代码编辑器、编译器、调试器和图形用户界面等工具。
· 交叉开发( Cross Deve lopment) : 是指软件开发先在一台通用计算机上进行软件的编辑、编译与连接,然后下载到嵌入式设备中运行调试的开发过程。
· 开放式体系结构: 是指开发环境应建立在一种标准的框架体系内,符合相关标准。
· 可扩展性: 是指开发环境中的工具接口符合相关架构标准,可根据需jf进行工具能力的扩充.
· 良好的可操作性: 是指两个或多个工具间可以实现自动交换信息功能.
· 可移植性: 开发系统中的开发工具基本上采用高级语言实现.
· 可配置性: 开发环境中的主要开发工具可以根据需要进行伸缩,也可以根据需要选择支持库中的代码规模.
· 代码的实时性: 嵌入式软件一般都是运行在实时环境中,需要编译器生成高效的程序代码。一般开发环境支持多种代码优化功能。
· 可维护性: 开发环境中的工具间需要松辑合,可方便地对具体工具进行升级和维护。
· 友好用户界面: 开发环挠界面要简洁、清断,符合人们操作习惯。
嵌入式系统软件开发环境的分类
。根据嵌入式系统软件的调试方法的不同,可分为模拟器方法、在线仿真器方法、监控器方法、JTAG 仿真器等。
,常用的工具应包括:编辑器、编译器、汇编器、构建器、调试器、函数库、目标板、在线仿真器等。
嵌入式软件开发环境的一般架构
嵌入式系统软件开发环境的主要功能
嵌入式系统软件开发环境的功能应覆盖嵌入式软件开发过扭,即编码过程、编译过程、构建过程、下载过程、调试过程和运行过程等
典型嵌入式开发环境
基于GCC 开源工具的软件开发环境: GCC 是一个编译器集合,是GNU Compiler Collection组织提供的一套面向嵌入式领域的交叉编译环境。GNU GCC 的基本功能包括:
· 输出预处理后的C/C++源程序:
· 输出C/C++源程序的汇编代码:
· 输出二进制目标文件;
· 生成静态障;
· 生成可执行程序:
· 转换文件格式。
GCC 的优势任于:
· 支持众多的前端编科语言:
· 支持众多的目标处理器体系结构,具有良好的可移植性:
· 具备丰富的配置工具链支持:
· 提供可靠、高效、高质量的目标代码。
Workbench 软件开发环境
主要特点:
· 以开放的Eclipse平台为框架, 调试环境可充分进行客户化定制:
· 单一的全功能平台,涉及产品的整个开发周期:
· 广泛的适用性,特别适合复杂的目标系统;
· 丰富易用的调试孚段, 大大加快调试进度。
MULTt 集成开发环境的主要特点:
· 具有追踪和反向追踪能力。用于可以充分利用追踪到的数据, 重复追踪指导找错并修正:
· 以可视化的方法呈现整个程序在时间上的各种行为, 用户可快速查找定位修复错误:
· 可帮助用户发现错误、进行测试和优化程序,优化嵌入式系统的代码质茧, 提升嵌入式产品质量;
· 提供独特的代码覆盖t具,确保系统全面测试.
嵌入式系统软件架构设计方法
架构设计的目的是:
· 保证应用的代码逻辑清晰,避免重复的设计;
· 实现软件的可移植'性;
· 最大限度的实现软件复用;
· 实现代码的高内聚、低稠合。
软件架构并非可运行软件,它是一种表达,使软件工程师能够:
· 分析设计在满足规定需求方面的有效性:
· 考虑体系结构可能的选择方案;
· 降低与软件构造相关联的风险。
基于架构的软件设计开发方法的应用
属性驱动的软件设计方法
1 . ADD 开发方法的质量属性
1)质量属性
质址属性重点关注的是可靠性、安全性、可用性、可修改性、性能、可测试性、易用性和可维护性等。
2)质量场景
质量场景通常由剌激源、剌激、环境、制品、响应和响应度;单:等6 个部分组成。
2 . ADD 开发过程
采用ADD 方法进行软件开发时,需要经历评审、选择驱动因子、选择系统元素、选择设计概念、实体化元素和定义接口、草拟槐图和分析评价等七个阶段
实时系统设计方法
1. DARTS 开发方法的基本概念
2. DARTS 开发过程
1 )用实时结构化分析方法( RTSA) 开发系统规范
2 )将系统划分为多个并发任务
3 )定义任务间接口
4 )设计每个任务
5 ) 设计过程的成果
3.DARTS 开发方法的评价
嵌入式系统软件架构案例分析
鸿蒙操作系统架构案例分析
面向安全攸关系统的跨领域GENESYS系统架构案例分析
物联网操作系统软件架构案例分析
物联网操作系统的主要特征包括:
(1)内核尺寸伸缩性以及整体架构的可扩展性。
物联网的发展已进入规模化应用,操作系统整体架构的灵活性和可扩展性决定了一个企业的商业发展。为了适应不同的应用场景下的技术要求, 需要内核具有良好的伸缩性。
( 2 ) 内核的实时性。
物联网操作系统是对末端设备和设施的管理,也应属于强实时系统的实时性要求。比如常见的中断响应和多任务调度等情况下,操作系统的实时性便有了旦高的祟求,特别是对于大多数的物联网应用而言,良好的响同时间决定了市场的需求。
(3)高可在忡。
布物联网的1丘J+J环境下,面对海量节点可以说设备-经投入使肘,就很难再去维护。所以节点的平均无故障运行时间和在一些严苛环境下能够正常运行显得北为重要。
( 4 ) 低功辑。
由于物联网的应用场景和网络节点的数量增多,低功耗是一个非常关键的指标。
相关文章:
系统架构设计师-第16章-嵌入式系统架构设计理论与实践-软考学习笔记
嵌入式系统( Embedded System) 是为了特定应用而专门构建的计算机系统,其架构是随着嵌入式系统的逐步应用而发展形成的。嵌入式软件架构的设计与嵌入式系统的体系架构是密不可分的。因此,本常首先介绍嵌入式系统硬件相关知识(系统特征、硬件组…...
pod进阶
目录 资源限制 CPU 资源单位 内存 资源单位 实例 健康检查 探针的三种规则: Probe支持三种检查方法: 示例1:exec方式 示例2:httpGet方式 示例3:tcpSocket方式 示例4:就绪检测 扩展 资源限制 当定…...
系列四十七、Spring的事务传播行为案例演示(七)#NOT_SUPPORTED
一、演示Spring的传播行为(NOT_SUPPORTED) 1.1、StockServiceImplNOT_SUPPORTED /*** Author : 一叶浮萍归大海* Date: 2023/10/30 15:43* Description: 演示NOT_SUPPORTED的传播行为* 外部不存在事务:不开启新的事务* 外部存在…...
54.RabbitMQ快速实战以及核心概念详解
MQ MQ:MessageQueue,消息队列。这东西分两个部分来理解: 队列,是一种FIFO 先进先出的数据结构。 消息:在不同应用程序之间传递的数据。将消息以队列的形式存储起来,并且在不同的应用程序之间进行传递&am…...
Qt TreeView 设置节点不可编辑
目录 1. 创建treeview 2、节点不可编辑 3、设置logo 4、实例代码 1. 创建treeview //声明模型 QStandardItemModel *model;//创建4行,1列的模型 model new QStandardItemModel(4,1);//添加标题 model->setHeaderData(0, Qt::Horizontal, tr("Tree View…...
python django获取某个角色的某个数据和——例如:获取所有订单的应付金额总和
model关系如下: class Order(models.Model):订单product models.ForeignKey(Product, on_deletemodels.SET_NULL, blankTrue, nullTrue, verbose_name"产品")no models.CharField(max_length50, blankTrue, nullTrue, verbose_name订单编号, db_indexT…...
如何在React项目中引用less
安装less npm install less less-loader --save-dev暴露 webpack 文件 利用 npx create-react-app 搭建的 React 项目,默认隐藏 webpack 配置文件,引入 less 需要修改 webpack 配置文件,因此我们需要执行命令暴露 webpack 配置文件。 请先将…...
NUXT前端服务端渲染技术框架
服务端渲染又称SSR(Server Side Render)实在服务端完成页面的内容,而不是在客户端通过AJAX获取数据 优势:更好的SEO,由于搜索引擎爬虫抓取工具可以直接查看完全渲染的页面 Nuxt.js是一个基于Vue.js的轻量级应用框架&a…...
力扣每日一题90:子集
题目描述: 给你一个整数数组 nums ,其中可能包含重复元素,请你返回该数组所有可能的子集(幂集)。 解集 不能 包含重复的子集。返回的解集中,子集可以按 任意顺序 排列。 示例 1: 输入&#x…...
「linux基础」上传代码到github/gitee
一、在gitee创建一个仓库 1.创建仓库 2.获取仓库地址 二、克隆仓库文件到linux中 1.查看Linux中是否安装git:git --version 如果没有,在root下使用指令 yum install -y git 安装。 2.使用 git clone 仓库地址,克隆仓库文件到linux中 三、第…...
Hafnium总体考虑
安全之安全(security)博客目录导读 目录 一、安全世界构建平台 二、安全分区调度 三、平台拓扑...
C#__对Json文件的解析和序列化
Json: 存储和交换文本信息的语法。(类似XML,语法独立) 一种轻量级的数据交换格式。(更小,更快,更易解析) 语法规则: 数据在键值对里面,数据由逗号分隔开。 …...
如果一定要在C++和JAVA中选择,是C++还是java?
如果一定要在C和JAVA中选择,是C还是java? 计算机专业的同学对这个问题有疑惑的,- 定要看一下这个回答! 上来直接给出最中肯的建议: 如果你是刚刚步入大学的大一时间非常充裕的同学,猪学长强烈建议先学C/C.因为C 非常 最近很多…...
如何运行深度学习项目代码
运行项目代码是第一步哦! 配环境 使用anaconda环境; conda 环境 按照项目提示的README.md,安装指定版本的python; 当然新版python会兼容旧版,也就是你的环境下python版本比它高也不要紧; 但是更新的pyt…...
C语言 每日一题 day9
求最大值及其下标 本题要求编写程序,找出给定的n个数中的最大值及其对应的最小下标(下标从0开始)。 输入格式 : 输入在第一行中给出一个正整数n(1 < n≤10)。第二行输入n个整数,用空格分开。 输出格式 …...
通讯网关软件032——利用CommGate X2OPC实现OPC客户端访问Modbus TCP设备
本文介绍利用CommGate X2OPC实现OPC客户端连接Modbus TCP设备。CommGate X2OPC是宁波科安网信开发的网关软件,软件可以登录到网信智汇(http://wangxinzhihui.com)下载。 【案例】如下图所示,SCADA系统上位机、PLC、设备具备Modbus TCP通讯接口ÿ…...
[计算机提升] 查看系统软件
3.1 查看系统软件 此处系统软件为系统安装后自带的一些软件、工具等。包括:管理工具、系统工具、轻松使用工具、附件等。 方法一:通过菜单打开系统软件 1、点击左下角windows菜单键,在弹出的菜单中,任一点击一个字母(示例中为C)&…...
【mysql】单表数据量过大解决方案
文章目录 背景问题方案数据库冷热数据分离方案 背景 包装码表单表数据量很大,造成查询瓶颈;目前单表数据量达到3000w,单表字段数16 问题 索引膨胀,查询耗时长,影响正常CRUD … 方案 ● 分区 按日期…范围&#x…...
Kafka - 3.x 消费者 生产经验不完全指北
文章目录 生产经验之Consumer事务生产经验—数据积压(消费者如何提高吞吐量) 生产经验之Consumer事务 Kafka引入了消费者事务(Consumer Transactions)来确保在消息处理期间维护端到端的数据一致性。这使得消费者能够以事务的方式…...
UDP网络编程的接受与发送信息
/发送端B>可以接受数据 public class UDPSenderB {public static void main(String[] args) throws IOException {//创建一个DatagramSocket 对象,准备发送和接受数据DatagramSocket socket new DatagramSocket(9998);//将需要发送的数据,封装到Data…...
(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)
题目:3442. 奇偶频次间的最大差值 I 思路 :哈希,时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况,哈希表这里用数组即可实现。 C版本: class Solution { public:int maxDifference(string s) {int a[26]…...
pam_env.so模块配置解析
在PAM(Pluggable Authentication Modules)配置中, /etc/pam.d/su 文件相关配置含义如下: 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块,负责验证用户身份&am…...
页面渲染流程与性能优化
页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...
MODBUS TCP转CANopen 技术赋能高效协同作业
在现代工业自动化领域,MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步,这两种通讯协议也正在被逐步融合,形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...
【JVM面试篇】高频八股汇总——类加载和类加载器
目录 1. 讲一下类加载过程? 2. Java创建对象的过程? 3. 对象的生命周期? 4. 类加载器有哪些? 5. 双亲委派模型的作用(好处)? 6. 讲一下类的加载和双亲委派原则? 7. 双亲委派模…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现企业微信功能
1. 开发环境准备 安装DevEco Studio 3.1: 从华为开发者官网下载最新版DevEco Studio安装HarmonyOS 5.0 SDK 项目配置: // module.json5 {"module": {"requestPermissions": [{"name": "ohos.permis…...
嵌入式学习之系统编程(九)OSI模型、TCP/IP模型、UDP协议网络相关编程(6.3)
目录 一、网络编程--OSI模型 二、网络编程--TCP/IP模型 三、网络接口 四、UDP网络相关编程及主要函数 编辑编辑 UDP的特征 socke函数 bind函数 recvfrom函数(接收函数) sendto函数(发送函数) 五、网络编程之 UDP 用…...
使用SSE解决获取状态不一致问题
使用SSE解决获取状态不一致问题 1. 问题描述2. SSE介绍2.1 SSE 的工作原理2.2 SSE 的事件格式规范2.3 SSE与其他技术对比2.4 SSE 的优缺点 3. 实战代码 1. 问题描述 目前做的一个功能是上传多个文件,这个上传文件是整体功能的一部分,文件在上传的过程中…...
【深尚想】TPS54618CQRTERQ1汽车级同步降压转换器电源芯片全面解析
1. 元器件定义与技术特点 TPS54618CQRTERQ1 是德州仪器(TI)推出的一款 汽车级同步降压转换器(DC-DC开关稳压器),属于高性能电源管理芯片。核心特性包括: 输入电压范围:2.95V–6V,输…...
【threejs】每天一个小案例讲解:创建基本的3D场景
代码仓 GitHub - TiffanyHoo/three_practices: Learning three.js together! 可自行clone,无需安装依赖,直接liver-server运行/直接打开chapter01中的html文件 运行效果图 知识要点 核心三要素 场景(Scene) 使用 THREE.Scene(…...
