智能座舱架构与芯片- (11) 软件篇 上

一、智能汽车基础软件平台分类

汽车软件主要分为应用软件基础软件。应用软件和业务形态高度关联,不同控制器的应用软件之间差异较大。基础软件介于应用软件和硬件之间,用于屏蔽硬件特性支撑应用软件。可有效地实现应用软件与硬件之间解耦,非常适合平台化最终形成基础软件平台。

根据中国汽车基础软件发展白皮书3.0所描述,车用 基础软件平台分为车用基础软件开发平台和车用基础软件验证平台。其中,基础软件开发平台包含内核、虚拟化模块,中间件,功能软件以及与之相配套的开发工具链,用于支撑应用软件的快速迭代开发。基础软件验证平台通过调试、分析、仿真、测试等手段验证设计和实现的一致性。

1.1 安全车控基础软件平台

安全车控基础软件开发平台主要面向车辆经典控制领域,如动力系统、底盘系统和车身系统等,该类基础软件开发平台对实时性安全性的要求极高。目前,主流的安全车控基础软件开发平台兼容 OSEK/ VDX 或 Classic AUTOSAR 标准,其功能安全等级需要达到 ASIL-D

1.2 自动驾驶基础软件平台

自动驾驶基础软件开发平台主要面向智能驾驶领域,用于智能驾驶辅助,以及全自动驾驶功能的控制器上。目前智能驾驶控制器主要使用的底层操作系统有 QNX 以及 Linux
与安全车控基础软件开发平台相比,对智能驾驶基础软件开发平台的要求主要体现在:

  • 强大的计算能力,以满足图像识别和决策计算的要求;
  • 强大的数据吞吐能力,以满足多传感器数据的实时接入和处理要求;
  • 高度的灵活性、扩展性、可编程性,以满足多种算法模型的需要;
  • 易用性,以满足 ADAS 和自动驾驶算法所需调试、调优、调测的需要

当前异构分布硬件各单元所要求的功能安全等级有所不同,AI 单元需要达到 QM 至 ASIL-B计算单元需要达到 QM 至 ASIL-D。

1.3 信息娱乐基础软件平台

车载信息娱乐基础软件开发平台主要为车载信息娱乐服务以及车内人机交互提供控制平台,是汽车实现座舱智能化与多源信息交互的必要运行环境。

车载信息娱乐基础软件开发平台对于实时性、安全性、可靠性的要求处于中等水平,既可以使用 Android、Linux 等非实时操作系统,也可以使用 QNX、VxWorks 等实时操作系统。为便于应用程序移植,当前越来越多的车载信息娱乐基础软件开发平台采用 Android Automotive OS 或其他类 Linux 系统。

随着车辆由单纯的交通工具向智能移动终端转变,车载信息娱乐基础软件开发平台需要满足如下要求:

  • 支持多样化应用,满足支付、娱乐、导航、信息服务等多样化功能需求
  • 支持多生态资源,将手机端庞大的信息娱乐服务生态资源,通过采用相同或类似的操作系统,快速移植到车辆智能终端,避免重复开发
  • 安全,通过深度定制达到车辆信息安全和功能安全的标准

1.4 智能座舱软件全景

随着新能源汽车的快速普及,智能座舱成为了一个重要的研发方向。智能座舱是汽车内部的控制中心,可以提供多种信息和服务,包括车辆状态、导航、娱乐等功能。为了实现这些功能,智能座舱需要一个可靠、高效的软件平台来支持。

对于智能座舱软件来说,主要的功能定义就是上述信息娱乐基础软件平台。

在智能座舱的软件平台中,操作系统内核、中间件和虚拟化技术都是非常重要的组成部分。其中,操作系统内核是整个软件平台的基础,它负责管理硬件资源、提供系统调用和进程管理等功能。常见的操作系统内核有Linux、QNX、RTOS等。

在智能座舱的软件平台中,中间件是连接不同组件的重要工具中间件可以提供消息传递、进程通信、远程调用等服务,从而方便系统的开发和维护。优化中间件可以提高系统的可靠性和性能

虚拟化技术是将物理资源虚拟化为多个逻辑实例的技术。在智能座舱中,虚拟化技术可以用于隔离不同的系统组件提高整个系统的可靠性和安全性。常见的虚拟化技术包括Hypervisor和容器技术Hypervisor是一种虚拟化技术,它可以将物理服务器虚拟化为多个虚拟机,从而提高整个系统的可扩展性和灵活性。而容器技术则是将操作系统层面进行虚拟化,从而提高系统的性能和资源利用率。

二、车用操作系统

2.1 AutoSAR CP

AUTOSAR CP 是 Classical Platform AUTOSAR 的简称,广泛用于对实时性、安全性要求高的动力域控、底盘域控、车身域控等方面,以达到软硬件解耦、提高开发效率、提升软件复用性等目的。
在智能汽车软件平台领域方面,AUTOSAR CP一般不用于信息娱乐域。本文只简要介绍AutoSAR CP的基本概念,不做详细解读。

  • AutoSAR CP的软件分层架构

在 AUTOSAR CP 分层架构中,自上而下分别为应用软件层(Application Layer)、运行时环境 (Runtime Environment)、基础软件层(Basic Software Layer)

AutoSAR CP Arch

应用软件层:

包含若干个软件组件,软件组件间通过端口进行交互。每个软件组件可以包含一个或者多个运行实体,运行实体中封装了相关控制算法,其运行可由 RTE 事件触发。

运行时环境:

作为应用软件层与基础软件层交互的桥梁,为软硬件分离提供了可能,是 VFB 的具体实现。 RTE 可以实现软件组件间、基础软件间以及应用软件组件与基础软件之间的通信。RTE 封装了基础软件层的服务、提供了标准化接口,使得应用软件层可以通过 RTE 接口调用基础软件服务。此外 RTE 抽象了 ECU 之间的通信,即 RTE 使用标准化接口将 ECU 之间的通信抽象为软件组件之间的通信。

基础软件层:

又可分为四层,包括服务层、ECU 抽象层、微控制器抽象层和复杂驱动。各层又由一系列基础软件组件构成,包括系统服务、存储服务、通信服务等,它们主要用于提供标准化的基础软件服务。

  1. 服务层提供了汽车嵌入式系统软件常用的一些服务,包括系统服务、存储服务以及通信服务三大部分。 还提供包括网络管理、存储管理、模式管理和实时操作系统等服务。
  2. ECU 抽象层与 ECU 平台相关,但与 微控制器无关,包括板级硬件抽象、存储硬件抽象、通信硬件抽象和 I/O 硬件抽象。该层将 ECU 结构进 行了抽象,负责提供统一的访问接口,实现对通信、存储器或者 I/O 的访问,从而不需要考虑这些资源是由微控制器片内还是片外提供的。
  3. 微控制器抽象层是实现不同硬件接口统一化的特殊层,包括微控制器驱动、存储驱动、通信驱动以及 I/O 驱动。通过微控制器抽象层可将硬件封装起来,避免上层软件直接对微控制器的寄存器进行操作。
  4. 最后,由于对复杂传感器和执行器进行操作的模块涉及严格的时序问题, 难以抽象,所以在 AUTOSAR CP 规范中没有被标准化,统称为复杂驱动。

如上所述,AUTOSAR CP 良好的分层架构为软硬件之间解耦、软件模块之间解耦提供了坚实的保障。

  • AutoSAR CP的发展历程

对于传统汽车电子开发领域,早期使用的OS是OSEK OS, 其中OSEK是德文“Offene Systeme und deren Schnittstellen für die Elektronik im Kraftfahrzeug”的缩写,译为汽车电子开放系统及接口。OSEK OS是一个为满足汽车电子可靠性、实时性、成本敏感性等需求而打造的实时单核操作系统(RTAOS)

AUTOSAR CP 与 OSEK OS联系 :

首先,AUTOSAR CP是基于OSEK OS继承发展而来,所以上述的OSEK OS的基本特点在AUTOSAR CP都能够得到满足,所以AUTOSAR CP是向后兼容的,也就意味着在OSEK OS上能够运行的应用程序同样也可以在AUTOSAR CP上运行。

除此之外,AUTOSAR CP也存在自身的一些独特的基本特点,下面将从基本属性与系统基本服务两个方面对比OSEKOS 与AutoSAR CP:

  • AutoSAR CP 的优缺点
  1. 架构充分解耦导致标准和接口规范繁多。AUTOSAR CP 的规范文档非常详尽,但正是两百多个多达几万页的标准文档让一些传统的嵌入式工程师望而止步。同时 AUTOSAR CP 提出了很多新概念,比如标定量通过描述文件进行描述;应用接口不通过传统全局变量的方式与底层软件交互,而是 对接口进行描述定义通过 RTE 统一接口进行匹配等。AUTOSAR CP 的软件开发理念和传统嵌入式工程师的认知偏差也是其普及率不高的原因之一。
  2. 工具链价格昂贵。目前AutoSAR CP的工具链都是老牌经典的AutoSAR OS公司所有,软件授权和开发费用非常高。
  3. 工具链之间兼容性差影响合作开发的灵活性。由于各厂商对 AUTOSAR CP 规范的理解并不完全一致,而且各厂商的工具也并不完全兼容,导致 OEM 集成各家供应商开发的软件模块需要花费大量的精力和时间。
  4. 自动化程度低导致开发和集成效率偏低。基础软件与应用软件的接口集成需要大量的手动配置工 作,不仅操作上低效出错率高,而且在错误检查方面也不如传统软件集成方便。
  5. 代码可读性差导致调试困难。这是代码生成工具普遍存在的问题,和 MATLAB 的 AUTOSAR 工 具箱生成的代码一样,一些 AUTOSAR 工具链的 RTE 代码生成工具生成的代码可读性也较差,这给软件 调试带来了不少麻烦。

2.2 AutoSAR AP

在基于域的EEA架构体系中,智能座舱域通常使用Linux 或者Android作为操作系统车身控制域一般使用AutoSAR CP自动驾驶域通常使用Linux或者QNX

新能源汽车在由分布式EE架构向中央计算-区域控制EE架构发展的过程中,一些厂商认为,需要在中央计算平台中提供一个高灵活,高性能且支持SOA的新软件平台-- Adaptive Platform AutoSAR,简称AutoSAR AP。

  • 什么是AutoSAR AP

AUTOSAR 组织在 2017 年推出了新的 AUTOSAR 平台—— AUTOSAR AP。AUTOSAR AP 的出现是为了填补高性能计算平台上缺乏好用中间件的空白,采用面向对象的 SOA 架构,旨在为上层应用提供灵活的软件开发平台;同时利用汽车行业经验和优势,让所有汽车软件能持续迭代,更快更好地量产上车。

不同于传统的AutoSAR CP,它们的主要区别在于:

AUTOSAR经典平台(CP)标准满足了深度嵌入式ECU的需求,而智能ECU的需求却无法满足。传统ECU的设计目的是专为目标车辆而设计,在车辆使用寿命期间不会有特别大的改动。智能ECU则适应新型EE架构的发展,引入了以太网,高性能计算平台,以及OTA软件升级等。因此,AUTOSAR主持修订了第二个软件平台规范,AUTOSAR自适应平台(AP)。AP主要提供高性能的计算和通信机制,并提供灵活的软件配置,例如支持空中软件更新。专门为CP定义的功能,如访问电信号和汽车专用总线系统,可以集成到AP中,但不在标准化的重点中。

  • AutoSAR AP的分层架构

AutoSAR AP的基本构成包括应用程序层、运行时层、操作系统和硬件抽象层。这些组件通过标准化的接口进行通信和协作,以实现整个AUTOSAR Adaptive Platform的功能。

1.应用程序层(Application Layer):

应用程序层是AUTOSAR Adaptive Platform中的最高层,它包括了所有的应用程序组件。应用程序层通过服务层和运行时层与其他组件进行通信和协作,以实现整个应用程序的功能。User Application 通过原子服务接口(Atomic Service)获取服务:Atomic Service 原子服务提供了一系列的标准化服务,例如通信服务、诊断服务、存储服务等。这些服务为应用程序组件提供了一些基本的功能和接口,以便它们能够相互通信和协作。

2.运行时层(Runtime Layer):

运行时层提供了一些基本的软件组件和操作系统服务,例如操作系统抽象层、内存管理、进程管理等。这些组件和服务为应用程序组件提供了一个运行环境,以便它们能够在AUTOSAR AP中运行。

3.操作系统和硬件抽象层(Operating System Layer):

AUTOSAR Adaptive Platform使用基于POSIX标准的操作系统,例如Linux。操作系统层提供了一些基本的操作系统服务和驱动程序,例如文件系统、网络协议栈、设备驱动程序等。这些服务和驱动程序为运行时层和应用程序层提供了底层的支持。硬件抽象层则提供了一个通用的硬件接口,以便AUTOSAR Adaptive Platform可以在不同的硬件平台上运行。硬件抽象层将硬件平台与操作系统层和运行时层分开,以便AUTOSAR Adaptive Platform可以在不同的硬件平台上进行移植和扩展。

  • AutoSAR AP的应用场景

根据上述软件架构图可见,AutoSAR AP主要作为中间件而存在,它支持POSIX操作系统,通过服务和API为上层服务提供功能。

在向中央集中式的计算平台发展过程中,目前还按自动驾驶域,车身和底盘域,智能座舱域等进行功能划分。这些域控制器均需得到高性能 MPU 芯片的支撑。基于 POSIX 系统之上的 AUTOSAR AP 平台及相关工具链,为应用开发过程中的效率带来显著提高,而智能座舱域控制器从生态的角度考虑,一般在 Linux 基础之上搭载安卓系统。而诸如 SOA 通信、整车诊断、健康管理的方面则可以参考 AUTOSAR AP 平台标准进行实现。如果考虑到多域融合的发展,在舱驾一体化的道路上,AutoSAR AP和Android将有很大的可能在Hypervisor的基础上实现统一。

  • AutoSAR AP的案例

基于AutoSAR AP的应用场景,可以以一个OTA升级的案例来进行讲述。

本节主要介绍基于 AP 的智能域控制器(后续简称 IDC)OTA 升级场景及其实现方案。

IDC 的 OTA 功能可以进行自身应用软件及系统软件、关联器件固件的升级,并在数据管理、软件升级、可追溯性、安全验证方面满足 AP 的相关要求。

在OTA的功能实现过程中,IDC与外界的数据交互如图所示。

云端OTA云服务器向车端HUT(终端信息展现单元 Head Unit & Telematics)推送升级任务,用户确认升级后,HUT 会通过网关向 IDC 及 其他 ECU 以 UDS 的形式发送升级指令及升级数据,IDC 接收升级指令与数据后,在确保安全的情况下 完成软件升级并向 HUT 反馈安装进度及安装结果。

1. 数据传输与管理

a. IDC 内部分为 OTA 进程和 UDS Server 进程,UDS Server 进程与 HUT 端交互,负责处理、转发 指令和接收软件包,OTA 进程处理软件包进行升级。
b. OTA 使用专用的磁盘分区保证有足够的资源来存储软件包及相关数据,从而保证数据的安全性。
c. IDC 会进行完整性校验以保证软件包的完整性。
d. OTA 结束后,IDC 会删除临时数据,最大限度节省空间。

2. 软件升级

a. OTA 采用双分区机制,通过活跃分区去升级备份分区,升级成功后重启备份分区,完成备份分区 和活跃分区的互相切换,轻松实现 IDC 上的应用软件、中间件、操作系统、配置数据的安装、更新、删除。
b. OTA 采用双分区机制,通过切换启动分区,可以实现 IDC 上所有软件及数据的快速回滚功能。
c. OTA 支持周边器件的升级,如 MCU、相机等。
d. OTA 内部维护状态机,状态变化实时落盘,可以支持在异常中断后恢复升级。

3. 可追溯性

a. OTA 提供获取当前软件版本号、安装进度、安装结果的接口。
b. OTA 会记录升级过程中的日志,供 HUT 获取。

4. 安全性

a. OTA 在软件升级前会使用强加密算法校验证书链与软件包签名,保证软件包的真实性及完整性。
b. OTA 在软件升级前会检查当前车速、IDC 的温度、供电情况,保证在安全的情况下进行 IDC 软件 升级。
c. OTA 时会激活 IDC 心跳监控机制及分区损坏回滚机制,当切换到备份分区启动失败后,IDC 不会 给 MCU 发送心跳报文,MCU 会认为 IDC 在 OTA 后变砖,会给 IDC 断电重启,切回原分区启动,保证车机可用。

2.3 虚拟化Hypervisor

  • 为什么需要虚拟化

随着汽车电子电气架构从分布式架构到Domain域架构,再到中央计算-区域控制架构的演变,分散的ECU 功能集成到车载中央计算机,这就是多域融合的趋势。 汽车电子底层硬件不再是由单一芯片提供简单的逻辑计算,而是需要复杂的多核 SoC 芯片提供更为复杂控制逻辑以及强大的算力支持。但是多域业务具有不同的技术需求,比如座舱域业务强调交互体验、应用生态丰富,比较适合的操作系统是 Android;车控域有实时性、可靠性要求,操作系统倾向于 RTLinux、RTOS;智驾域强调大算力融合感知、推演规划,也有实时性、可靠性要求,也会选择RTLinux、RTOS。

在未来,多域融合技术集成到一颗SOC之上时,需要考虑关键业务的安全可靠和实时性技术要求,又要考虑到丰富的生态应用,这些需要不同的操作系统才能支持。如何在一颗SOC上划分资源,并发运行多种操作系统,保证多域融合的可靠性,需要有资源隔离技术的支持。

资源隔离技术有多种,从硬件底层逐层向上包括硬件隔离、虚拟化隔离、容器隔离、进程隔离等。硬件隔离的隔离性最好,性能、安全、可靠性都有保证;但灵活性、可配置性差,不能实现硬件共享, 导致整个系统的资源利用率差,不能充分达到软件定义汽车的目标。容器隔离、进程隔离可以更轻量级地实现业务隔离,但还是在同一个操作系统内,存在着资源干扰、相互安全攻击的隐患,并且无法支持异构操作系统业务域融合,影响传统业务继承,不利于生态发展。

目前,在智能座舱域的实际应用中,硬件隔离和虚拟化隔离都有实际的使用范例。

  • Hypervisor

在新能源汽车智能座舱中,虚拟化技术也被广泛应用,以提高系统的资源利用率、可靠性和安全性。虚拟化技术可以将一台物理服务器划分成多个虚拟机,每个虚拟机都可以独立运行不同的应用程序和操作系统。

虚拟化技术可以分为两种类型,一种是基于Type1类型的Hypervisor的虚拟化技术,另一种是基于Type2类型的虚拟化技术。

Type1类型的Hypervisor是一种直接运行在物理服务器硬件上的虚拟化软件,也被称为裸机Hypervisor。Type1类型的Hypervisor能够直接访问服务器的硬件资源,包括处理器、内存、网络和存储等,能够提供更高的性能和稳定性。在智能座舱中,Type1类型的Hypervisor可以被用来运行多个虚拟机,每个虚拟机可以运行不同的操作系统和应用程序。同时,Type1类型的Hypervisor还可以提供强大的安全隔离功能,确保不同的虚拟机之间互不干扰,从而提高整个系统的可靠性和安全性。

相比之下,基于Type2的虚拟化技术则是运行在操作系统之上的虚拟化技术。虚拟机OS可以与主机OS共享同一个操作系统内核,这样可以减少虚拟化层的开销和系统资源的占用。虚拟机OS位于主操作系统之上,可以将应用程序及其依赖项封装成一个完整的软件单元,从而实现应用程序的快速部署和扩展。在智能座舱中,基于Type2的虚拟化技术可以用于隔离不同的应用程序和服务。

Type 1类型的Hypervisor直接运行在物理硬件之上,直接访问物理硬件并管理所有硬件资源,在延时、安全性和效率上更胜一筹。但此类型Hypervisor需要硬件支持,移植难度大,开发成本也较高,在互联网领域常用于数据计算中心

Type 2类型的Hypervisor运行在某个操作系统之上,利用操作系统访问物理硬件,因此在延时方面具有不可避免的劣势。且底层操作系统的任何Bug都将危及其上的虚拟机,因此安全性方面相对较弱。但是移植难度小,开发成本低。在互联网领域常用于客户端系统

Hypervisor可以将一台物理服务器划分成多个虚拟机,每个虚拟机可以独立运行不同的操作系统和应用程序。Hypervisor能够提供强大的安全隔离功能,确保不同的虚拟机之间互不干扰,从而提高整个系统的可靠性和安全性。同时,Hypervisor还能够动态调整虚拟机的资源分配,以满足系统运行的需求。在智能座舱中,使用Hypervisor可以实现多个应用程序之间的隔离,从而提高系统的可靠性和安全性。

Hypervisor具有如下功能:

(1)设备模拟。Hypervisor可以创建客户操作系统可以访问的一些虚拟硬件组件,是否需要取决于客户操作系统上运行的应用程序;

(2)内存管理。Hypervisor负责为自身和客户操作系统管理和分配硬件内存资源;

(3)设备分配和访问。Hypervisor通常可以将硬件组件分配给客户操作系统,并控制客户操作系统实际可以访问哪些硬件组件;

(4)上下文切换。当Hypervisor需要在内核上安排新的客户操作系统时,Hypervisor必须通过将在该处理器内核上运行的现有客户操作系统的“上下文”(即操作条件)保存到内存中来“切换上下文”。然后进行加载新的客户操作系统时,可以从内存中访问新的客户操作系统,而不会中断执行环境;

(5)捕获指令。客户操作系统可能会根据其访问权限级别执行技术上不应执行的指令。Hypervisor可以分析客户操作系统尝试发送到硬件的指令,并模拟硬件对客户操作系统指令的响应;

(6)异常处理。发生异常(即异常行为)时,可以将某些异常路由到Hypervisor进行处理;

(7)虚拟机管理。如前所述,Hypervisor最终负责启动和停止客户操作系统在其上运行的虚拟机。

  • 区域硬隔离

与Hypervisor虚拟化相对应的一种多操作系统应用方式,是区域硬隔离。

它是通过物理隔离来保障不同系统组件之间的安全。比如说,在智能座舱SOC规划与设计的时候,根据功能划分的不同,在同一颗SOC内部划分出不同的CPU内核,以及其他物理硬件资源,并分配给不同的功能来使用。比如,仪表盘就可以使用独立的CPU核和独立的显示模块,并运行独立的RTOS操作系统。

区域硬隔离能够提供更高的安全性和隔离性,避免不同的系统组件之间的相互干扰。在智能座舱中,区域硬隔离可以被用于对关键系统组件的保护,从而提高整个系统的可靠性和安全性。

在智能座舱中,使用Hypervisor和使用区域硬隔离都有其优势和不足。实际上,二者的选择取决于智能座舱芯片供应商的所选择的技术路线,也取决于主机厂对可靠性和芯片性能的判断。

  • Hypervisor与区域硬隔离的优缺点

以仪表盘的实现为例,现代智能座舱的发展,要求支持“一芯多屏”的功能。顾名思义,就是要求在一颗智能座舱SOC芯片上,同时支持实现液晶仪表盘功能和娱乐中控大屏功能,甚至还有其他的屏幕。

由于液晶仪表盘属于高安全性和高可靠性领域,一般需要使用RTOS操作系统。娱乐中控大屏需要有丰富的生态应用,一般需要使用Android系统来支持。

区域硬隔离和Hypervisor都可以用于实现仪表盘功能,但它们有各自的优缺点。

综上所述,使用区域硬隔离和Hypervisor都可以实现仪表盘功能,需要根据具体的场景和需求进行选择。如果对可靠性和安全性要求较高,可以选择区域硬隔离;如果需要灵活性和可扩展性,可以选择Hypervisor。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/174573.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Kubernetes容器状态探测的艺术

在Kubernetes集群中维护容器状态更像是一种艺术,而不是科学。原文: The Art and Science of Probing a Kubernetes Container[1] 在Kubernetes集群中维护容器状态更像是一种艺术,而不是科学。 本文将带你深入理解容器探测[2],并特别关注相对较…

C++ LibCurl实现Web隐藏目录扫描

LibCurl是一个开源的免费的多协议数据传输开源库,该框架具备跨平台性,开源免费,并提供了包括HTTP、FTP、SMTP、POP3等协议的功能,使用libcurl可以方便地进行网络数据传输操作,如发送HTTP请求、下载文件、发送电子邮件等…

Stable Diffusion XL网络结构-超详细原创

强烈推荐先看本人的这篇 Stable Diffusion1.5网络结构-超详细原创-CSDN博客 1 Unet 1.1 详细整体结构 1.2 缩小版整体结构 以生成图像1024x1024为例,与SD1.5的3个CrossAttnDownBlock2D和CrossAttnUpBlock2D相比,SDXL只有2个,但SDXL的Cros…

如何选择示波器?

简介 对于很多工程师来讲,从市场中上百款不同价格和规格的各种型号的示波器中,选择一台新示波器是一件很挠首的事情。本文就旨在指引你拨开迷雾,希望能帮助你避免付出昂贵的代价。 重中之重 选择示波器的第一步不是要看那些示波器的广告和规…

MAVEN——PACKAGE、INSTALL、DEPLOY的联系与区别

我们在用maven构建java项目时,最常用的打包命令有mvn package、mvn install、deploy,这三个命令都可完成打jar包或war(当然也可以是其它形式的包)的功能,但这三个命令还是有区别的。下面通过分别执行这三个命令的输出结…

Openlayer【三】—— 绘制多边形GeoJson边界绘制

1.1、绘制多边形 在绘制多边形和前面绘制线有异曲同工之妙,多边形本质上就是由多个点组成的线然后连接组成的面,这个面就是最终的结果,那么这里使用到的是Polygon对象,而传给这个对象的值也是多个坐标,坐标会一个个的…

分享几个MicroPython开发的ES32项目源码

最近在学习物联网,必不可少的就是需要玩一下ESP8266和ESP32,当然开发它们的语言分为C/C 今天带给大家几个MicroPython开发的几个ESP32的项目源码,喜欢的童鞋可以关注一下 1、点亮开发板LED灯 from machine import Pinled_pin Pin(4,Pin.O…

软件测评中心进行安全测试有哪些流程?安全测试报告如何收费?

在当今数字化时代,软件安全测试是每个软件开发团队都不能忽视的重要环节。安全测试是指对软件产品进行系统、全面的安全性评测与检测的过程。它旨在发现并修复软件中存在的漏洞和安全隐患,以确保软件能够在使用过程中保护用户的数据和隐私不被非法访问和…

SpringSecurity+JWT权限认证

SpringSecurity默认的是采用Session来判断请求的用户是否登录的,但是不方便分布式的扩展 虽然SpringSecurity也支持采用SpringSession来管理分布式下的用户状态,不过现在分布式的还是无状态的Jwt比较主流 一、创建SpringBoot的项目 spring-boot-starte…

【giszz笔记】产品设计标准流程【8】

(续上回) 真的没想到写了8个章节,想参考之前文章的,我把链接给到这里。 【giszz笔记】产品设计标准流程【7】-CSDN博客 【giszz笔记】产品设计标准流程【6】-CSDN博客 【giszz笔记】产品设计标准流程【5】-CSDN博客 【giszz笔…

Transformer——encoder

本文参考了b站的Eve的科学频道中的深入浅出解释Transformer原理和DASOU讲AI中的Transformer从零详解。 入浅出解释Transformer原理 Transformer从零详解 前言: 在自然语言识别中,之前讲过lstm,但是lstm有明显的缺陷,就是当文本过…

[SCTF 2021]rceme

文章目录 前置知识可变参数绕过create_function注入无字母数字RCE动态链接库so绕过disable_functions利用php原生类进行文件读取 解题过程 前置知识 可变参数绕过 PHP 在用户自定义函数中支持可变数量的参数列表。在 PHP 5.6 及以上的版本中,由 … 语法实现&#x…

redis的过期策略以及定时器的实现

Redis是客户端服务器结构的程序,客户端与服务器通过网络通信,所以对于keys *这种的操作在大型企业中不太建议,生产环境下的key会非常多,Redis是但现成的服务器,执行keys*的时间非常长,就会导致redis服务器阻…

同为科技(TOWE)桌面PDU插排:一款可以DIY定制的“超级插座”

当今社会,各种电子产品和家用电器已成为人们日常生活中不可或缺的一部分,在带给人们便利的同时,也使得电力使用变得更加频繁和重要。然而,当前市面上很多普通插座由于功能单一、材质粗劣、插口数量受限、充电速度过慢、插头间互相…

子虔与罗克韦尔自动化合作 进博会签约自动化净零智造联创中心

11月6日进博会现场,漕河泾罗克韦尔自动化净零智造联创中心合作协议签约暨合作伙伴(第一批)授牌仪式举办,子虔科技作为联创中心合作伙伴签约,携手共建智能制造,引领行业可持续发展。 图示:子虔科…

QTableView表头Header增加复选框Checkbox

原文出处&#xff1a;Qt 之 QHeaderView 添加复选框_qtableview添加复选框-CSDN博客 这哥们只贴了部分代码&#xff0c;我还是把它弄好分享给大家吧 DTableHeaderView.h #ifndef DTABLEHEADERVIEW_H #define DTABLEHEADERVIEW_H#include <QHeaderView>class DTableHea…

高精度人像背景分割SDK技术解决方案

图像处理技术已经成为企业和个人生活中不可或缺的一部分&#xff0c;特别是在人像处理方面&#xff0c;如何准确、高效地将人物与背景分离&#xff0c;一直是一个技术难题。然而&#xff0c;美摄科技凭借其在AI深度学习领域的深厚积累&#xff0c;推出了一款高精度的人像背景分…

app抓包-突破【单向证书验证代理检测模拟器检测】

0x00 app的普通抓包配置 1.模拟器开启本地以太网代理&#xff0c;设置端口&#xff0c;bp监听以太网系统端口即可 2.科来协议分析&#xff0c;可以获取模拟器进程的网络通讯信息&#xff0c;目标通讯的ip地址 3.封包监听工具&#xff0c;同科来一致&#xff0c;监听的进程即可…

gitlab

Gitlab 安装git yum安装 [rootgit ~]# yum -y install git编译安装 Git官网 #安装依赖关系 [rootgit ~]# yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel autoconf gcc perl-ExtUtils-MakeMaker # 编译安装 [rootgit ~]# tar -zxf git-2.0…

[汇编实操]DOSBox工具: unable to open input file: 文件名.asm问题解决

出错原因1 &#xff1a;将文件放在debug文件下&#xff0c;mount后发现并没有该文件 解决方案 &#xff1a;重启DOSBox&#xff0c;重新mount&#xff0c;直到dir后可以看到该asm文件 出错原因2&#xff1a;DOS系统不支持8位以上的文件名 解决方案 &#xff1a;将文件名改为8…