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

RK3588V2--ES8388声卡适配记录

RK3588V2--ES8388声卡适配记录

  • 1. ES8388声卡简单介绍
  • 2. 适配过程
    • 2.1 设备树配置
  • 3. 问题分析与解决
    • 3.1 现声卡平台设备, 最终注册失败
    • 3.2 系统查看 I2C 设备
    • 3.3 怀疑是没有上拉电阻?
  • 4. 测试阶段
    • 4.1 耳机接口测试--OK
    • 4.2 MIC测试--无法使用
  • 5. 分析总结

1. ES8388声卡简单介绍

Es8388有 2 个 ADC 通道和 2 个 DAC 通道,麦克风放大器,耳机放大器,数字音效以及模拟混合和增益功能组成。
主要特点:

  1. I2S 接口,支持最高 192K,24bit 音频播放。
  2. DAC 信噪比 96dB;ADC 信噪比 95dB。
  3. 支持主机和从机模式。
  4. 支持立体声差分输入/麦克风输入。
  5. 支持左右声道音量独立调节。
  6. 支持 40mW 耳机输出,无爆音。

在这里插入图片描述
通过原理图可以看出, MIC双路耳机都与ES8388这颗音频编解码芯片连接. 该芯片使用的通信协议是I2SSOC 驱动进行通信. 观察多个原理图基本可以得知, 配置这两个外设主要就是配置ES8388这颗芯片中的引脚, 其中的I2C应该是用于配置ES8388这个声卡内部积存的,但是今天主要是给他bringup起来的,不是来配置它的。

总的来说其实需要配置的设备树节点就三个:ES8388, I2S0I2C7.

2. 适配过程

2.1 设备树配置

其中需要的设备树各个配置如下:

es8388_sound: es8388-sound {status = "okay";compatible = "rockchip,multicodecs-card";rockchip,card-name = "rockchip,es8388";hp-det-gpio = <&gpio1 RK_PD3 GPIO_ACTIVE_HIGH>;io-channels = <&saradc 3>;io-channel-names = "adc-detect";keyup-threshold-microvolt = <1800000>;poll-interval = <100>;spk-con-gpio = <&gpio3 RK_PC0 GPIO_ACTIVE_HIGH>;hp-con-gpio = <&gpio3 RK_PA7 GPIO_ACTIVE_HIGH>;rockchip,format = "i2s";rockchip,mclk-fs = <256>;rockchip,cpu = <&i2s0_8ch>;rockchip,codec = <&es8388>;rockchip,audio-routing ="Headphone", "LOUT1","Headphone", "ROUT1","Speaker", "LOUT2","Speaker", "ROUT2","Headphone", "Headphone Power","Headphone", "Headphone Power","Speaker", "Speaker Power","Speaker", "Speaker Power","LINPUT1", "Main Mic","LINPUT2", "Main Mic","RINPUT1", "Headset Mic","RINPUT2", "Headset Mic";pinctrl-names = "default";pinctrl-0 = <&hp_det>;play-pause-key {label = "playpause";linux,code = <KEY_PLAYPAUSE>;press-threshold-microvolt = <2000>;};};

注意其中的clocksassigned-clocks属性, 用于为es8388设备配置时钟源. 其中 &cru 是时钟控制单元 (Clock & Reset Unit)的设备树节点, 这里表示I2S0_8CH_MCLKOUT 由cru提供. assigned-clocks = <&cru I2S0_8CH_MCLKOUT>;用于分配时钟, 表示想为I2S0_8CH_MCLKOUT设定一个固定的时钟频率. 所以仅仅通过clocks获取时钟还不够, 该属性作用是确保始终在设备初始化时被正确配置. 具体时钟频率由assigned-clock-rates属性确定, 在这里是12288000.

&i2c7 {status = "okay";es8388: es8388@11 {status = "okay";#sound-dai-cells = <0>;compatible = "everest,es8388", "everest,es8323";reg = <0x11>;clocks = <&mclkout_i2s0>;clock-names = "mclk";assigned-clocks = <&mclkout_i2s0>;assigned-clock-rates = <12288000>;pinctrl-names = "default";pinctrl-0 = <&i2s0_mclk>;};
};
&i2s0_8ch {status = "okay";pinctrl-0 = <&i2s0_lrck&i2s0_sclk&i2s0_sdi0&i2s0_sdo0>;
};

参考上述设备树修改自己的设备树文件, 注意修改的时候将需要进行复用功能冲突的节点记录一下,防止因为引脚复用问题查来查去,别问我为什么这么做,说多了都是泪 。。。:

1. gpio1_ d3 -- 无冲突
2. gpio3_ a7 -- 无冲突
3. gpio1_c2 -- 无冲突
4. i2c7 一对复用引脚: gpio1_d0, gpio1_d1 与 UART6 冲突, 失能 UART6, 如有子节点可尝试切换复用引脚.

3. 问题分析与解决

3.1 现声卡平台设备, 最终注册失败

调试信息发生变化:

# 修改配置之前:
[   10.997280] ES8323 3-0011: i2c recv Failed# 修改配置之后:
[    9.914426] input: headset-keys as /devices/platform/es8388-sound/input/input1
[   10.017544] rk3x-i2c fec90000.i2c: timeout, ipd: 0x91, state: 3
[   10.017614] ES8323 7-0011: ASoC: error at soc_component_write_no_lock on ES8323.7-0011: -110
[   10.030891] mmc_host mmc2: Bus speed (slot 0) = 400000Hz (slot req 400000Hz, actual 400000HZ div = 0)
[   10.052863] ES8323 7-0011: ASoC: error at soc_component_write_no_lock on ES8323.7-0011: -6
[   10.052876] ES8323 7-0011: Failed to issue reset
[   10.052885] ES8323 7-0011: ASoC: error at snd_soc_component_probe on ES8323.7-0011: -6
[   10.052890] ES8323 7-0011: ASoC: failed to probe component -6
[   10.052932] rk-multicodecs es8388-sound: ASoC: failed to instantiate card -6
[   10.053015] rk-multicodecs es8388-sound: card register failed -6

怀疑是设备树中的一些引脚复用冲突? 或者同一个时钟源不能被多个设备共同使用?
从调试信息中看, 原因似乎是设备复位失败 (即复位引脚出错) 和 I2C 通信超时 (I2C 引脚配置问题.). 不排除 I2C 通信频率太高以及没有上拉电压导致.

3.2 系统查看 I2C 设备

看看是不是一些引脚需要显示配置为gpio功能或者其他功能.
同时可以看到内核已经正确识别该设备地址:

root@LPA3588:/sys/bus/i2c/devices# ls
0-0042  2-0010  2-0042  3-0036  6-0022  7-0011  i2c-10  i2c-3  i2c-7  i2c-9
0-0043  2-0036  3-0010  6-0001  6-0051  i2c-0   i2c-2   i2c-6  i2c-8

所以 i2c 本身没有问题, 主要是无法正常通信, 如果要继续测试 I2C7 的通信, 因为目前 USB 和网口都无法使用, 所以之后的 ubuntu 系统中需要自带i2c-tools软件包(没有需要手动编译或者apt下载)

3.3 怀疑是没有上拉电阻?

I2C本来就不是啥高速信号,一般信号稳定性说实话还挺难受影响的。。。
观察原理图可以发现:
在这里插入图片描述
我的的I2C7_SCL没有配置上拉电阻哦。

这边使用万用表进行电压测试: I2C7_SCL_M0_CODEC处电压为 0.78, 可能没有达到 I2C 要求的上拉电压标准值 (观察其他原理图似乎是 1.8V). 因为我们的板子也没有外部硬件上拉, 所以设备树中配置为内部上拉, 开启内部默认上拉后再进行测试(如果测试成功, 需要注意其他 I2C 接口也需要同样进行配置, 估计很多都无外部硬件上拉):

调试信息变化:
[    9.816718] input: headset-keys as /devices/platform/es8388-sound/input/input1
[    9.828514] ES8323 7-0011: ASoC: error at soc_component_write_no_lock on ES8323.7-0011: -5
[    9.838541] mmc0: SDHCI controller on fe2e0000.mmc [fe2e0000.mmc] using ADMA
[    9.877034] mmc0: new HS400 Enhanced strobe MMC card at address 0001
[    9.877572] mmcblk0: mmc0:0001 A3A561 57.6 GiB 
[    9.877706] mmcblk0boot0: mmc0:0001 A3A561 partition 1 4.00 MiB
[    9.877825] mmcblk0boot1: mmc0:0001 A3A561 partition 2 4.00 MiB
[    9.877903] mmcblk0rpmb: mmc0:0001 A3A561 partition 3 16.0 MiB, chardev (237:0)
[    9.878718] input: rockchip,es8388 Headset as /devices/platform/es8388-sound/sound/card0/input2
# 系统内部信息
root@LPA3588:/dev/snd# ls
by-path  controlC0  pcmC0D0c  pcmC0D0p  seq  timer
root@LPA3588:/dev/snd# cd by-path/
root@LPA3588:/dev/snd/by-path# ls
platform-es8388-sound
root@LPA3588:/dev/snd/by-path# ls
platform-es8388-sound
root@LPA3588:/dev/snd/by-path# cd /proc/asound/cards
-bash: cd: /proc/asound/cards: Not a directory
root@LPA3588:/dev/snd/by-path# cd /proc/asound/card
-bash: cd: /proc/asound/card: No such file or directory
root@LPA3588:/dev/snd/by-path# cd /proc/asound/
root@LPA3588:/proc/asound# ls
card0  cards  devices  hwdep  pcm  rockchipes8388  seq  timers  version
root@LPA3588:/proc/asound# cat cards0 [rockchipes8388 ]: rockchip_es8388 - rockchip,es8388rockchip,es8388
root@LPA3588:/proc/asound# arecord -l
**** List of CAPTURE Hardware Devices ****
card 0: rockchipes8388 [rockchip,es8388], device 0: dailink-multicodecs ES8323.7-0011-0 [dailink-multicodecs ES8323.7-0011-0]Subdevices: 1/1Subdevice #0: subdevice #0

4. 测试阶段

4.1 耳机接口测试–OK

系统播放音频,耳机可以听到声音,说明声卡使用没什么问题。

4.2 MIC测试–无法使用

这边使用板载MIC进行录音测试,再使用耳机是无法听到任何声音的。使用16进制工具分析录音文件。

# 录音5S
arecord -D hw:0,0 -f cd -d 5 test-mic.wav
# 查看16进制变化
root@LPA3588:~# hexdump -C test-mic.wav | head -n 50
00000000  52 49 46 46 74 75 0d 00  57 41 56 45 66 6d 74 20  |RIFFtu..WAVEfmt |
00000010  10 00 00 00 01 00 02 00  44 ac 00 00 10 b1 02 00  |........D.......|
00000020  04 00 10 00 64 61 74 61  50 75 0d 00 ff ff ff ff  |....dataPu......|
00000030  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
*
00003460  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff 09 00  |................|
00003470  02 00 02 00 0a 00 0a 00  05 00 05 00 07 00 07 00  |................|
00003480  06 00 06 00 fe ff fe ff  03 00 03 00 09 00 09 00  |................|
00003490  04 00 04 00 05 00 05 00  05 00 05 00 07 00 07 00  |................|
000034a0  02 00 02 00 04 00 04 00  07 00 07 00 0f 00 0f 00  |................|
000034b0  0c 00 0c 00 0a 00 0a 00  07 00 07 00 08 00 08 00  |................|
000034c0  0b 00 0b 00 0f 00 0f 00  0c 00 0c 00 05 00 05 00  |................|
000034d0  03 00 03 00 04 00 04 00  06 00 06 00 08 00 08 00  |................|
000034e0  08 00 08 00 02 00 02 00  07 00 07 00 08 00 08 00  |................|
000034f0  fe ff fe ff 0b 00 0b 00  08 00 08 00 0a 00 0a 00  |................|
00003500  12 00 12 00 05 00 05 00  04 00 04 00 ff ff ff ff  |................|
00003510  04 00 04 00 05 00 05 00  03 00 03 00 05 00 05 00  |................|
00003520  05 00 05 00 06 00 06 00  06 00 06 00 ff ff ff ff  |................|
00003530  01 00 01 00 03 00 03 00  06 00 06 00 04 00 04 00  |................|
00003540  0d 00 0d 00 03 00 03 00  09 00 09 00 08 00 08 00  |................|
00003550  0a 00 0a 00 0a 00 0a 00  08 00 08 00 07 00 07 00  |................|
00003560  04 00 04 00 07 00 07 00  05 00 05 00 06 00 06 00  |................|
00003570  03 00 03 00 0a 00 0a 00  f9 ff f9 ff fe ff fe ff  |................|
00003580  05 00 05 00 09 00 09 00  05 00 05 00 04 00 04 00  |................|
00003590  03 00 03 00 03 00 03 00  03 00 03 00 02 00 02 00  |................|
000035a0  0d 00 0d 00 0a 00 0a 00  09 00 09 00 04 00 04 00  |................|
000035b0  fd ff fd ff fe ff fe ff  06 00 06 00 00 00 00 00  |................|
000035c0  08 00 08 00 00 00 00 00  fe ff fe ff fc ff fc ff  |................|
000035d0  fd ff fd ff 06 00 06 00  07 00 07 00 07 00 07 00  |................|
000035e0  03 00 03 00 fd ff fd ff  ff ff ff ff 00 00 00 00  |................|
000035f0  0a 00 0a 00 00 00 00 00  01 00 01 00 02 00 02 00  |................|
00003600  05 00 05 00 00 00 00 00  02 00 02 00 03 00 03 00  |................|
00003610  00 00 00 00 fc ff fc ff  fe ff fe ff 06 00 06 00  |................|
00003620  00 00 00 00 01 00 01 00  04 00 04 00 04 00 04 00  |................|
00003630  05 00 05 00 04 00 04 00  04 00 04 00 01 00 01 00  |................|
00003640  02 00 02 00 0c 00 0c 00  08 00 08 00 04 00 04 00  |................|
00003650  08 00 08 00 06 00 06 00  fb ff fb ff 01 00 01 00  |................|
00003660  02 00 02 00 02 00 02 00  01 00 01 00 fe ff fe ff  |................|
00003670  fd ff fd ff 02 00 02 00  02 00 02 00 03 00 03 00  |................|
00003680  06 00 06 00 05 00 05 00  0b 00 0b 00 04 00 04 00  |................|
00003690  fd ff fd ff 04 00 04 00  00 00 00 00 03 00 03 00  |................|
000036a0  01 00 01 00 ff ff ff ff  00 00 00 00 04 00 04 00  |................|
000036b0  03 00 03 00 06 00 06 00  05 00 05 00 05 00 05 00  |................|
000036c0  03 00 03 00 ff ff ff ff  05 00 05 00 08 00 08 00  |................|
000036d0  01 00 01 00 08 00 08 00  04 00 04 00 00 00 00 00  |................|
000036e0  06 00 06 00 0b 00 0b 00  06 00 06 00 02 00 02 00  |................|
000036f0  04 00 04 00 01 00 01 00  04 00 04 00 03 00 03 00  |................|
00003700  07 00 07 00 0c 00 0c 00  08 00 08 00 0c 00 0c 00  |................|
00003710  04 00 04 00 0b 00 0b 00  02 00 02 00 04 00 04 00  |................|
00003720  01 00 01 00 06 00 06 00  05 00 05 00 04 00 04 00  |................|

可以看到内部的数据处于一直变化阶段, 但是为何没有听到任何声音呢?

系统指令查看外部耳机MIC设备:

# 查看系统文件
root@LPA3588:/sys/class/extcon/extcon6
cat state
MICROPHONE=0
HEADPHONE=1

是因为没有检测到MIC吗?其实不然,这里的MIC其实连接在ES8388声卡上,MIC不像是耳机还带有耳机DET引脚,这种纯后端设备系统其实是无法检测到的,检测到声卡一般就可以使用。
在这里插入图片描述

5. 分析总结

ES8388 移植基本成功,但是出现板载 MIC无法使用的问题,最终硬件工程师发现由于其过度追求封装,导致物料选择错误,将 MIC 与声卡连接的电容大小选错了,可能是这个原因导致录音文件似乎有变化但是没有声音。
在这里插入图片描述

相关文章:

RK3588V2--ES8388声卡适配记录

RK3588V2--ES8388声卡适配记录 1. ES8388声卡简单介绍2. 适配过程2.1 设备树配置 3. 问题分析与解决3.1 现声卡平台设备, 最终注册失败3.2 系统查看 I2C 设备3.3 怀疑是没有上拉电阻&#xff1f; 4. 测试阶段4.1 耳机接口测试--OK4.2 MIC测试--无法使用 5. 分析总结 1. ES8388声…...

【http://noi.openjudge.cn/】4.3算法之图论——1538:Gopher II

[【http://noi.openjudge.cn/】4.3算法之图论——1538:Gopher II] 题目 查看提交统计提问 总时间限制: 2000ms 内存限制: 65536kB 描述 The gopher family, having averted the canine threat, must face a new predator. The are n gophers and m gopher holes, each at di…...

PySide(PyQT)的视图(QGraphicsView)范例(一) 基本框架

最近学习了视图&#xff08;QGraphicsView&#xff09;的知识&#xff0c;总结一下&#xff0c;做一个demo以备忘。在demo中使用了场景&#xff08;QGraphicsScene&#xff09;、矩形框&#xff08;QGraphicsRectItem&#xff09;等构件&#xff0c;以及演示了常用的设置方法和…...

opencv 模板匹配方法汇总

在OpenCV中&#xff0c;模板匹配是一种在较大图像中查找特定模板图像位置的技术。OpenCV提供了多种模板匹配方法&#xff0c;通过cv2.matchTemplate函数实现&#xff0c;该函数支持的匹配方式主要有以下6种&#xff0c;下面详细介绍每种方法的原理、特点和适用场景。 1. cv2.T…...

_mm_shuffle_epi32解析

一 概述 _mm_shuffle_epi32和_MMSHUFFLE是与SSE指令集相关的开发工具&#xff0c;主要用于SIMD向量操作。 二 _mm_shuffle_epi32 函数 功能&#xff1a;对128位整数向量(__m128i)中的四个32位整数进行重排序 原型&#xff1a;__m128i _mm_shuffle_epi32 (__m128i a, int imm…...

Tauri+React+Ant Design跨平台开发环境搭建指南

TauriReactAnt Design跨平台开发环境搭建指南 一、环境配置与工具链搭建 1.1 基础环境准备 必备组件&#xff1a; Rust工具链&#xff08;v1.77&#xff09;&#xff1a; curl --proto https --tlsv1.2 -sSf https://sh.rustup.rs | sh Node.js LTS&#xff08;v20.11.1&a…...

《基于Selenium的论坛系统自动化测试实战报告》

一、项目背景与技术选型 项目简介 目标系统&#xff1a;论坛系统 核心功能&#xff1a;用户注册/登录、会话框发送信息、好友列表、信息发送 技术栈&#xff1a;html Springboot MySQL数据库 为什么选择Selenium 支持多浏览器兼容性测试&#xff08;Chrome/Firefox/Edge&…...

洛谷 P11830 省选联考2025 幸运数字 题解

题意 小 X 有 n n n 个正整数二元组 ( a i , b i ) ( 1 ≤ i ≤ n ) (a_i, b_i) (1 \leq i \leq n) (ai​,bi​)(1≤i≤n)。他将会维护初始为空的可重集 S S S&#xff0c;并对其进行 n n n 轮操作。第 i ( 1 ≤ i ≤ n ) i (1 \leq i \leq n) i(1≤i≤n) 轮操作中&#…...

清华北大DeepSeek六册

「清华北大-Deepseek使用手册」 链接&#xff1a;https://pan.quark.cn/s/98782f7d61dc 「清华大学Deepseek整理&#xff09; 1&#xff0d;6版本链接&#xff1a;https://pan.quark.cn/s/72194e32428a AI学术工具公测链接:https://pan.baidu.com/s/104w_uBB2F42Da0qnk78_ew …...

ubuntu部署gitlab-ce及数据迁移

ubuntu部署gitlab-ce及数据迁移 进行前梳理: 在esxi7.0 Update 3 基础上使用 ubuntu22.04.5-server系统对 gitlab-ce 16.10进行部署,以及将gitlab-ee 16.9 数据进行迁移到gitlab-ce 16.10 进行后总结: 起初安装了极狐17.8.3-jh 版本(不支持全局中文,就没用了) …...

什么是 MGX:MetaGPT

什么是 MGX:MetaGPT MetaGPT是由思码逸(OpenDILab)团队开发的一款专注于生成式AI驱动的软件开发框架,MGX可能是其衍生或升级的相关成果,它创新性地将大语言模型引入软件开发流程,模拟人类软件团队的协作方式,能让用户通过自然语言描述需求,即可自动生成完整的软件项目,…...

C++,leecode字符串常见API

在LeetCode上刷C题目时&#xff0c;熟练掌握字符串相关的常见API可以大大提高代码效率和可读性。以下是C标准库&#xff08;<string>&#xff09;中常用的字符串操作API&#xff1a; 1. 初始化和赋值 std::string s1 "hello"; // 直接初始化 std::string s2…...

Ubuntu 安装 stable-diffusion-webui-docker 常见问题处理方法

安装 Stable Diffusion WebUI Docker 工程地址 https://github.com/AbdBarho/stable-diffusion-webui-docker 第一步是 git clone 下来 Setup 阅读 README 中的 setup&#xff0c;进入页面 https://github.com/AbdBarho/stable-diffusion-webui-docker/wiki/Setup docker …...

长时间目标跟踪算法(3)-GlobalTrack:A Simple and Strong Baseline for Long-termTracking

GlobalTrack的原始论文和源码均已开源&#xff0c;下载地址。 目录 背景与概述 1.1 长期视觉跟踪的挑战 1.2 现有方法的局限性 1.3 GlobalTrack的核心思想 算法原理与架构 2.1 全局实例搜索框架 2.2 Query-Guided RPN&#xff08;QG-RPN&#xff09; 2.3 Query-Guided RCNN&a…...

深入理解指针与回调函数:从基础到实践

引言 在C语言中&#xff0c;指针和回调函数是两个非常重要的概念。指针为我们提供了直接操作内存的能力&#xff0c;而回调函数则为我们提供了一种灵活的编程方式&#xff0c;使得我们可以将函数作为参数传递给其他函数&#xff0c;从而实现更加模块化和可复用的代码。本文将深…...

算法学习新姿势:从0开始用hello-algo搭建自己的在线学习平台

文章目录 前言1.关于hello-algo2.安装Docker和Docker compose3.本地部署hello-algo4. hello-algo本地访问5.cpolar内网穿透工具安装6.创建远程连接公网地址7.固定Uptime Kuma公网地址 前言 今天要给大家安利一款绝对不能错过的开源神器——Hello-Algo&#xff01;无论你是刚踏…...

常用 nvm 命令指南

nvm&#xff08;Node Version Manager&#xff09; 是一个用于管理 Node.js 版本的工具&#xff0c;可以轻松安装、切换和卸载不同版本的 Node.js。本文将介绍常用的 nvm 命令&#xff0c;帮助你高效管理 Node.js 环境。 1. 列出系统中通过 nvm 安装的所有 Node.js 版本 nvm l…...

后端-Java虚拟机

Java虚拟机 Java虚拟机的组成 Java虚拟机的组成由类加载器ClassLoader、运行时数据区域&#xff08;JVM管理的内存&#xff09;和执行引擎&#xff08;即时遍历器、解释器垃圾回收器&#xff09; 类加载器加载class字节码文件中的内容到内存运行时数据区域负责管理jvm使用到…...

开源PDF解析工具olmOCR

olmOCR 是由 Allen Institute for Artificial Intelligence (AI2) 的 AllenNLP 团队开发的一款开源工具&#xff0c;旨在将PDF文件和其他文档高效地转换为纯文本&#xff0c;同时保留自然的阅读顺序。它支持表格、公式、手写内容等。 olmOCR 经过学术论文、技术文档和其他文档…...

Java里的ArrayList和LinkedList有什么区别?

大家好&#xff0c;我是锋哥。今天分享关于【Java里的ArrayList和LinkedList有什么区别&#xff1f;】面试题。希望对大家有帮助&#xff1b; Java里的ArrayList和LinkedList有什么区别&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 ArrayList 和 Lin…...

Python的循环和条件判断 笔记250303

Python的循环和条件判断 Python中的循环和条件判断是编程基础&#xff0c;以下是关键点总结及示例&#xff1a; 条件判断 语法&#xff1a;if、elif、else&#xff0c;使用缩进划分代码块。逻辑运算符&#xff1a;and、or、not。示例&#xff1a;age 18 if age < 12:prin…...

浔川官方回应

浔川官方回应 近期&#xff0c;有用户反馈《浔川社团官方文章被 Devpress 社区收录&#xff01;》一文中的文章链接&#xff0c;点击后出现无法访问的情况。在此&#xff0c;浔川社团向各位关注我们的用户致以诚挚的歉意&#xff0c;并就该问题作出如下说明&#xff1a; 经社…...

【计算机网络入门】初学计算机网络(六)

目录 1.回忆数据链路层作用 2. 组帧 2.1 四种组帧方法 2.1.1 字符计数法 2.1.2 字节填充法 2.1.3 零比特填充法 2.1.4 违规编码法 3. 差错控制 3.1 检错编码 3.1.1 奇偶校验码 3.1.2 CRC&#xff08;循环冗余校验&#xff09;校验码 3.2 纠错编码 3.2.1 海明校验码…...

摄像头应用编程(三):多平面视频采集

文章目录 1、前言2、环境介绍3、步骤4、应用程序编写5、测试5.1、编译应用程序5.2、运行应用程序 6、总结 1、前言 在查看摄像头类型时&#xff0c;大致可以分为两类&#xff1a;Video Capture 和 Video Capture Multiplanar。 本次应用程序主要针对类型为Video Capture Multi…...

用工厂函数简化redis配置

工厂函数&#xff08;Factory Function&#xff09;不同于构造函数&#xff0c;工厂函数就是一个普通函数&#xff0c;通常用于创建对象或实例。它的核心思想是通过一个函数来封装对象的创建逻辑&#xff0c;而不是直接使用类的构造函数。工厂函数可以根据输入参数动态地决定创…...

网页制作11-html,css,javascript初认识のCCS样式列表(上)

Advantage. 更加精确的控制网页的内容、形式。样式更加丰富。定义样式灵活。 一、css的基本语法 Css的语法结构由三部分组成&#xff1a; 1、选择符 Selector&#xff1a; 指这种样式编码所要针对的对象&#xff0c;可以是一个xhtml标签&#xff0c;例如body hl&#xff1b…...

VSCode 移除EmmyLua插件的红色波浪线提示

VSCode 中安装插件EmmyLua&#xff0c;然后打开lua文件的时候&#xff0c;如果lua代码引用了C#脚本的变量&#xff0c;经常出现 “undefined global variable: UnityEngineEmmyLua(undefined-global)” 的红色波浪线提示&#xff0c;这个提示看着比较烦人&#xff0c;我们可以通…...

【PHP】fastadmin框架后台开关的传值问题

文章目录 概要技术细节 概要 fastadmin的后台ui框架中&#xff0c;处理列表开关的场景比较多见&#xff0c;有时传值不是0和1&#xff0c;而是1和2&#xff0c;那么就需要调整js的代码了。 技术细节 处理开关字段的js代码&#xff1a; {field: is_sellOut,title: 销售中,yes…...

机器学习数学基础:37.统计学基础知识1

统计学基础概念入门教程 在统计学的世界里&#xff0c;概率和数据分布是基础且重要的概念&#xff0c;它们能帮助我们理解和分析各种数据现象。除此之外&#xff0c;点估计与区间估计也是在对总体参数进行推断时常用的方法。下面&#xff0c;就为统计学小白详细讲解这些关键的…...

HTB academy ---Active Directory Enumeration Attacks---An ACE in the Hole

ACL Enumeration 那么章节开始我们先枚举一下用户的GUID&#xff0c;也就是如图所示objectacetype这一块儿的内容&#xff0c;这一步的目的其实是观察我们已获得的用户对其他用户的权限&#xff0c;这个权限就是通过这个GUID得出来的&#xff08;当然枚举的时间会比较长可能需…...

2025华为OD机试真题目录【E卷+A卷+B卷+C卷+D卷】持续收录中...

摘要 本专栏提供2025最新最全的华为OD机试真题库&#xff08;EABCD卷&#xff09;&#xff0c;包括100分和200分题型。题目包含题目描述、输入描述、用例、备注和解题思路、多种语言解法&#xff08;Java/JS/Py/C/C&#xff09;。希望小伙伴们认真学习、顺利通过。 声明 本专…...

【Linux第一弹】Linux基础指令(上)

目录 1.ls指令 1.1 ls使用实例 2.pwd指令 3.cd指令 3.1 cd使用实例 4.touch指令 4.1touch使用实例 5.mkdir指令 5.1mkdir使用实例 6.rmdir指令和rm指令 6.1 rmdir指令使用实例->: 6.2 rm指令使用实例 7.man指令 8.cp指令 8.1 cp 使用实例 9.mv指令 9.1mv使用…...

linux下自旋锁(spin_lock)

文章目录 Linux自旋锁&#xff1a;单核与多核环境下的实现差异与核心原理 &#x1f5a5;️&#x1f512;一、自旋锁的核心特性 ⚙️&#x1f3af; 适用场景&#xff1a; 二、单核环境下的自旋锁实现 &#x1f6d1;1. **实现原理** &#x1f504;2. **关键代码解析** &#x1f4…...

【华为OD机考】2024E+D卷真题【完全原创题解 详细考点分类 不断更新题目 六种主流语言Py+Java+Cpp+C+Js+Go】

可上 欧弟OJ系统 练习华子OD、大厂真题 绿色聊天软件戳 oj1441了解算法冲刺训练&#xff08;备注【CSDN】否则不通过&#xff09; 文章目录 相关推荐阅读模拟 数学排序字符串基础数组基础系统设计蒙特卡洛模拟其他 栈 常规栈单调栈 队列&#xff08;题目极少&#xff0c;几乎不…...

VirtualBox虚拟机转VM虚拟机

前言&#xff1a;部分靶机只适用于VirtualBox&#xff0c;VM打不开VirtualBox的文件&#xff0c;所以需要进行转换 前置条件&#xff1a;本机已经下载VM和VirtualBox 第一步&#xff1a;文件转换 找到VirtualBox.exe所在位置&#xff0c;启动cmd窗口 文件转换的命令&#xf…...

UE5设置打开新窗口默认停靠在主窗口

打开引擎所在位置 找到路径 ...\UE_5.5\Engine\Config 找到 BaseEditorPerProjectUserSettings.ini 文件 打开后CtrlF搜索 [/Script/UnrealEd.EditorStyleSettings] 在末尾添加一行 AssetEditorOpenLocationMainWindow 保存即可,之后的项目都是默认主窗口打开...

vi常见操作命令

vi&#xff08;Visual Editor&#xff09;是Linux和Unix系统中广泛使用的文本编辑器&#xff0c;它以其高效、强大的功能深受程序员和系统管理员的喜爱。这个“常用vi命令集合.zip”压缩包包含了一份详细记录了vi编辑器常用命令的文档“常用vi命令集合.doc”。下面&#xff0c;…...

AIGC和搜索引擎的异同

AIGC&#xff08;生成式人工智能&#xff09;与搜索引擎的核心差异体现在信息处理方式和输出形态上&#xff0c;我们可以从以下维度对比&#xff1a; 一、工作原理的本质差异 信息检索机制 搜索引擎&#xff1a;基于关键词匹配&#xff08;如"中暑怎么办"→返回相关…...

【ATXServer2】Android无法正确显示手机屏幕

文章目录 现象原因分析与解决排查手机内部minicap 解决minicap问题查看移动端Android SDK版本查看minicap支持版本单次方案多次方案 现象 原因分析与解决 由于atxserver2在与Android动终端的链接过程中使用了agent&#xff1a;atxserver2-android-provider&#xff0c;按照项目…...

fps项目总结:动画蓝图

文章目录 状态不同状态的并存性。 状态 不同状态的并存性。...

Trae:国内首款AI原生IDE,编程效率大提升

今年一月&#xff0c;在新闻上看到字节跳动面向海外市场推出了一款名为Trae的AI集成开发环境&#xff08;IDE&#xff09;。起初&#xff0c;我并未给予过多关注&#xff0c;因为市面上已有不少IDE集成了AI插件&#xff0c;功能也非常全面&#xff0c;而字节跳动自家的MarsCode…...

《深度学习进阶》第8集:多模态学习与跨领域融合**

第8集&#xff1a;多模态学习与跨领域融合 在深度学习的浪潮中&#xff0c;单模态模型&#xff08;如仅处理图像或文本的模型&#xff09;已经取得了令人瞩目的成就。然而&#xff0c;随着人工智能应用场景的复杂化和多样化&#xff0c;多模态学习逐渐成为研究和应用的热点。多…...

大模型在败血症预测及围手术期管理中的应用研究报告

目录 一、引言 1.1 研究背景与意义 1.2 研究目的与创新点 1.3 研究方法与数据来源 二、败血症概述 2.1 定义与流行病学 2.2 病因与发病机制 2.3 临床表现与诊断标准 2.4 并发症与危害 三、大模型技术原理及在医疗领域的应用 3.1 大模型技术概述 3.2 大模型在医疗领…...

Hadoop架构详解

Hadoop 是一个开源的分布式计算系统&#xff0c;用于存储和处理大规模数据集。Hadoop 主要由HDFS&#xff08;Hadoop Distributed File System&#xff09;、MapReduce、Yarn&#xff08;Jobtracker&#xff0c;TaskTracker&#xff09;三大核心组件组成。其中HDFS是分布式文件…...

【操作系统】文件

文件 一、文件的概念二、文件目录2.1 FCB2.2 目录结构2.2.1 单机目录2.2.2 两级目录2.2.3 树形目录结构2.2.4 无环图目录结构 三、文件的逻辑结构和物理结构3.1 文件的逻辑结构3.1.1 顺序文件3.1.2 索引文件3.1.3 索引顺序文件 3.2 文件的物理结构3.2.1 连续分配3.2.2 隐式链接…...

我的ChatGPT怎么登不上?

近期&#xff0c;不少用户反馈在使用ChatGPT时遇到登录困难、连接超时等问题。本文将从技术角度分析常见原因&#xff0c;并提供合规、安全的解决方案&#xff0c;同时结合开发者实际需求推荐实用工具&#xff0c;助您高效应对登录障碍。 ChatGPT登录失败的常见原因 网络环境限…...

实时金融信息搜索的新突破:基于大型语言模型的智能代理框架

“An Agent Framework for Real-Time Financial Information Searching with Large Language Models” 论文地址&#xff1a;https://arxiv.org/pdf/2502.15684 摘要 在金融决策过程中&#xff0c;需要处理海量的实时信息以及复杂的时序关系。然而&#xff0c;传统的搜索引擎在…...

Linux服务器Ubuntu系统环境中安装Jupyter Notebook并且配置内核以便在网页端调用

一、前提 在使用终端访问&#xff0c;并且个人目录下已创建环境。如果还不知道创建环境和安装包&#xff0c;请参考之前文章 机器学习模型算法代码需要在环境中安装的库和包 二、安装相关库Jupyter Notebook 使用pip 或 conda指令安装&#xff0c;确保服务器上安装了 Python …...

Magic 1-For-1: 在一分钟内生成一分钟视频片段(基于Python实现,视频生成模型)

一、前言 文章所有代码都使用Python实现&#xff0c;并且可以分享开源&#xff0c;文章末尾联系博主或者往期文章末尾联系&#xff0c;欢迎探讨学习分享专业领域前言研究和技术分享。 二、摘要 在本技术报告中&#xff0c;我们介绍了 Magic 1-For-1 &#xff08;Magic141&#…...

基于RK3588的重症监护信息系统应用解决方案

重症监护信息系统是医院临床信息系统的重要组成部分&#xff0c;也是医院信息化建设的重要组成部分。通过集成化的电子病历、实时监测、决策支持等功能&#xff0c;提高重症患者的诊疗效率和质量。 图片来源于网络 重症监护信息系统主要由数据信息采集单元、信息处理单元、通信…...