u-boot 学习笔记
u-boot 学习笔记 u-boot分类 1.1. api 1.1.1. api.md 1.2. arch 1.2.1. arm 1.2.1.1. arm.md 1.2.1.2. assembly.md 1.2.2. arch.md 1.3. boot 1.3.1. bootm.md 1.3.2. bootretry.md 1.3.3. bootz.md 1.3.4. image.md 1.4. cmd 1.4.1. cmd.md 1.5. common 1.5.1. autoboot.md 1.5.2. board.md 1.5.3. cli.md 1.5.4. command.md 1.5.5. console.md 1.5.6. dmalloc.md 1.5.7. event.md 1.5.8. export.md 1.5.9. log.md 1.5.10. main.md 1.6. dm 1.6.1. adc.md 1.6.2. button.md 1.6.3. clock.md 1.6.4. core.md 1.6.5. dts.md 1....
RT-Thread 学习笔记
RT-Thread 学习笔记 其他资料 1.1. fatfs 1.1.1. fatfs.md 2. ARM指针寄存器.md 3. CAN驱动.md 4. completion.md 5. condvar.md 6. dataqueue.md 7. DFS.md 8. fal.md 9. fatfs.md 10. FINSH模块.md 11. I2C驱动.md 12. IDLE线程.md 13. IPC.md 14. littlefs.md 15. map文件分析.md 16. pipe.md 17. PM电源管理.md 18. readme.md 19. ringblock.md 20. ringbuffer.md 21. romfs.md 22. RTC.md 23. RT-LINK.md 24. RTT系统初始化.md 25. SDMMC.md 26. SIGNAL.md 27. SPI驱动.md 28. tmpfs.md 29. ULOG.md 30. USB.md 31. waitqueue.md 32. 串口驱动.md 33. 调度.md 34. 工作队列...
hid-core
[toc] HID Core:全面了解与深度解析文件路径 / 技术中文名 / 功能概述 文件路径:drivers/hid/hid-core.c 技术中文名:HID 核心层驱动 功能概述:hid-core.c 是 Linux HID 子系统的公共核心实现,负责 HID 报告描述符解析、设备分组、驱动匹配、输入报告解释、事件分发,以及 hidinput、hidraw、hiddev 等上层消费路径的连接。它本身不是 USB、I2C、Bluetooth 这类传输驱动,而是位于这些传输驱动之上的通用 HID 核心。 介绍drivers/hid/hid-core.c 在 Linux HID 栈中的位置非常明确:它属于 HID bus 的公共核心层,不直接负责总线收发,也不直接等同于输入子系统驱动。它的职责是把“某个传输层送上来的 HID 设备”和“上层具体的 HID 驱动、input 接口、hidraw 接口、hiddev 接口”连接起来。 从当前主线实现看,HID 子系统被组织成一种总线模型。传输驱动负责设备发现、底层收发、设备启动与停止;hid-core.c ...
mmci
[toc] MMCI(ARM PrimeCell PL18x 主机控制器驱动):全面了解与深度解析文件路径 / 技术中文名 / 功能概述 文件路径:drivers/mmc/host/mmci.c 技术中文名:MMCI(ARM PrimeCell PL180/PL181 及衍生控制器的 MMC/SD/SDIO Host 驱动) 功能概述:该文件是 Linux MMC host 层驱动实现,负责把 MMC core 发下来的命令与数据请求,转换成 MMCI/SDMMC 控制器寄存器操作,覆盖命令发送、响应接收、数据通路控制、PIO 与 DMA 传输、中断处理、时钟与电源控制,以及不同硬件变体的差异适配。 介绍drivers/mmc/host/mmci.c 属于 Linux MMC 子系统里的 Host Controller Driver。它不负责块层调度,也不负责文件系统,而是直接驱动一类具体的 MMC/SD/SDIO 控制器 IP。 从主线实现看,这个文件不是“单一芯片专用驱动”,而是一个覆盖面...
黄金比例乘法哈希与哈希表大小设计原理
[toc] 黄金比例乘法哈希与哈希表大小设计原理 本文说明一种常见的静态哈希表设计:黄金比例乘法哈希(Multiplicative Hashing) + 2 的幂桶表结构。该方案来源于 Knuth 在《The Art of Computer Programming》中提出的哈希理论,在系统软件与嵌入式环境中被广泛采用。 示例代码通过编译期计算哈希表大小,并使用黄金比例相关常数实现均匀分布的哈希函数。 使用黄金比例常数实现乘法哈希哈希常数定义如下: 1#define PAR_ID_HASH_GOLDEN_RATIO_32 (0x61C88647u) 该常数来源于黄金比例相关公式: 1A = (√5 − 1) / 2 乘法哈希公式: 1h(k) = floor(m * frac(k * A)) 其中: 符号 含义 k key A 常数 m 哈希表大小 在 32 位整数实现中,公式通常转化为: 12hash = key * constantindex = hash >> shift 或: 1index = hash & mask...
将隐藏在副屏的 Windows 11 程序窗口恢复到主屏
将隐藏在副屏的 Windows 11 程序窗口恢复到主屏当 Windows 11 曾连接过副屏时,系统会记录窗口位置。断开副屏后,部分程序可能仍然在“不可见区域”打开。可通过系统自带的“移动”功能将窗口拉回主屏。 使用“移动”功能恢复窗口位置(通用方法)适用于所有常规桌面程序,无需修改显示设置。 1. 切换到目标程序按: 1Alt + Tab 切换到无法看到的那个程序窗口,确保其处于当前活动状态。 2. 打开窗口控制菜单按: 1Alt + 空格 此操作会打开当前窗口的系统菜单。 3. 进入“移动”模式按: 1M 此时系统进入窗口移动状态。 4. 激活移动按一次方向键(例如): 1← 或 → 这一步非常关键,用于激活键盘移动模式。 5. 使用鼠标拖回窗口移动鼠标。 隐藏的窗口会跟随鼠标移动并重新出现在主屏幕上。 在合适位置单击鼠标左键确认。 原理说明Windows 会记录程序上一次关闭时的屏幕坐标。断开副显示器后,这些坐标仍然存在,但对应的显示区域已不可见。通过“移动”功能,可以强制改变窗口坐标,使其回到当前可见屏幕范围。 适用场景 曾使用双屏或扩展屏 笔记本...
显卡DXGI_ERROR_DEVICE_HUNG 的处理指南
[TOC] 显卡DXGI_ERROR_DEVICE_HUNG 的处理指南 背景与成因DXGI_ERROR_DEVICE_HUNG(0x887A0006) 表示图形设备在执行过程中进入“挂起/无响应”状态,常见表现为游戏卡死后闪退。该错误属于 DXGI 错误码的一种。 (Microsoft Learn) 当显存(VRAM)被高分辨率贴图、光线追踪缓存、长时间游玩累积的资源占用推到上限时,显卡需要频繁回收/搬运资源;若某些渲染任务因此耗时过长,可能触发 Windows 的 TDR(超时检测与恢复) 机制,系统会重置图形栈来避免整机无响应,最终表现为游戏崩溃或驱动重置。 (Microsoft Learn) 快速判断是否为“爆显存”触发用任务管理器确认“专用 GPU 内存”是否贴顶 打开 任务管理器 → 性能 → 选择 GPU。 观察 Dedicated GPU memory usage(专用 GPU 内存) 是否长期接近上限,尤其是在崩溃前持续攀升。Windows 的 GPU 内存统计与分解方式在 DirectX 团队说明中有详细解释。 (Microsoft f...
EWMA、加权平均与一次低通滤波的对比与选型
@[toc] EWMA、加权平均与一次低通滤波的对比与选型三者解决的共同问题三者都用于把“抖动/噪声较大”的观测序列变成更稳定的信号,从而更适合做展示、阈值判断、控制调节等。其共同代价是:越平滑,越容易产生滞后(变化被延迟反映)。(维基百科) 用“权重形状”理解原理与异同点加权平均对一组样本按权重求和(一次性计算),不要求时间连续,也不内置“上一时刻状态”的概念:$$[y=\frac{\sum_{i=0}^{N-1} w_i x_i}{\sum_{i=0}^{N-1} w_i}]$$ 权重 (w_i) 可任意设计(线性、分段、业务权重等) 需要拿到整组样本(或至少拿到一个窗口内的样本) 移动平均/加权移动平均(FIR 思路)在固定窗口内做平均或加权平均,窗口之外权重为 0,因此是典型 FIR(有限冲激响应):冲激响应在有限长度后严格为 0。(维基百科)“移动平均滤波”是最典型的 FIR 例子之一,用于降低随机噪声。(analog.com) FIR 的通用差分方程长度为 (M) 的因果 FIR 滤波器可用“有限卷积”表示...
EWMA 指数加权移动平均
@[toc] EWMA 指数加权移动平均 EWMA 是什么EWMA(Exponential Weighted Moving Average,指数加权移动平均)是一种递推式平滑方法:用一个“带记忆”的平滑值表示最近一段时间的趋势,同时让更久远的数据以指数形式衰减,从而降低短期抖动对决策的影响。 典型形式为:$$[S_t = \alpha \cdot x_t + (1-\alpha)\cdot S_{t-1}]$$ $(x_t)$:当前观测样本 $(S_t)$:平滑后的状态值 $(\alpha\in(0,1])$:平滑系数(越大越“敏感”,越小越“稳”) 将递推展开后,历史样本的权重会按 $((1-\alpha)^k)$ 逐步衰减,因此称为“指数加权”。 EWMA 的核心原理只保存一个状态值,持续吸收新样本EWMA 不需要保存历史窗口,只需要维护一个状态 (S)。每到一个新样本,就把旧状态衰减一部分,再注入一部分新样本权重: 旧状态贡献:$((1-\alpha)\cdot S_{t-1})$ 新样本贡献:$(\alpha\cdot x_t)$ 这使得计算成本为...
修复 VS Code Remote-SSH 连接超时:启用 PTY 分配
@[toc] 修复 VS Code Remote-SSH 连接超时:启用 PTY 分配 适用场景出现 Remote-SSH 连接阶段超时(例如 Connecting with SSH timed out),同时满足以下特征: ICMP 连通(ping 正常) TCP/22 连通(Test-NetConnection <REMOTE_HOST> -Port 22 为 True) 命令行 ssh -vvv <USERNAME>@<REMOTE_HOST> 可成功认证并进入 Shell VS Code Remote-SSH 日志中存在 remote.SSH.permitPtyAllocation = false(或等价配置) 根因Remote-SSH 建连不只是建立 TCP 会话,还会在远端通过 ssh ... sh 执行初始化脚本(探测、安装、启动 VS Code Server)。 当 PTY(伪终端)分配被禁用 时,常见后果包括: 远端脚本输出被缓冲或输出形态变化,客户端等待不到期望标记 远端登录脚本或环境初始化逻辑在非交...








