当前位置: 首页 > news >正文

TUSB422 MCU 软件用户指南

文章目录

      • TUSB422 MCU 软件用户指南
    • 目录
    • 表格
    • 图表
    • 1. 介绍
    • 2. 配置
      • 2.1 通用配置
      • 2.2 USB-PD 3.0 支持
      • 2.3 VDM 支持
    • 3. 代码 ROM/RAM 大小优化
    • 4. 通过 UART 调试
    • 4. 移植到其他微控制器

TUSB422 MCU 软件用户指南

摘要

本文档是 TUSB422 微控制器基于 Type-C 端口控制(TCPC)和电源传输(PD)软件的用户指南。本指南旨在帮助用户进行软件的配置、调试和移植。


目录

  1. 介绍 … 3
  2. 配置 … 4
    • 2.1 通用配置 … 4
    • 2.2 USB-PD 3.0 支持 … 5
    • 2.3 VDM 支持 … 6
  3. 代码 ROM/RAM 大小优化 … 7
  4. 通过 UART 调试 … 7
    • 3.1 UART 命令 … 9
  5. 移植到其他微控制器 … 10

表格

表 1: UART 命令列表 … 9
表 2: 软件移植的文件和函数 … 10
表 3: 基于应用的并发定时器计数 … 10

图表

图 1: TUSB422 PD 软件架构 … 3
图 2: Windows 设备管理器中的 UART COM 端口 … 8


1. 介绍

TUSB422 基于 MCU 的软件原生支持 TI 的 MSP-EXP432P401R 和 MSP-EXP430FR5969 MCU LaunchPad 评估模块(EVM),并与 TUSB422 EVM 配合使用。该软件通过 I²C 控制 TUSB422,并通过 GPIO 控制 VBUS 的独立电源模块。有关如何将 EVM 与 LaunchPad 设置的详细信息,请参阅 TUSB422 EVM 用户指南。

该软件符合以下规范:

  • USB Type-C 端口控制器接口规范,Rev 1.0,Ver 1.1。
  • USB Type-C 电缆和连接器规范,Rev 1.2。
  • USB 电源传输规范,Rev 2.0,Ver 1.2。
  • USB 电源传输规范,Rev 3.0,Ver 1.0a。

软件架构如图 1 所示。源代码文件名与图中所示的模块对应,可以在“PDlib”和“hal”文件夹中找到。IAR Embedded Workbench 和 Code Composer Studio 的项目文件位于“/app/DRP”目录中。


2. 配置

2.1 通用配置

USB Type-C 和 USB PD 的配置可以在“/app/DRP/main.c”文件中设置。文件顶部提供了一个示例配置。

有关配置结构和有效值的信息,请参阅“PDlib/tusb422_common.h”。以下是可配置参数的描述。

USB Type-C 配置:

  • role: Type-C 角色:0 = SRC(源),1 = SNK(接收器),2 = DRP(双角色端口)。
  • rp_val: 源电流广告:0 = 默认,1 = 1.5A,2 = 3.0A。
  • flags: 选项标志:0 = 无,1 = Try.SRC,2 = Try.SNK。

USB PD 配置:

  • src_settling_time_ms: 电压转换后电源供应稳定的时间(以毫秒为单位,默认 50 ms)。
  • pdo_priority: 源 PDO 选择优先级:0 = 电压,1 = 电流,2 = 功率。
  • fast_role_swap_support: 快速角色交换(FRS)支持:0 = 不支持(默认),1 = 默认功率,2 = 1.5A,3 = 3.0A。TUSB422 的 WCSP 封装不支持 FRS,因为它没有直接控制 VBUS 的引脚。
  • num_src_pdos: 源 PDO 的数量 [0-6]。
  • num_snk_pdos: 接收器 PDO 的数量 [0-6]。
  • src_caps[]: 源 PDO 数组。
  • snk_caps[]: 接收器 PDO 数组。

USB PD 源 PDO 配置:

  • SupplyType: 电源类型:0 = 固定,1 = 电池,2 = 可变。
  • Peakl: 峰值电流:0 = 默认,1 = 110% 电流持续 10ms,2 = 125% 电流持续 10ms,3 = 150% 电流持续 10ms(仅适用于固定和可变类型)。
  • MinV: 最小电压(以 50 mV 为单位)。
  • MaxV: 最大电压(以 50 mV 为单位,仅适用于可变和电池类型)。
  • Maxl: 最大电流(以 10 mA 为单位,仅适用于固定和可变类型)。
  • MaxPower: 最大功率(以 250 mW 为单位,仅适用于电池类型)。

USB PD 接收器 PDO 配置:

  • SupplyType: 电源类型:0 = 固定,1 = 电池,2 = 可变。
  • MinV: 最小电压(以 50 mV 为单位)。
  • MaxV: 最大电压(以 50 mV 为单位,仅适用于可变和电池类型)。
  • MaxOperatingCurrent: 最大工作电流(以 10 mA 为单位,仅适用于固定和可变类型)。
  • MinOperatingCurrent: 最小工作电流(以 10 mA 为单位,仅适用于固定和可变类型)。
  • OperationalCurrent: 工作电流(以 10 mA 为单位,仅适用于固定和可变类型)。
  • MaxOperatingPower: 最大工作功率(以 250 mW 为单位,仅适用于电池类型)。
  • MinOperatingPower: 最小工作功率(以 250 mW 为单位,仅适用于电池类型)。
  • OperationalPower: 工作功率(以 250 mW 为单位,仅适用于电池类型)。

USB PD 配置(布尔标志):

  • usb_comm_capable: 接收器和/或源能够进行 USB 数据通信。
  • no_usb_suspend: 接收器请求在 USB 挂起期间继续其电源合同。
  • usb_suspend_supported: 源指示接收器应遵循 USB 2.0 或 USB 3.1 的挂起和恢复。
  • externally_powered: 源由外部供电。
  • dual_role_data: 端口支持双角色数据并支持 DR_Swap 消息。
  • higher_capability: 接收器需要超过 5V 的电压以提供完整功能。
  • giveback_flag: 接收器将响应 GotoMin 消息并将其负载减少到最小工作电流。
  • auto_accept_swap_to_dfp: 自动接受数据角色交换请求到主机。
  • auto_accept_swap_to_ufp: 自动接受数据角色交换请求到设备。
  • auto_accept_swap_to_source: 自动接受电源角色交换请求到源。
  • auto_accept_swap_to_sink: 自动接受电源角色交换请求到接收器。
  • auto_accept_vconn_swap: 自动接受 VCONN 交换请求,即使当前不是 VCONN 源。

2.2 USB-PD 3.0 支持

可以通过在“usb_pd_policy_engine.h”中取消注释以下宏来启用 USB-PD 3.0 支持:

#define ENABLE_USB_PD_REV3_SUPPORT

如果启用了 USB-PD 3.0,可以通过取消注释以下宏来启用扩展消息支持:

#define ENABLE_EXTENDED_MSG_SUPPORT

启用 USB-PD 3.0 支持会增加固件映像的大小,除非应用程序需要 USB-PD 3.0 功能,否则不建议启用。

2.3 VDM 支持

USB-PD 供应商定义消息(VDM)支持可以通过在“PDlib/usb_pd_policy_engine.h”中取消注释或注释以下定义来控制:

#define ENABLE_VDM_SUPPORT

如果启用了 VDM 支持,可以使用以下定义启用可选的替代模式支持:

#define ENABLE_DP_ALT_MODE_SUPPORT
#define ENABLE_HDMI_ALT_MODE_SUPPORT

如果启用了 VDM 支持,请确保在“/app/DRP/main.c”文件中为您的应用程序设置适当的 VDM 配置参数。

目前,支持的 SVID 数量限制为三个,并且每个 SVID 仅支持单一模式。

USB PD VDM 配置:

  • id_header_vdo: 32 位 ID 头 VDO,用于 Discover Identity 响应。
  • cert_stat_vdo: 32 位证书状态 VDO,用于 Discover Identity 响应。
  • product_vdo: 32 位产品 VDO,用于 Discover Identity 响应。
  • num_product_type_vdos: 产品类型 VDO 的数量 [0-3]。
  • product_type_vdos[0]: 第一个 32 位产品类型 VDO(如果适用)。
  • product_type_vdos[1]: 第二个 32 位产品类型 VDO(如果适用)。
  • product_type_vdos[2]: 第三个 32 位产品类型 VDO(如果适用)。
  • num_svids: 支持的 SVID 数量 [0-3]。
  • svids[0]: 第一个 16 位 SVID(如果适用)。
  • svids[1]: 第二个 16 位 SVID(如果适用)。
  • svids[2]: 第三个 16 位 SVID(如果适用)。
  • modes[0]: 第一个 SVID 的 32 位模式值(如果适用)。
  • modes[1]: 第二个 SVID 的 32 位模式值(如果适用)。
  • modes[2]: 第三个 SVID 的 32 位模式值(如果适用)。
  • multi_function_preferred: 对于支持 DisplayPort 替代模式的 UFP,布尔值表示对 USB SuperSpeed + 1 或 2 个 DisplayPort 通道的偏好。
  • ufp_alt_mode_entry_timeout_enable: UFP 替代模式进入超时启用。

当启用 VDM 支持时,端口将尝试对电缆插头进行 Discover Identity。如果端口支持模式操作(由 ID 头 VDO 指示),端口还将在显式合同协商后尝试对端口伙伴进行 Discover Identity。端口将响应 Discover Identity 请求。

支持 DisplayPort 和 HDMI 替代模式所需的 VDM 消息代码已包含在内。可以修改“PDlib/usb_pd_policy_engine.c”文件以添加对其他模式或供应商定义的 SVID 的支持。在源代码中搜索“[VDM]”以查看可以添加其他 SVID 和模式支持的位置。

目前,支持的 SVID 数量限制为三个,并且每个 SVID 仅支持单一模式。

要完成 DP 替代模式的平台集成,必须执行以下操作:修改 tusb422_common.c 中的 tcpm_mux_control() 以控制替代模式多路复用器。对于 DP 接收器,必须在 HPD-IN 更改时调用 usb_pd_policy_engine.c 中的 usb_pd_pe_hpd_in_event() 函数。并且应修改 timeout_alt_mode_entry() 以在 USB 接口上显示 billboard。对于 DP 源,应修改 tusb422_common.c 中的 tcpm_hpd_out_control() 函数以控制 DP 源的 HPD-OUT。


3. 代码 ROM/RAM 大小优化

使用默认项目设置时,TUSB422 软件启用了通过 MCU 的 UART 进行调试输出,并使用 RAM 中的大型循环缓冲区。为了最小化 ROM 和 RAM 使用,可以将编译器预处理器定义的符号更改为零(最低级别)以禁用所有 UART 调试:

DEBUG_LEVEL=0

项目的代码优化级别也可以从“高/平衡”更改为“高/大小”以进一步减小代码大小。


4. 通过 UART 调试

TUSB422 软件可以通过 MCU 的 UART 提供调试接口。UART 代码使用 RAM 缓冲区来帮助缓解代码执行速度的减慢,但过多的调试输出仍可能导致 USB-PD 时序违规。如果 USB-PD 合同协商或合规性测试失败,请尝试减少或禁用调试输出。

LaunchPad MCU EVM 通过其 micro-USB 连接支持 UART。要确定正确的 COM 端口号,请连接 LaunchPad EVM,打开设备管理器,并查找“XDS110 Class Application/User UART”。


4. 移植到其他微控制器

图 1 中的 TCPM HAL 块必须移植到其他微控制器上才能使用该软件。通常,必须实现以下功能:

  • I²C 主控(用于读取/写入 TUSB422 寄存器)。
  • 具有毫秒分辨率的定时器和 msleep() 函数。
  • 用于 VBUS 电源控制的 GPIO。
  • 用于调试输出的 UART(可选)。

表 2 提供了文件和函数列表,作为移植过程的起点,但可能并不完全包含所有内容。

文件名函数
PDlib/tcpci.c_tcpc_write() _tcpc_read() tcpc_write_block() tcpc_read_block()
hal/MSPxxx/tcpm_hal.ctcpm_hal_vbus_enable() tcpm_hal_vbus_disable()
hal/MSPxxx/timer.ctimer_start() timer_cancel() msleep()
hal/MSPxxx/uart_hal.cHAL_UART_TxByte()

表 2: 软件移植的文件和函数

timer_start() 函数应能够根据应用程序处理并发定时器。大多数应用程序只需要一个软件定时器,但 HDMI 和 DisplayPort 的替代模式适配器需要额外的定时器。如果指定了相同的定时器指针,timer_start() 函数应在重新启动之前取消任何现有的定时器。msleep() 函数不应取消任何正在运行的定时器。

应用程序可能的并发定时器数量
DisplayPort 替代模式适配器2
HDMI 替代模式适配器3
其他1(仅单个定时器)

表 3: 基于应用的并发定时器计数

PD 软件实现了 SMBus 库,以提供未来控制其他电源 IC 的灵活性,这些 IC 可能需要 SMBus 协议,但这并不是严格要求的,因为 TUSB422 仅使用 I²C。开发人员可以选择使用 I²C 或 SMBUS 来移植“PDlib/tcpci.c”文件。如果使用 I²C 而不是 SMBUS,则必须使用“PDlib/tcpm.c”中的替代 tcpm_read_message() 函数,并且还必须修改 tcpm_transmit() 函数。源代码中有注释以帮助进行此修改。


TUSB422 MCU 软件用户指南

相关文章:

TUSB422 MCU 软件用户指南

文章目录 TUSB422 MCU 软件用户指南 目录表格图表1. 介绍2. 配置2.1 通用配置2.2 USB-PD 3.0 支持2.3 VDM 支持 3. 代码 ROM/RAM 大小优化4. 通过 UART 调试4. 移植到其他微控制器 TUSB422 MCU 软件用户指南 摘要 本文档是 TUSB422 微控制器基于 Type-C 端口控制(…...

归并排序 和 七大算法的总结图

目录 什么是递归排序: 图解: 递归方法: 代码实现: 思路分析: 非递归方法: 思路: 代码实现: 思路分析: 什么是递归排序: 先将数据分解成诺干个序列&#xff0…...

MySQL调用存储过程和存储函数

【图书推荐】《MySQL 9从入门到性能优化(视频教学版)》-CSDN博客 《MySQL 9从入门到性能优化(视频教学版)(数据库技术丛书)》(王英英)【摘要 书评 试读】- 京东图书 (jd.com) MySQL9数据库技术_夏天又到了…...

类与对象(OOP)

类(Class) 类是对象的模板或蓝图,用来描述对象的属性和行为。 动态与静态是同一张图像,最终效果也是相同 类的组成分别由: 属性(成员变量):描述对象的状态。 方法(成员方法):描述对象的行为。 构造函数:用于创建对象…...

接入 SSL 认证配置:满足等保最佳实践

前言 随着信息安全形势的日益严峻,等保(信息安全等级保护)要求成为各行业信息系统必须遵守的标准。在数据库领域,OpenGauss作为一款高性能、安全、可靠的开源关系型数据库,也需要满足等保要求,确保数据的安…...

PyTorch Lightning多GPU分布式日志介绍

分布式日志是指在分布式系统中,多个节点(如多台机器或多个 GPU)协同工作时,对系统运行状态、错误信息、性能指标等进行记录的过程。在 多 GPU/分布式训练 环境下,多个进程会同时运行,普通的 print() 或 logging 可能会在所有 GPU 上重复输出,导致日志混乱。PyTorch Ligh…...

LCR 160. 数据流中的中位数

文章目录 1.题目[LCR 160. 数据流中的中位数](https://leetcode.cn/problems/shu-ju-liu-zhong-de-zhong-wei-shu-lcof/solutions/477593/zi-jie-ti-ku-jian-41-kun-nan-shu-ju-liu-zhong-de-z/)2.思路3.代码 1.题目 LCR 160. 数据流中的中位数 **中位数 **是有序整数列表中的…...

post、get、delete、put请求

一、配置axios拦截器 // src/utils/request.js import axios from axios;// 创建 axios 实例 const instance axios.create({baseURL: https://api.example.com, // 你的 API 基础 URL//timeout: 10000, // 请求超时时间 });// 请求拦截器 instance.interceptors.request.use…...

css: 针对属性left/right/top/bottom为啥设置transition动画不起作用

如题: 在css的position中 left/right/top/bottom 这类位置属性值如果考虑使用transition来添加动画,transition它会优先考虑left/top属性,而此时transition触发需要的是数值型属性,如果设置为auto则系统会默认不考虑将位置属性添加…...

计算机网络(1)基础篇

目录 1.TCP/IP 网络模型 2.键入网址--->网页显示 2.1 生成HTTP数据包 2.2 DNS服务器进行域名与IP转换 2.3 建立TCP连接 2.4 生成IP头部和MAC头部 2.5 网卡、交换机、路由器 3 Linux系统收发网络包 1.TCP/IP 网络模型 首先,为什么要有 TCP/IP 网络模型&a…...

机器学习所需要的数学知识【01】

总览 导数 行列式 偏导数 概理论 凸优化-梯度下降 kkt条件...

ArcGISPro AA表O_Name字段 内容 复制到BB表BB字段里

import arcpy# 设置工作空间和要处理的表路径 resource_shape_table r"AA表.shp" # 源表路径 resource_assets_table r"BB表.shp" # 目标表路径# 使用 SearchCursor 读取源表中的 O_Name 字段 with arcpy.da.SearchCursor(resource_shape_table, [O_Na…...

2023-arXiv-CoT Prompt 思维链提示提升大型语言模型的推理能力

arXiv | https://arxiv.org/abs/2201.11903 摘要: 我们探讨了如何生成思维链(一系列中间推理步骤)显著提高大型语言模型执行复杂推理的能力。在三个大型语言模型上的实验表明,思维链提示提高了一系列算术、常识和符号推理任务的性…...

机器学习数学基础:21.特征值与特征向量

一、引言 在现代科学与工程的众多领域中,线性代数扮演着举足轻重的角色。其中,特征值、特征向量以及相似对角化的概念和方法,不仅是线性代数理论体系的核心部分,更是解决实际问题的有力工具。无论是在物理学中描述系统的振动模式…...

逻辑分析仪的使用-以STM32C8T6控制SG90舵机为例

STM32C8T6控制SG90舵机 1.逻辑分析仪作用 逻辑分析仪在嵌入式开发中的作用非常重要,它是开发、调试和排错过程中的一个不可或缺的工具。具体来说,逻辑分析仪的作用包括以下几个方面: 1.信号捕获和分析: 逻辑分析仪能够实时捕获多个…...

QCustomplot库运用

最近需要用到这个库显示数据,需要在一个曲线图4个Y轴共用一个X轴,并且做游标,跟随鼠标移动,并且实时反馈数据到表格中。记录一下程序。 customPlot new QCustomPlot(this); customPlot->setBackground(QBrush(QColor(204,204,…...

数据中心网络监控

数据中心是全球协作的特定设备网络,用来在internet网络基础设施上传递、加速、展示、计算、存储数据信息。 对于任何利用IT基础设施的企业来说,数据中心都是运营的核心,它本质上为整个业务网络托管业务应用程序和存储空间。数据中心可以是任…...

定义+类比

定义:间接量表是备选问题或者是备选语句或者是语句中选择合适的语句表达其态度,最后选择是一个合适的语句 A给具体的表打分,是直接上数字,而不是选择合适的语句表达其态度 B给排序,也是通过数字来表达其态度,也不是选择…...

深度学习框架探秘|PyTorch:AI 开发的灵动画笔

前一篇文章我们学习了深度学习框架——TensorFlow(深度学习框架探秘|TensorFlow:AI 世界的万能钥匙)。在人工智能领域,还有一个深度学习框架——PyTorch,以其独特的魅力吸引着众多开发者和研究者。它就像一…...

NAT模式 vs DR模式:LVS 负载均衡技术的优劣与适用场景

1. NAT 模式(Network Address Translation) 工作原理 请求路径:客户端请求发送到虚拟 IP(VIP),负载均衡器(Director)通过 DNAT(目标地址转换)将请求转发到真…...

八大排序——归并排序

目录 1.基本思想 2.动态图 3.分解的时候我们可以使用递归的方式进行 代码解释 1. main 方法 2. mergeSort 方法 3. merge 方法 示例运行过程 初始数组 每轮排序后的数组 代码总结 合并两个有序序列 1.基本思想 归并排序就是递归得将原始数组递归对半分隔&#xff0c…...

YOLO算法模型检测利用手机IP摄像头

1.yolo算法训练模型 yolov5训练网络数据集_yolo数据集 csdn-CSDN博客 2.模型检测 检测文件参数:yolov5的detect.py中基础参数分析-CSDN博客 3.进行IP摄像头检测 3.1下载IP摄像头 3.2打开与使用IP摄像头(确保手机与电脑在同一WiFi(局域网…...

前端职业规划

前端开发的职业规划可以根据个人兴趣、技术深度和职业目标来制定。以下是一个典型的前端开发者职业发展路径,涵盖了从初级到高级的不同阶段,以及未来的发展方向: 1. 初级阶段(0-2 年) 目标:掌握基础技能&a…...

百度舆情优化:百度下拉框中的负面如何清除?

百度的下拉词、相关搜索、大家还在搜有负面词条,一直是企业公关经理头疼的问题,小马识途营销顾问深耕网络营销领域十几年,对百度SEO优化、百度下拉框、百度相关搜索、自媒体营销、短视频营销等等技巧方面积累了一定的方法和技巧。 对于百度下…...

Java中如何高效地合并多个对象的List数据:方法与案例解析!

哈喽,各位小伙伴们,你们好呀,我是喵手。运营社区:C站/掘金/腾讯云/阿里云/华为云/51CTO;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互…...

【Vue】打包vue3+vite项目发布到github page的完整过程

文章目录 第一步:打包第二步:github仓库设置第三步:安装插件gh-pages第四步:两个配置第五步:上传github其他问题1. 路由2.待补充 参考文章: 环境: vue3vite windows11(使用终端即可&…...

编译和链接【四】链接详解

文章目录 编译和链接【四】链接详解前言系列文章入口符号表和重定位表链接过程分段组装符号决议重定位 编译和链接【四】链接详解 前言 在我大一的时候, 我使用VC6.0对C语言程序进行编译链接和运行 , 然后我接触了VS, Qt creator等众多IDE&…...

C语言进阶——4自定义类型(2)— 位段/枚举/联合体

目录 2. 位段2.1 什么是位段2.2 位段的内存分配2.3 位段的跨平台问题2.4 位段的应用 3. 枚举3.1 枚举类型的定义3.2 枚举的优点3.3 枚举的使用 4. 联合(共用体)4.1 联合类型的定义4.2 联合的特点4.3 联合大小的计算 2. 位段 2.1 什么是位段 位段的声明…...

企业级高可用 Kubernetes 实践:基于青云 LB 搭建容灾与负载均衡集群全攻略

一、前言 在企业生产环境,k8s高可用是一个必不可少的特性,其中最通用的场景就是如何在 k8s 集群宕机一个节点的情况下保障服务依旧可用。部署高可用k8s集群对于企业级云平台来说是一个根本性的原则,容错、服务可用和数据安全是高可用基础设施的关键。本文是在青云上利用青云…...

250213-异常exception

1. 概念 异常的抛出(throw):若在方法运行中出现错误,则方法会生成代表该异常的一个对象,并把它交给运行时系统,这个过程叫做抛出。 异常的捕获(catch):运行时系统接收到…...

MySQL - 索引 - 介绍

索引(Index)是帮助数据库高效获取数据的数据结构. 结构 语法 创建索引 creat [unique] index 索引名 on 表名 (字段名, ...); //创建唯一索引时加上unique, 多个字段用逗号隔开 查看索引 show index from 表名; 删除索引 drop index 索引名 on 表名;...

每日一题——90. 子集 II

题目链接&#xff1a;90. 子集 II - 力扣&#xff08;LeetCode&#xff09; 代码&#xff1a; class Solution { private:vector<vector<int>> result;vector<int> path;void traversal(vector<int>& nums,int startindex,vector<bool> …...

Mysql进阶篇(mysqlcheck - 表维护程序)

mysqlcheck的作用 mysqlcheck客户端用于执行表维护&#xff0c;可以对表进行&#xff1a;分析、检查、优化或修复操作。 &#xff08;1&#xff09;分析的作用是查看表的关键字分布&#xff0c;能够让 sql 生成正确的执行计划&#xff08;支持 InnoDB&#xff0c;MyISAM&#x…...

ChartDB:一个基于Web的可视化数据库设计工具

这次给大家介绍一个可视化的数据库设计工具&#xff1a;ChartDB。 ChartDB 是一个免费开源的数据库可视化设计工具&#xff0c;支持的数据库包括 MySQL、MariaDB、PostgreSQL、Microsoft SQL Server、SQLite、ClickHouse 等。 对于已有的数据库&#xff0c;ChartDB 提供了一键…...

Java NIO基础与实战:如何提升IO操作性能

Java NIO 概述 Java NIO&#xff08;新 I/O&#xff09;是 Java 提供的一个更为高效的 I/O 处理框架。Java NIO&#xff08;New I/O&#xff09;是对传统 I/O&#xff08;java.io&#xff09;模型的改进&#xff0c;它引入了非阻塞 I/O 操作和面向缓冲区的数据读写方式&#x…...

Elasticsearch:同义词在 RAG 中重要吗?

作者&#xff1a;来自 Elastic Jeffrey Rengifo 及 Toms Mura 探索 RAG 应用程序中 Elasticsearch 同义词的功能。 同义词允许我们使用具有相同含义的不同词语在文档中搜索&#xff0c;以确保用户无论使用什么确切的词语都能找到他们所寻找的内容。你可能会认为&#xff0c;由于…...

Python - Python正则表达式

正则表达式&#xff08;Regular Expression&#xff09;&#xff0c;又称规则表达式。正则表达式&#xff08;Regular Expression&#xff09;是一组由字母和符号组成的特殊文本&#xff0c;用于从文本中找出满足特定格式的句子。正则表达式通常被用来检索、替换那些符合某个模…...

DeepSeek 指导手册(入门到精通)

第⼀章&#xff1a;准备篇&#xff08;三分钟上手&#xff09;1.1 三分钟创建你的 AI 伙伴1.2 认识你的 AI 控制台 第二章&#xff1a;基础对话篇&#xff08;像交朋友⼀样学交流&#xff09;2.1 有效提问的五个黄金法则2.2 新手必学魔法指令 第三章&#xff1a;效率飞跃篇&…...

Android adb测试常用命令大全

目录 一、查看最上层成activity名字: 二、查看Activity的任务栈&#xff1a; 三、获取安装包信息 四、性能相关 1、显示CPU信息 : 2、查看CPU使用信息 3、内存信息&#xff08;meminfo package_name or pid 使用程序的包名或者进程id显示内存信息&#xff09; 4、电量信…...

【python语言应用】最新全流程Python编程、机器学习与深度学习实践技术应用(帮助你快速了解和入门 Python)

近年来&#xff0c;人工智能领域的飞速发展极大地改变了各个行业的面貌。当前最新的技术动态&#xff0c;如大型语言模型和深度学习技术的发展&#xff0c;展示了深度学习和机器学习技术的强大潜力&#xff0c;成为推动创新和提升竞争力的关键。特别是PyTorch&#xff0c;凭借其…...

在不知道进程的情况下怎么关闭

在不知道具体进程ID&#xff08;PID&#xff09;或者进程可能会变动的情况下&#xff0c;关闭MinIO服务器的方法通常依赖于你如何启动MinIO以及你的操作系统环境。以下是一些建议的步骤&#xff1a; 1. 使用系统服务管理工具 如果你将MinIO配置为系统服务&#xff08;例如在L…...

算力平台 驱动云的使用

驱动云的使用 1 进入官网注册2 上传数据3 上传模型4 创建项目5 开发环境6 停止使用 1 进入官网注册 点击这个进入 可以看到注册之后送十个算力点 如果不训练&#xff0c;仅仅上传数据和模型&#xff0c;那么也是要收费的&#xff0c;因为存储数据要占用驱动云的空间。 2 上…...

高校LabVIEW开发调试中的常见问题

在高校进行LabVIEW开发调试时&#xff0c;常常面临硬件选型不当、方案设计不合理、布线不专业以及人员流动性强等问题。这些问题可能影响项目的进展和质量。本文将总结这些问题&#xff0c;并给出具体的解决方案&#xff0c;帮助学生和团队更高效地开展开发工作。 ​ 1. 硬件选…...

数据结构——结构体位域、typedef类型重定义、宏、共用体union、枚举、虚拟内存划分

一、结构体位域 1.1 结构体位域的基础 结构体位域&#xff1a;把结构体字节大小扣到极致的一个类型&#xff0c;以bit单位 格式&#xff1a;struct 位域体名{数据类型 位域名:位域大小;数据类型 位域名:位域大小;...};解析&#xff1a;位域体名&#xff1a;可有可无&#xff…...

git bash删除库中的分支与文件

一、 在 GitHub 上删除非 main 分支的步骤可以分为两部分&#xff1a;首先在本地删除该分支&#xff0c;然后在 GitHub 上删除远程分支。以下是详细的步骤&#xff1a; 1. 删除远程分支&#xff08;在 GitHub 上删除&#xff09; 打开 GitHub 仓库页面&#xff0c;进入你的仓…...

连锁收银系统的核心架构与技术选型

在连锁门店的日常运营里&#xff0c;连锁收银系统扮演着极为重要的角色&#xff0c;它不仅承担着交易结算的基础任务&#xff0c;还关联着库存管理、会员服务、数据分析等多个关键环节。一套设计精良的核心架构与合理的技术选型&#xff0c;是保障收银系统高效、稳定运行的基础…...

称呼计算器:智能科技,简化您的计算生活

一款手机应用程序&#xff0c;安卓设备上使用。这款计算器应用以其简洁的界面、实用的功能和良好的用户体验而受到用户的喜爱。 计算器的主要特点包括&#xff1a; 基本计算功能&#xff1a;支持加、减、乘、除等基本运算。 科学计算器模式&#xff1a;提供更高级的数学运算功…...

qt的QMainWindow保存窗口和恢复窗口状态

保存窗口状态 QSettings settings("MyCompany", "MyApp"); // 指定存储的应用信息 settings.setValue("mainWindowState", saveState());saveState() 返回一个 QByteArray&#xff0c;包含 所有停靠窗口和工具栏的状态。QSettings 用于存储数据…...

【mysql】记一次mysql服务挂了后的数据恢复过程

现象 服务器异常&#xff0c;导致mysql服务异常退出&#xff0c;重启后&#xff0c;校验redo log异常 说明 mysql服务是通过docker-compose启动的,serviceName是db磁盘挂载&#xff1a;/var/lib/mysql挂载到本地磁盘/data/mysql 处理过程 备份 查看磁盘挂载列表 docker …...

使用 LangChain 对接硅基流动(SiliconFlow)API:构建一个智能对话系统

文章目录 什么是硅基流动&#xff08;SiliconFlow&#xff09;&#xff1f;LangChain 简介在 LangChain 中对接硅基流动步骤 1&#xff1a;安装必要的库步骤 2&#xff1a;设置 API 密钥步骤 3&#xff1a;编写代码代码解析步骤 4&#xff1a;运行代码如何扩展和改进总结 在现代…...