图解AUTOSAR_SWS_IOHardwareAbstraction

AUTOSAR IO硬件抽象层详解

基于AUTOSAR标准的IO硬件抽象层设计与实现指南

目录

  • 1. 概述
  • 2. 架构设计
    • 2.1 模块架构概览
    • 2.2 内部组件结构
    • 2.3 与其他模块的交互接口
  • 3. 状态机
    • 3.1 状态定义
    • 3.2 状态转换
    • 3.3 状态行为
  • 4. ADC信号处理流程
    • 4.1 初始化流程
    • 4.2 转换请求和处理
    • 4.3 通知机制
    • 4.4 按需读取模式
  • 5. 低功耗模式
    • 5.1 低功耗状态管理概述
    • 5.2 异步电源状态切换
    • 5.3 同步电源状态切换
    • 5.4 低功耗模式实现策略
  • 6. ECU信号模型
    • 6.1 ECU信号概念
    • 6.2 信号类型和属性
    • 6.3 信号处理机制
  • 7. 总结
    • 7.1 设计要点
    • 7.2 实现建议
    • 7.3 应用场景

1. 概述

AUTOSAR IO硬件抽象层(IO Hardware Abstraction)是AUTOSAR分层架构中ECU抽象层的重要组成部分,其主要目的是提供对MCAL驱动的访问,通过将IO硬件抽象层端口映射到ECU信号来实现。通过这种抽象,软件组件开发人员无需了解MCAL驱动API的细节和物理层值的单位,极大地提高了软件的可移植性和可重用性。

IO硬件抽象层不应被视为单个模块,它可以实现为多个模块。本文档旨在提供IO硬件抽象层的详细设计和实现指南,帮助开发人员理解其工作原理和使用方法。


2. 架构设计

2.1 模块架构概览

IO硬件抽象层在AUTOSAR软件架构中扮演着承上启下的关键角色,它位于ECU抽象层,连接应用层的软件组件和MCAL层的驱动程序。下图展示了IO硬件抽象层的整体架构及其与其他模块的关系:

在这里插入图片描述

图2-1:AUTOSAR IO硬件抽象层模块架构图

2.2 内部组件结构

IO硬件抽象层内部由三个主要组件构成,它们共同协作提供完整的硬件抽象功能:

  1. IoHwAb服务:提供核心功能接口,包括初始化、配置和信号访问服务。这是软件组件与IO硬件抽象层交互的主要入口点。

  2. 信号处理:负责处理各类信号的转换、滤波和验证。将物理层的原始信号转换为软件组件可以理解的抽象信号,同时提供信号有效性验证。

  3. IoHwAb硬件保护:实现各种硬件保护策略,如过流保护、短路检测和温度监控,确保硬件安全运行。当检测到异常情况时,会触发适当的保护措施。

2.3 与其他模块的交互接口

IO硬件抽象层与AUTOSAR架构中的多个模块交互,主要接口包括:

  • 与应用层的接口

    • 通过RTE提供标准化的ECU信号访问接口
    • 支持软件组件通过端口通信访问硬件资源
    • 屏蔽底层硬件细节,简化应用开发
  • 与MCAL层的接口

    • 与ADC驱动交互实现模拟信号采集
    • 与DIO驱动交互实现数字信号读写
    • 与PWM/ICU/PORT/GPT/SPI/OCU等驱动交互实现特定硬件功能
  • 与系统服务的接口

    • 与ECU状态管理器(EcuM)交互处理初始化和关闭
    • 与默认错误追踪器(DET)交互报告错误
  • 与通信驱动的接口

    • 与SPI外部设备等通信接口交互

通过这种分层和标准化的接口设计,IO硬件抽象层有效地隔离了应用软件与底层硬件,实现了"编写一次,随处运行"的软件可移植性目标,同时为复杂的ECU信号处理提供了灵活而强大的框架。


3. 状态机

3.1 状态定义

IO硬件抽象层的生命周期由明确定义的状态机管理,确保模块在任何时刻都处于可控的状态。下图展示了完整的状态机设计:

在这里插入图片描述

图3-1:AUTOSAR IO硬件抽象层状态机

IO硬件抽象层状态机包含以下五个主要状态:

  1. 未初始化(Uninit)

    • 模块上电后的初始状态
    • 此状态下模块不处理任何请求
    • 等待EcuM调用初始化函数
  2. 初始化中(Initializing)

    • 由EcuM触发进入此状态
    • 按顺序执行初始化MCAL驱动、初始化信号处理和初始化硬件保护步骤
    • 完成所有初始化步骤后转入正常运行状态
  3. 正常运行(Running)

    • 模块的主要工作状态
    • 包含多个子状态:空闲、信号处理和硬件保护
    • 响应应用层请求并提供全部功能服务
  4. 故障(Fault)

    • 当检测到严重故障时进入
    • 执行故障处理和恢复操作
    • 尝试恢复失败时可能需要重置模块
  5. 关闭中(Stopping)

    • 由EcuM关闭请求触发
    • 按顺序执行关闭操作:停止信号处理、停止硬件保护和通知MCAL驱动
    • 完成关闭操作后返回未初始化状态

3.2 状态转换

IO硬件抽象层状态机的主要转换包括:

  1. 未初始化→初始化中

    • 触发条件:IoHwAb_Init()函数调用
    • 行为:开始执行初始化序列
  2. 初始化中→正常运行

    • 触发条件:所有初始化步骤完成
    • 行为:模块变为完全可操作状态
  3. 正常运行→故障

    • 触发条件:检测到无法在正常操作中处理的严重故障
    • 行为:进入故障处理流程
  4. 故障→初始化中

    • 触发条件:故障恢复需要重新初始化
    • 行为:重置并重新初始化模块
  5. 正常运行→关闭中

    • 触发条件:IoHwAb_DeInit()调用或EcuM关闭请求
    • 行为:开始执行关闭序列
  6. 关闭中→未初始化

    • 触发条件:所有关闭步骤完成
    • 行为:模块返回初始状态

3.3 状态行为

每个主状态下有特定的行为模式:

  • 正常运行状态下的子状态

    1. 空闲:模块等待来自应用层的请求
    2. 信号处理:包括信号获取、滤波和验证三个步骤
    3. 硬件保护:定期执行故障检测,发现故障时执行保护动作并通知应用
  • 故障处理行为

    • 对不同类型的故障执行特定的处理策略
    • 尝试恢复操作,如重新初始化子系统
    • 若失败,可能需上报给应用层并等待系统层面的干预
  • 初始化和关闭行为

    • 严格按照预定义的顺序执行
    • 确保各组件间的依赖关系得到正确处理
    • 任何步骤失败都会导致整个过程失败

通过这种严格定义的状态机,IO硬件抽象层能够在复杂的操作条件下保持稳定且可预测的行为,有效管理资源并处理异常情况,提高系统的可靠性和安全性。


4. ADC信号处理流程

模拟数字转换(ADC)是IO硬件抽象层中最常用的功能之一,它涉及到多层模块间的复杂交互和信号处理。下图详细展示了ADC信号处理的序列流程:

在这里插入图片描述

图4-1:AUTOSAR IO硬件抽象层ADC转换序列

4.1 初始化流程

ADC信号处理的初始化是整个IO硬件抽象层初始化过程的一部分,主要步骤包括:

  1. 触发初始化

    • 应用层传感器/执行器组件调用IoHwAb_Init<Init_Id>(IoHwAb<Init_Id>_ConfigType*)
    • IO硬件抽象层接收初始化请求并开始配置
  2. 配置ADC驱动

    • IO硬件抽象层调用Adc_Init(const Adc_ConfigType*)
    • ADC驱动执行硬件初始化,配置ADC转换单元
    • 完成后返回状态给IO硬件抽象层
  3. 完成初始化

    • 所有必要的配置完成后,IO硬件抽象层向应用层返回初始化成功
    • 此时系统已准备好处理ADC转换请求

4.2 转换请求和处理

在正常运行状态下,ADC转换请求按照以下流程处理:

  1. 发起转换请求

    • 应用层调用IoHwAb_GetVoltage(af_pressure)等函数请求模拟信号转换
    • IO硬件抽象层接收请求并准备处理
  2. 启用通知机制

    • IO硬件抽象层调用Adc_EnableGroupNotification(Adc_GroupType)
    • 这确保转换完成后能通过回调通知IO硬件抽象层
  3. 启动ADC转换

    • IO硬件抽象层调用Adc_StartGroupConversion(Adc_GroupType)
    • ADC驱动命令硬件开始转换过程
    • ADC硬件从传感器/执行器硬件读取模拟信号
  4. 请求确认

    • 转换启动后,IO硬件抽象层向应用层返回"转换请求已接受"的确认
    • 此时转换尚未完成,应用层需等待通知或主动查询结果

4.3 通知机制

ADC转换完成后的通知处理流程:

  1. 转换完成中断

    • ADC硬件完成转换后产生中断
    • ADC驱动捕获中断并处理
  2. 通知回调

    • ADC驱动调用IO硬件抽象层注册的回调函数IoHwAb_Adc_Notification_Group1()
    • IO硬件抽象层接收通知并开始处理结果
  3. 信号处理

    • IO硬件抽象层对原始ADC值进行处理,包括滤波和验证
    • 将处理后的有效数据准备提供给应用层
  4. 应用层通知

    • IO硬件抽象层通过SetRTEEvent()通知应用层数据已准备就绪
    • 应用层收到通知后可以读取转换结果
  5. 数据读取

    • 应用层调用IoHwAb_ReadVoltage(af_pressure, &buffer)读取结果
    • IO硬件抽象层调用Adc_ReadGroup(AdcGroup, DataBufferPtr)获取数据
    • 经过处理的转换结果返回给应用层

4.4 按需读取模式

除了通知机制外,IO硬件抽象层还支持按需读取模式:

  1. 直接读取请求

    • 应用层调用IoHwAb_GetVoltage()请求当前值
    • IO硬件抽象层直接处理请求,无需等待异步通知
  2. 单通道读取

    • IO硬件抽象层调用Adc_ReadChannel(Adc_ChannelType)读取特定通道
    • ADC驱动直接从硬件读取当前值并返回
  3. 信号处理与返回

    • IO硬件抽象层对读取的原始值进行处理和校验
    • 将处理后的结果返回给应用层

通过这种多层次的ADC信号处理流程,IO硬件抽象层实现了以下关键功能:

  • 提供统一的应用层接口,屏蔽底层硬件差异
  • 支持异步通知和同步读取两种操作模式
  • 在原始信号与应用层之间提供信号处理和验证
  • 有效管理硬件资源,确保正确的初始化和关闭顺序

这些功能使应用开发人员能够以标准化且简单的方式访问模拟信号,而无需关注底层硬件细节和复杂的信号处理逻辑。


5. 低功耗模式

在汽车电子系统中,电源管理是一个至关重要的功能,尤其对于现代汽车中的复杂ECU网络。IO硬件抽象层在电源管理中扮演着重要角色,协调多个外设的电源状态切换。下图展示了低功耗状态切换的序列流程:

在这里插入图片描述

图5-1:AUTOSAR IO硬件抽象层低功耗状态切换序列

5.1 低功耗状态管理概述

低功耗状态管理是IO硬件抽象层提供的重要功能,主要包括:

  • 功耗模式协调:协调多个外设模块(如ADC、PWM等)统一进入/退出低功耗状态
  • 状态准备和切换分离:将低功耗状态切换分为准备和实际切换两个阶段,保证系统稳定性
  • 支持同步和异步模式:根据系统要求,提供同步(阻塞式)和异步(非阻塞式)两种切换方式

低功耗状态管理涉及多个系统组件,包括:

  1. 基础软件模式管理器(BswM):负责系统级模式管理,发起低功耗请求
  2. 运行时环境(RTE):提供应用层与基础软件层的通信通道
  3. IO硬件抽象层:协调多个MCAL驱动的电源状态切换
  4. MCAL驱动:直接控制硬件进入/退出低功耗状态

5.2 异步电源状态切换

异步电源状态切换是一种非阻塞式切换机制,特别适用于切换时间较长的场景。其流程如下:

  1. 准备阶段

    • BswM通过RTE调用IoHwAb_PreparePowerState_LowPowerModeA()启动准备流程
    • IO硬件抽象层查询各驱动的当前电源状态,如调用Adc_GetCurrentPowerState()
    • IO硬件抽象层调用各驱动的准备函数,如Adc_PreparePowerState()Pwm_PreparePowerState()
    • 准备函数立即返回,表示准备过程已启动,但尚未完成
    • IO硬件抽象层向RTE返回"准备开始"状态
  2. 周期性检查

    • 系统周期性任务调用IO硬件抽象层的PeriodicTask()函数
    • IO硬件抽象层内部调用IoHwAb_PollForResults()检查各驱动准备状态
    • 若所有驱动尚未准备完成,周期性检查继续进行
  3. 通知完成

    • 驱动准备完成后,通过回调通知IO硬件抽象层
    • ADC驱动调用IoHwAb_Adc_NotifyReadyForPowerStateLowPowerModeA()
    • PWM驱动调用IoHwAb_Pwm_NotifyReadyForPowerStateLowPowerModeA()
    • IO硬件抽象层标记对应驱动已准备完成
  4. 执行切换

    • 确认所有驱动均已准备完成后,IO硬件抽象层调用IoHwAb_EnterPowerStateLP1()
    • IO硬件抽象层调用各驱动的实际设置函数,如Adc_SetPowerState()Pwm_SetPowerState()
    • 驱动执行实际的硬件电源状态切换
    • IO硬件抽象层通知RTE状态切换完成,RTE更新BswM的模式端口

5.3 同步电源状态切换

同步电源状态切换是一种阻塞式切换机制,适用于需要快速切换或确定切换时间的场景。其流程如下:

  1. 准备和切换阶段

    • BswM通过RTE调用IoHwAb_PreparePowerState_LowPowerModeA()
    • IO硬件抽象层查询各驱动当前电源状态
    • IO硬件抽象层以阻塞方式调用各驱动准备函数,等待其完成
    • 所有驱动准备完成后,IO硬件抽象层立即调用IoHwAbs_EnterPowerStateLowPowerModeA()
    • IO硬件抽象层调用各驱动的实际设置函数,完成电源状态切换
    • IO硬件抽象层通知RTE状态切换完成,RTE更新BswM的模式端口
    • 整个过程在同一函数调用中完成,调用方阻塞等待
  2. 主要差异

    • 同步模式下无需周期性检查和通知机制
    • 准备和切换在同一调用序列中完成
    • 调用方(通常是BswM)需等待整个过程完成

5.4 低功耗模式实现策略

IO硬件抽象层的低功耗管理实现涉及多个方面:

  • 协调机制

    • 使用状态标志跟踪各驱动的准备状态
    • 实现超时机制处理驱动未能及时准备的情况
    • 确保所有驱动的状态一致性
  • 接口标准化

    • 为各类驱动提供统一的电源管理接口
    • 支持不同电源模式的定义和切换
    • 处理驱动间的依赖关系
  • 错误处理

    • 妥善处理准备或切换过程中的错误
    • 提供回退机制在发生错误时恢复正常运行
    • 报告异常情况给系统管理模块

通过这些机制,IO硬件抽象层有效地实现了复杂多驱动环境下的低功耗管理,既满足了节能要求,又保证了系统的稳定性和可靠性。这对于汽车电子系统尤为重要,特别是在电池供电或需要降低能耗的场景中。


6. ECU信号模型

ECU信号是IO硬件抽象层的核心概念,代表了物理电气信号在软件中的抽象表示。下图展示了完整的ECU信号类模型:

在这里插入图片描述

图6-1:AUTOSAR IO硬件抽象层ECU信号模型

6.1 ECU信号概念

ECU信号是将物理电气信号抽象为软件接口的关键机制,具有以下特点:

  1. 定义与范围

    • ECU信号代表一个电气信号,通常对应一个或多个ECU物理引脚
    • 每个信号具有唯一标识符、确定的类型和方向属性
    • 信号可以关联多种属性,描述其特性和处理要求
  2. 抽象级别

    • 对应用层提供完全抽象的接口,屏蔽底层硬件细节
    • 应用软件组件通过ECU信号访问硬件资源,无需了解驱动细节
    • 保护硬件不受软件错误使用的影响
  3. 基本结构

    • ECUSignal基类:定义所有信号的共有特性
      • 信号标识符:唯一识别信号的ID
      • 信号类型:指明信号的基本类型
      • 信号方向:INPUT(输入型)或OUTPUT(输出型)
      • 信号属性列表:关联到该信号的各类属性对象

6.2 信号类型和属性

IO硬件抽象层支持多种信号类型和属性,以适应不同的硬件接口需求:

  1. 信号类型

    • AnalogInput:模拟输入信号,如温度、压力传感器信号

      • 具有数据类型、数值范围、分辨率和精度等属性
      • 通常通过ADC驱动实现
    • AnalogOutput:模拟输出信号,如控制电压、驱动信号

      • 定义输出电压范围、分辨率和最大延迟
      • 通常通过DAC或PWM驱动实现
    • DigitalInput:数字输入信号,如开关状态、按钮

      • 简单的布尔类型(0或1)
      • 通过DIO驱动实现
    • DigitalOutput:数字输出信号,如LED控制、继电器控制

      • 布尔类型输出,定义延迟要求
      • 通过DIO驱动实现
    • PWMSignal:脉宽调制信号,用于电机控制、灯光调节等

      • 定义周期时间和占空比
      • 通过PWM驱动实现
  2. 信号属性

    • FilteringAttribute:过滤/防抖属性

      • 定义信号的过滤方式(原始或已过滤)
      • 指定带宽和截止频率
      • 主要用于输入信号,消除噪声和抖动
    • AgeAttribute:老化属性

      • 定义信号值的最大有效时间
      • 规定超时后的处理行为
      • 对输入信号定义读取值有效期,对输出信号定义写入超时
    • DiagnosisAttribute:诊断属性

      • 定义信号的诊断状态监控方式
      • 支持短路、开路、过温等故障检测
      • 与诊断功能协同工作
    • ChangeReportingAttribute:变更报告属性

      • 控制信号值变化时的通知机制
      • 定义回调函数,在值变化时调用
      • 减少应用层轮询需求

6.3 信号处理机制

IO硬件抽象层对ECU信号实施多层次处理,确保信号的可靠性和一致性:

  1. 信号映射

    • 将RTE端口映射到具体的ECU信号
    • 通过配置工具生成映射关系
    • 支持多对一、一对多的复杂映射关系
  2. 信号转换

    • 执行物理值与软件值之间的转换
    • 应用缩放因子和偏移量
    • 确保单位和范围的正确性
  3. 信号保护

    • 实施范围检查,防止无效值
    • 提供故障保护机制
    • 在检测到故障时采取安全动作
  4. 信号共享

    • 支持多个软件组件共享同一物理信号
    • 管理访问冲突和优先级
    • 确保数据一致性

通过这种结构化的ECU信号模型,IO硬件抽象层实现了应用软件与硬件驱动之间的有效解耦,既提高了软件的可重用性和可移植性,又为硬件保护和故障管理提供了强大的机制,是AUTOSAR分层架构不可或缺的中间层。


7. 总结

本文详细介绍了AUTOSAR IO硬件抽象层的设计与实现,从架构设计、状态机管理、信号处理流程到低功耗模式和ECU信号模型,全面阐述了这一关键模块的内部工作机制和外部接口。

7.1 设计要点

AUTOSAR IO硬件抽象层的核心设计要点包括:

  1. 分层抽象

    • 严格遵循AUTOSAR分层架构原则,处于ECU抽象层
    • 向上提供标准化的信号接口,向下适配多种驱动
    • 实现应用软件与硬件驱动的有效解耦
  2. 状态管理

    • 采用状态机模式管理模块生命周期
    • 定义清晰的状态转换条件和行为
    • 有效处理异常情况和故障恢复
  3. 信号处理

    • ECU信号作为核心抽象概念
    • 支持多种信号类型和丰富的属性定义
    • 提供信号转换、过滤和保护机制
  4. 低功耗管理

    • 协调多个外设的电源状态变化
    • 支持同步/异步切换模式
    • 确保系统级低功耗状态一致性

7.2 实现建议

在实际实现IO硬件抽象层时,应考虑以下关键点:

  1. 模块化设计

    • 将功能划分为明确的子模块,如信号处理、硬件保护等
    • 定义清晰的内部接口,便于维护和测试
    • 支持配置工具自动生成特定ECU的实现
  2. 错误处理机制

    • 实现全面的错误检测与报告
    • 分级处理开发期错误和运行时错误
    • 提供故障诊断和记录功能
  3. 性能优化

    • 关注实时性要求,尤其是信号处理路径
    • 优化内存使用,避免过度缓存
    • 平衡抽象层次与执行效率
  4. 测试策略

    • 针对不同信号类型开发专用测试用例
    • 验证各种故障条件下的行为
    • 确保所有状态转换路径都得到测试

7.3 应用场景

IO硬件抽象层在不同汽车应用场景中发挥着关键作用:

  1. 传感器接口

    • 将各种物理传感器(温度、压力、位置等)抽象为统一接口
    • 处理信号噪声、滤波和有效性验证
    • 使应用软件无需关注传感器具体类型和特性
  2. 执行器控制

    • 驱动各类执行器(电机、阀门、指示灯等)
    • 提供故障保护和诊断功能
    • 实现标准化的控制接口
  3. 多ECU平台

    • 支持同一应用软件在不同硬件平台上运行
    • 屏蔽底层硬件差异,提高软件可重用性
    • 简化跨平台开发和维护
  4. 诊断与维护

    • 提供标准化的诊断接口
    • 支持生产和服务阶段的测试需求
    • 便于问题定位和系统维护

IO硬件抽象层作为AUTOSAR架构的关键组成部分,通过标准化的接口和灵活的实现策略,有效解决了汽车电子系统复杂度不断提高带来的挑战,为构建高质量、可靠的汽车软件系统提供了坚实的基础。未来随着汽车电子技术的发展,IO硬件抽象层将进一步演进,以适应更复杂的硬件环境和更严格的功能安全要求。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python正则表达式(一)

目录 一、正则表达式的基本概念 1、基本概念 2、正则表达式的特殊字符 二、范围符号和量词 1、范围符号 2、匹配汉字 3、量词 三、正则表达式函数 1、使用正则表达式&#xff1a; 2、re.match()函数 3、re.search()函数 4、findall()函数 5、re.finditer()函数 6…

北京交通大学第三届C语言积分赛

作者有言在先&#xff1a; 题解的作用是交流思路&#xff0c;不是抄作业的。可以把重点放在思路分析上而不是代码上&#xff0c;毕竟每个人的代码风格是不一样的&#xff0c;看别人的代码就跟做程序填空题一样。先看明白思路再看代码。 还有就是&#xff0c;deepseek真的很好用…

机器学习之条件概率

1. 引言 概率模型在机器学习中广泛应用于数据分析、模式识别和推理任务。本文将调研几种重要的概率模型,包括EM算法、MCMC、朴素贝叶斯、贝叶斯网络、概率图模型(CRF、HMM)以及最大熵模型,介绍其基本原理、算法流程、应用场景及优势。 2. EM算法(Expectation-Maximizati…

硬件基础--03_电流

电流 十九世纪初:[电流方向]是指正电荷的移动方向。 后来:对于金属导体&#xff0c;正电荷没移动&#xff0c;其实是电子在移动。 为了定义的统一性[电流方向]仍然定义为正电荷的移动方向 所以:[电流方向]与[电子移动方向]是相反的。 概念:电荷的定向移动&#xff0c;形成了电…

multi paxos协议

1. Redo Log 同步的核心目标 ​数据一致性&#xff1a;确保所有副本在事务提交后具有相同的数据视图。​容错性&#xff1a;在主副本故障时&#xff0c;从副本能快速接管并恢复数据。​高吞吐&#xff1a;通过批量同步和并行处理提升效率。 2. Multi Paxos 协议的同步流程 M…

借壹起航东风,中国工厂出海开启新征程

在经济全球化不断深入的当下&#xff0c;中国工厂正以积极的姿态投身海外市场&#xff0c;渴望在全球商业版图中占据一席之地&#xff0c;绽放独特的光彩。然而&#xff0c;出海之路充满了挑战与艰辛&#xff0c;品牌塑造困难重重、询盘量不稳定、营销成本居高不下等问题&#…

【MySQL】监控MySQL

目录 使用状态变量监控MySQL 使用性能模式&#xff08;Performance Schema&#xff09;监控MySQL 1.性能模式 2.性能模式设置表 3.sys模式 使用状态变量监控MySQL 使用 show status 语句评估系统运行状况。 可以添加范围修饰符global或session来显示全局或本地状态信息。…

在linux系统上卸载并重新安装Docker及配置国内镜像源指

前言 Docker 作为容器化技术的核心工具&#xff0c;广泛应用于开发、测试和部署环境。但在某些情况下&#xff08;如版本冲突、配置错误等&#xff09;&#xff0c;可能需要彻底卸载并重新安装 Docker。此外&#xff0c;国内用户直接访问 Docker 官方镜像源可能速度较慢&#…

Mysql内置函数篇

&#x1f3dd;️专栏&#xff1a;Mysql_猫咪-9527的博客-CSDN博客 &#x1f305;主页&#xff1a;猫咪-9527-CSDN博客 “欲穷千里目&#xff0c;更上一层楼。会当凌绝顶&#xff0c;一览众山小。” 目录 7.函数 7.1 日期函数 函数总&#xff1a;​编辑 获得当前日期 获得…

小爱控制OK影视搜索视频

在adb connect ip以后&#xff0c;可以这样打开Ok影视&#xff0c;并且进行控制 pm list packages -3 #只显示第三方 dumpsys package com.fongmi.android.tv |grep Activity #返回 com.fongmi.android.tv/.ui.activity.HomeActivity am start -n com.fongmi.android.tv/.u…

电机倍频曲线的一些奇异特性-原因分析及应用

这里对感应电机倍频曲线的特征进行了说明&#xff0c;然后将其特性用于电机转差率和工况的测量。先给出可以直接利用的结论&#xff1a; 电机的工况和转差率谱线会体现为5x,7x谱线调制在基频附近。两条调制过携带s信息的谱线距离基频谱线的距离。 与真实转速相对同步转速的频差…

双指针技巧在C++中的应用:从基础到进阶

目录 1.简介 2.同向双指针 2.1.数组去重 2.2.最大子数组和 2.3.链表反转 2.4.字符串匹配&#xff08;简单版&#xff09; 3.对向双指针 3.1.两数之和&#xff08;有序数组&#xff09; 3.2.盛最多水的容器 4.快慢指针 4.1.判断链表是否有环 4.2.寻找链表的中间节点…

语言解码双生花:人类经验与AI算法的镜像之旅

大家好&#xff0c;我是吾鳴。 今天吾鳴要给大家分享一份由浙江大学出品的DeepSeek报告&#xff0c;报告从语言的奥秘&#xff0c;人类是如何通过语言来解码世界&#xff0c;AI又是如何理解人类的语言&#xff0c;同时介绍了当下爆火的DeepSeek-V3和DeepSeek-R1两种大模型的进化…

如何避免测试数据准备不充分或不可复用

避免测试数据准备不充分或不可复用的关键方法包括明确数据需求、统一数据管理工具、建立数据复用机制、定期维护更新测试数据以及加强团队沟通与协作。 其中&#xff0c;统一数据管理工具对确保数据质量和复用性尤为重要。例如&#xff0c;许多团队采用专门的测试数据管理工具以…

HTTP 核心知识点整理

1. HTTP 基础 ​定义&#xff1a;HTTP&#xff08;HyperText Transfer Protocol&#xff09;是应用层协议&#xff0c;基于 ​请求-响应模型&#xff0c;用于客户端&#xff08;浏览器&#xff09;与服务器之间的通信。​特点&#xff1a; ​无状态&#xff1a;每次请求独立&a…

汤臣倍健业绩倒车:2024年利润下滑超六成,三大核心品牌销量失守

撰稿|行星 来源|贝多财经 汤臣倍健的2024年&#xff0c;“隐痛”不少。 3月22日&#xff0c;国内膳食营养补充剂供应商汤臣倍健股份有限公司&#xff08;SZ:300416&#xff0c;下称“汤臣倍健”&#xff09;公布了2024年年度报告。财报显示&#xff0c;汤臣倍健过去一年出现了…

C#中的Lambda表达式‌

在C#中&#xff0c;‌Lambda表达式‌是一种比匿名方法更简洁、更灵活的语法形式&#xff0c;用于定义匿名函数&#xff08;Anonymous Function&#xff09;。它通过>运算符实现&#xff0c;能够大幅简化委托和表达式树的编写&#xff0c;是现代C#编程中广泛使用的核心特性之…

通信系统的性能指标

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、通信系统的性能指标概述二、数字通信系统的有效性指标三、数字通信系统的可靠性指标总结 前言 一、通信系统的性能指标概述 其中一个提高&#xff0c;另一个…

Linux:(模拟HTTP协议,GET和POST方法,Http的状态码)

目录 一、认识HTTP协议 1.上网的本质 2.应用层的运行逻辑 3.HTTP的概念 二、url 1.认识网址 三、HTTP协议的宏观理解 1.HTTP请求 2.HTTP响应 3.实际的HTTP请求 &#xff08;1&#xff09;测试代码 &#xff08;2&#xff09;接收HTTP请求 &#xff08;3&#xff09…

动态规划之完全背包

引言&#xff1a; 完全背包 隶属于动态规划中的背包问题。而 01背包 又是完全背包的基石&#xff0c;所以不懂01背包的&#xff0c;有必要了解一下。 什么是完全背包&#xff1f; 01背包问题&#xff1a;有一个背包承重为V&#xff0c;有N个物品&#xff0c;每个物品的价值(…