深入解析SoC时钟系统:从DPLL原理到Jacinto 6 Plus时钟树实战
1. 项目概述为什么SoC时钟系统如此复杂且关键在嵌入式系统尤其是高性能的汽车信息娱乐InfotainmentSoC设计中时钟系统远不止是提供一个“滴答”信号那么简单。你可以把它想象成一个现代化大都市的交通指挥中心。CPU核心、GPU、各种总线如AXI、外设如USB、以太网、显示屏就像是城市里不同功能区的车辆它们有的需要高速奔驰如CPU有的需要稳定巡航如音频接口有的则只在特定时间工作以节省能源如待机时的传感器。时钟系统就是这个指挥中心它不仅要确保每条道路时钟域上的车辆以正确、同步的速度行驶还要能动态地关闭某些空闲道路的照明时钟门控甚至临时调整某些路段的限速动态频率调节以实现性能与功耗的最佳平衡。德州仪器TI的Jacinto 6 Plus系列如DRA75xP正是这类复杂系统的典型代表。它集成了多核Cortex-A15/A7、多个DSP、强大的GPU以及众多高速接口。驱动这一切的“心脏”就是其**电源、复位和时钟管理PRCM**模块。用户提供的资料片段恰好揭示了PRCM模块中时钟生成与分配的核心部分。本文将以此为基础深入解析PRCM如何将几个简单的外部晶振时钟魔术般地变出SoC内部所需的数十种不同频率、不同用途的时钟并重点剖析其核心引擎——**数字锁相环DPLL**的工作原理。对于从事底层驱动开发、系统架构设计或是对芯片内部工作机制有浓厚兴趣的工程师而言理解这套时钟树是进行性能调优、功耗管理和解决棘手时序问题的基石。2. 时钟系统顶层架构与核心概念解析在深入代码和寄存器之前我们必须先建立几个核心概念这能帮助我们在后续面对复杂的信号框图时不至于迷失方向。2.1 时钟树的三大层级Jacinto 6 Plus的时钟系统可以清晰地划分为三个层级如同河流从源头到支流的分布时钟源Clock Sources这是整个系统的“水源”。主要包括外部时钟通过芯片引脚输入的时钟如SYS_CLK1、SYS_CLK2通常接19.2MHz、20MHz或27MHz晶振以及xref_clk0~xref_clk3等外部参考时钟。内部振荡器如片内32KHz RC振荡器OSC_32K_CLK主要用于低功耗待机场景。需要注意的是资料中特别强调此RC振荡器频率会随温度和硅片特性变化不精确因此不能用于需要精确定时的场合。DPLL输出由内部DPLL生成的、已经倍频后的高频时钟如CORE_CLK532MHz、FUNC_192M_CLK等它们会成为下一级的“水源”。时钟生成与分发Clock Generation Distribution这是PRCM模块的核心工作。它接收上述时钟源通过多路复用器Mux、分频器Divider和DPLL生成各种中间时钟并分配到不同的电源域Power Domain和模块Module。资料中重点描述的PRM、CM_CORE_AON、CM_CORE就是这层的核心管理器。模块功能时钟Functional Clocks最终送达各个硬件模块如CPU、GPU、USB、MMC、UART的时钟信号。例如IPU1_GFCLK是图像处理单元1的时钟MMC1_FCLK是SD/MMC控制器1的时钟。工程师在驱动中配置的往往是这一层。2.2 关键模块角色定义PRMPower, Reset, and Clock Manager你可以把它看作是“总闸”和“初级处理中心”。它直接管理来自外部引脚的最原始时钟SYS_CLK1/2并生成整个芯片所需的基础、低频时钟如32KHz时钟。更重要的是它为所有后续的DPLL提供参考时钟输入。它位于PD_WKUPAON唤醒与常开电源域确保即使在核心域掉电时基础时钟和唤醒逻辑依然工作。CMClock Manager这是“区域配电中心”。PRCM模块中有两个CMCM_CORE_AON位于常开电源域PD_COREAON和CM_CORE位于可关断电源域PD_CORE。CM_CORE_AON负责为大多数DPLL和关键电源域生成时钟CM_CORE则管理更多由PD_CORE域供电的模块时钟。这种划分是为了精细化的低功耗管理。DPLLDigital Phase-Locked Loop这是“频率合成引擎”。它的核心作用是将一个低频的、稳定的参考时钟如19.2MHz通过倍频、分频等数字控制方式合成一个高频、同样稳定的时钟。例如DPLL_CORE可以将参考时钟倍频生成532MHz的CORE_CLK供处理器核心和高速总线使用。2.3 时钟命名与信号类型解读阅读资料中的图表时理解信号后缀至关重要_CLK通常表示一个时钟信号。_GFCLKGated Functional Clock。这是经过“门控”的功能时钟。门控是低功耗的关键技术当模块不工作时可以通过寄存器关闭其时钟输入动态消除该模块的动态功耗。_DCLKDivided Clock。表示该时钟是某个源时钟经过分频后的版本常用于CLKOUTMUX输出到芯片引脚供外部测量或使用。_HS_CLKHigh-Speed Clock通常指从DPLL的HSDIVIDER高速分频器输出的时钟。_ICLK/_GICLKInterface Clock/Gated Interface Clock用于模块间互连总线的时钟。3. 核心时钟通路与DPLL工作原理深度剖析理解了顶层概念后我们进入核心部分时钟是如何一步步生成的DPLL在其中扮演什么角色3.1 从晶振到系统时钟PRM的启动作用系统上电后最先工作的就是PRM。它直接连接外部晶振。输入SYS_CLK1和SYS_CLK2从芯片引脚输入频率典型值为19.2MHz、20MHz或27MHz。基础分频PRM内部有一个固定的/610分频器可以将SYS_CLK1分频得到一个近似的32.768KHz时钟即FUNC_32K_CLK。这个时钟为系统提供基础的慢速时基。参考时钟分发PRM将SYS_CLK1/2直接或分频后作为参考时钟REFCLK分发给后续的各个DPLL。例如CORE_DPLL_CLK、PER_DPLL_CLK等信号就是PRM提供给对应DPLL的参考时钟输入。这一步至关重要它决定了所有DPLL的“基准频率”。直接分配PRM还将一些时钟直接或简单分频后供给始终需要工作的模块如看门狗定时器、部分始终上电的缓冲器等。实操心得在硬件设计时为SYS_CLK1/2选择高精度、低抖动的晶振或时钟发生器是保证整个系统时钟精度的第一步。参考时钟上的任何抖动或偏差都会被DPLL放大影响整个系统的稳定性。3.2 频率合成的核心DPLL工作机制详解DPLL是SoC时钟系统的“发动机”。资料中提到了Type A和Type B DPLL我们以最典型的Type A DPLL如DPLL_CORE为例拆解其工作原理。一个简化的DPLL包含以下关键部件相位频率检测器PFD比较参考时钟REFCLK和反馈时钟FBCLK的相位与频率差产生误差信号。电荷泵CP与环路滤波器LF将PFD的误差信号转换为控制电压。环路滤波器决定了DPLL的带宽和稳定性。压控振荡器VCO根据控制电压产生高频振荡信号。这是DPLL的输出源头频率通常在GHz范围。反馈分频器M分频器将VCO输出分频后送回PFD与REFCLK比较。通过锁定过程最终使FBCLK REFCLK。输出分频器N分频器将VCO输出进行不同比例的分频产生多个不同频率的输出时钟HSDIVx。频率计算公式 假设参考时钟频率为Fref反馈分频比为MVCO输出频率为Fvco输出分频比为N则Fvco Fref * MFout Fvco / N Fref * M / N例如DPLL_CORE的参考时钟Fref可能是24MHz由SYS_CLK1分频而来。如果我们设置M 266N 12那么Fvco 24MHz * 266 6384MHzFout (CORE_CLK) 6384MHz / 12 532MHz这正是资料中CORE_CLK频率的由来。DPLL_PER则可以通过配置不同的M和N值同时产生FUNC_96M_AON_CLK、FUNC_192M_CLK、FUNC_128M_CLK等多个输出。注意事项DPLL有一个锁定时间。在软件中启动或改变DPLL配置后必须轮询相应的状态寄存器等待LOCK标志置位才能使用其输出时钟。否则系统可能会运行在极不稳定的频率上导致不可预知的行为。3.3 时钟的精细加工CM_CORE_AON的枢纽角色CM_CORE_AON接收来自PRM的系统时钟和来自各个DPLL的高速时钟进行二次分配和加工。它是连接“发动机”DPLL和“车轮”各个功能模块的“变速箱和传动轴”。时钟复用Muxing很多模块的时钟源可以有多个选择。例如资料中CM_CORE_AON框图显示GPU_CORE_GCLK可以选择CORE_GPU_CLK或PER_GPU_CLK。这为动态切换时钟源、实现功耗或性能优化提供了可能。配置寄存器如CM_GPU_GPU_CLKCTRL[25:24] CLKSEL_CORE_CLK就控制了这个选择器。时钟分频DividingDPLL输出的频率可能不是模块直接需要的。CM_CORE_AON内部集成了灵活的分频器。例如ABE_CLK音频后端时钟可以由DPLL_ABE_X2_CLK经过一个可编程分频器/1, /2, /4, /8, /16产生由CM_CLKSEL_ABE_CLK_DIV[2:0]寄存器控制。这允许音频子系统在满足性能的前提下尽可能降低时钟频率以节省功耗。时钟门控Gating这是低功耗设计的灵魂。每个功能时钟GFCLK都有一个对应的门控位通常在CLKCTRL寄存器的MODULEMODE字段。当模块空闲时软件可以将该位置为禁用模式CM_CORE_AON会切断该模块的时钟树使其动态功耗降至近乎为零。例如关闭不使用的UART或MMC控制器。时钟观测输出CLKOUTMUX为了方便调试和测试SoC提供了几个引脚如clkout1,clkout2,clkout3可以将内部时钟输出到外部。CM_CORE_AON_CLKOUTMUX模块就管理这个功能。资料中的图3-42和3-43清晰地展示了如何从二十多个内部时钟源中选择一个并可选地进行分频DCLK路径最终输出到芯片引脚。这里有一个关键陷阱要使CLKOUTMUX0_CLK输出到clkout3引脚不仅需要配置CM_CLKSEL_CLKOUTMUX0[4:0]选择时钟源还必须使能TIMER5/6/7/8中的至少一个并将其时钟源选择为CLKOUTMUX0_CLK即CLKSEL字段配置为0xB。这是一个容易忽略的硬件互锁条件。4. 典型外设时钟配置实战以MMC和UART为例理论需要联系实际。我们以常见的MMC1SD卡接口和UART1为例看看如何从时钟树找到它们的时钟源并理解驱动中的配置代码。4.1 MMC1时钟配置解析根据资料图3-41和表3-39MMC1_FCLK的生成路径如下时钟源选择首先一个多路复用器Mux从几个候选源中选择一个。由CM_L3INIT_MMC1_CLKCTRL[24] CLKSEL_SOURCE控制。假设候选源包括FUNC_96M_FCLK、FUNC_192M_CLK等。时钟分频选中的时钟进入一个可编程分频器Divider分频系数由CM_L3INIT_MMC1_CLKCTRL[26:25] CLKSEL_DIV控制可以是/1/2/4。时钟门控最终MMC1_FCLK是否真正输出给MMC1模块由CM_L3INIT_MMC1_CLKCTRL的MODULEMODE位域控制。软件配置示例伪代码思路// 假设我们要为MMC1配置 50MHz 时钟源时钟选择 200MHz 的 FUNC_192M_CLK // 1. 确保源时钟FUNC_192M_CLK和其上游DPLL已使能并锁定。 // 2. 配置MMC1时钟源和分频 uint32_t clkctrl_reg read_reg(CM_L3INIT_MMC1_CLKCTRL); // 设置分频200MHz / 4 50MHz。假设CLKSEL_DIV 0x2 代表 /4 clkctrl_reg ~(0x3 25); // 清除DIV位域 clkctrl_reg | (0x2 25); // 设置DIV为 /4 // 设置时钟源。假设CLKSEL_SOURCE 0x1 代表 FUNC_192M_CLK clkctrl_reg ~(0x1 24); // 清除SOURCE位 clkctrl_reg | (0x1 24); // 设置SOURCE write_reg(CM_L3INIT_MMC1_CLKCTRL, clkctrl_reg); // 3. 使能模块时钟解除门控 clkctrl_reg | (0x2 0); // 设置MODULEMODE为使能模式假设0x2为Enable write_reg(CM_L3INIT_MMC1_CLKCTRL, clkctrl_reg);4.2 UART1时钟配置解析根据表3-39UART1_GFCLK的时钟源由一个Mux选择由CM_L4PER_UART1_CLKCTRL[24] CLKSEL控制。UART通常需要一个48MHz或更高频率的时钟再通过内部的分频器产生特定的波特率。因此UART1_GFCLK的源可能来自FUNC_48M_FCLK或FUNC_96M_FCLK等。配置要点UART对时钟精度有一定要求特别是用于高速通信时。应选择频率稳定、抖动小的时钟源。FUNC_48M_FCLK通常由DPLL_PER产生是一个常用的、稳定的低频时钟源。5. 低功耗场景下的时钟管理策略Jacinto 6 Plus的时钟架构深度参与了电源状态管理。理解这一点对实现高效的功耗控制至关重要。电源域与时钟域芯片被划分为多个电源域如PD_CORE,PD_MPU,PD_DSP。CM_CORE_AON位于常开域PD_COREAON而CM_CORE位于可关断域PD_CORE。当系统进入深度睡眠时PD_CORE域可以被断电以节省静态功耗。此时由CM_CORE管理的所有时钟自然停止。但CM_CORE_AON管理的时钟如唤醒定时器、始终上电的RAM的刷新时钟必须保持运行。时钟门控的级联效应关闭一个顶层模块的时钟会自动关闭其子模块和接口的时钟。但反过来不一定成立。软件需要按照正确的顺序操作先使能父时钟再使能子模块时钟先关闭子模块时钟再关闭父时钟。DPLL的关断与旁路在深度低功耗状态可以关闭某些DPLL以节省功耗。但有些DPLL为多个模块服务需要仔细评估。DPLL通常支持旁路模式Bypass在关闭或重锁定时可以暂时输出其参考时钟避免系统完全失钟。唤醒源与时钟系统的唤醒往往依赖于在常开域中运行的模块如RTC实时时钟或外部中断。这些模块的时钟如FUNC_32K_CLK或OSC_32K_CLK必须始终保持。资料中PRM管理的WKUPAON相关时钟就是为此设计。6. 常见问题排查与调试技巧实录在实际开发和调试中时钟问题常常表现为系统启动失败、外设工作异常、性能不达标或功耗过高。以下是一些基于经验的排查思路6.1 系统无法启动或卡在早期初始化检查点1基础时钟源。确认外部晶振是否起振SYS_CLK1/2引脚是否有正确的时钟波形。这是所有时钟的根源。检查点2关键DPLL锁定。特别是DPLL_CORE和DPLL_PER。在初始化代码中在配置完DPLL参数M、N值等后必须检查并等待其LOCK状态位变为1。超时未锁定通常意味着参考时钟丢失、配置参数超出范围或硬件故障。检查点3启动时钟配置。芯片ROM代码或Bootloader会配置最初的时钟树。确保你的应用代码或后续引导程序没有错误地修改了关键DPLL或时钟路径的配置导致时钟丢失。6.2 特定外设如USB、Ethernet工作不稳定检查点1外设专属DPLL。像DPLL_USB和DPLL_GMAC这类为高速接口服务的DPLL对时钟的抖动Jitter有严格要求。检查其参考时钟是否干净环路滤波器参数配置是否合适。过大的抖动会导致数据误码率上升。检查点2时钟源与分频比。确认给该外设的时钟频率是否在其数据手册规定的范围内。例如USB OTG SS控制器可能需要精确的60MHz时钟。计算Fout Fref * M / N确保结果准确。检查点3时钟门控状态。使用调试器读取该外设CLKCTRL寄存器的MODULEMODE和IDLEST字段。MODULEMODE应被使能IDLEST应显示为FUNC功能态而非DISABLED或IDLE。6.3 功耗高于预期检查点1闲置模块时钟未关闭。使用脚本或调试工具遍历所有CLKCTRL寄存器查看哪些模块的MODULEMODE处于使能状态但实际并未使用。常见的“功耗泄漏点”包括未使用的显示控制器、摄像头接口、额外的DSP核心等。检查点2DPLL未按需降频或关闭。在系统负载较低时可以考虑降低DPLL_MPUCPU的输出频率通过调整M/N值甚至关闭为暂时不用的子系统服务的DPLL如DPLL_GPU在不需要图形渲染时。检查点3时钟观测输出。确认CLKOUTMUX功能是否被意外使能。将高频时钟输出到引脚会产生不必要的功耗。6.4 调试工具与方法寄存器查看最直接的方法。通过JTAG或内核调试器直接读取PRCM模块的所有相关寄存器与预期的配置值对比。内部时钟观测利用CLKOUTMUX功能将怀疑有问题的内部时钟路由到clkout1/2/3引脚用示波器或逻辑分析仪测量其频率、占空比和抖动。软件追踪在时钟初始化代码的关键节点添加日志打印DPLL锁定状态、配置的频率值等。参考设计始终参考TI官方提供的SDK如Processor SDK中的时钟初始化代码通常位于board.c或clock.c文件中。这些代码经过了验证是理解正确配置顺序和参数的最佳起点。理解Jacinto 6 Plus这样复杂SoC的时钟系统就像掌握了一张精密的电路地图。它不仅是让芯片“跑起来”的前提更是进行性能优化、功耗精细管理和系统稳定性保障的底层钥匙。从PRM接收原始时钟到多个DPLL进行频率合成再到CM进行复杂的复用、分频和门控分配每一步都充满了设计上的权衡与智慧。希望这篇基于技术手册的深度解析能帮助你在下一次面对时钟相关的问题时不再感到迷茫而是能够有条不紊地沿着时钟树顺藤摸瓜找到问题的根源。

相关新闻

【Appium】App自动化工具选型避坑指南----汇总篇

【Appium】App自动化工具选型避坑指南----汇总篇

App 自动化到底怎么选?我踩了三年的坑全在这了我跟你讲,App 自动化的复杂度比 Web 高一个量级。环境搭建能劝退一半人,用例稳定性能劝退剩下的一半。但选对工具和策略,这条路能走通。一、App 自动化的尴尬现实 先说一个真事。 我第…

2026/10/14 21:18:02 阅读更多 →
零基础掌握PLC编程:学习路径与实战技巧

零基础掌握PLC编程:学习路径与实战技巧

1. 零基础学习PLC编程的可行性分析 PLC(可编程逻辑控制器)作为工业自动化领域的核心控制设备,其编程技术确实可以从零开始掌握。我接触过不少完全没有任何电气基础的学员,通过系统学习后都能独立完成简单的PLC项目开发。关键在于选…

2026/10/11 19:22:23 阅读更多 →
[GESP202606 八级] 线网建设

[GESP202606 八级] 线网建设

P17016 [GESP202606 八级] 线网建设 https://www.luogu.com.cn/problem/P17016 6月GESP考级1-8级真题讲解 https://www.bilibili.com/video/BV1tauvzDEAY/ 信息学编程GESP认证 1-8级C考点精析,对标NOI最新考纲 https://www.bilibili.com/video/BV1GDKJzkE8C/ 【GESP…

2026/10/15 3:07:04 阅读更多 →

最新新闻

artcraft 项目实战:从创意到成品的流程编排与参数体系设计

artcraft 项目实战:从创意到成品的流程编排与参数体系设计

1. 从“artcraft”这个名字说起:它到底想解决什么问题第一次看到“artcraft”这个项目标题,我的直觉是:这大概率是一个把“艺术创作”和“手工实现”捏合在一起的工具型项目。拆开来看,“art”指向视觉表达、创意生成、审美输出&a…

2026/10/15 8:26:36 阅读更多 →
Spring Boot开发实战:从入门到高效微服务构建

Spring Boot开发实战:从入门到高效微服务构建

1. 为什么选择Spring Boot第一次接触Spring Boot是在2016年参与一个企业级微服务项目时。当时团队还在使用传统的Spring MVC框架,光是搭建一个基础项目就需要配置几十个XML文件,每次启动项目都要花费近10分钟。直到技术负责人引入了Spring Boot&#xff…

2026/10/15 8:26:36 阅读更多 →
diagram-design:从画图到设计系统,图表规范与协作实践指南

diagram-design:从画图到设计系统,图表规范与协作实践指南

1. 从一张草图到一套系统:diagram-design 到底在解决什么问题第一次听到“diagram-design”这个词,很多人会下意识觉得它只是“画图”的另一种说法。但真正在项目里被图表折磨过的人知道,画图只是冰山一角,水面下藏着的是一整套关…

2026/10/15 8:26:36 阅读更多 →
前端浏览器类型与IE版本判断:从UA解析到特性检测的完整方案

前端浏览器类型与IE版本判断:从UA解析到特性检测的完整方案

1. 浏览器判断这件事,远比想象中要复杂浏览器类型判断,尤其是区分IE浏览器,看起来像是个老掉牙的话题。很多前端同行的第一反应是:这年头谁还管IE?但实际情况是,只要你还在一线做企业级项目、后台管理系统、…

2026/10/15 8:26:36 阅读更多 →
C语言实现九九乘法表:循环与格式化输出详解

C语言实现九九乘法表:循环与格式化输出详解

1. 项目概述:C语言实现九九乘法表九九乘法表是编程初学者最经典的练手项目之一。这个看似简单的需求,实际上涵盖了循环控制、格式化输出、算法逻辑等多个基础编程概念。用C语言实现乘法表,不仅能巩固基础语法,更能培养对程序结构的…

2026/10/15 8:26:36 阅读更多 →
从画图到设计:用文本化DSL把架构图变成可维护的工程资产

从画图到设计:用文本化DSL把架构图变成可维护的工程资产

平时我见得最多的“图”,不是最终文档里那张漂亮的架构图,而是评审会上被临时画在白板上的方框加箭头。主讲人一边画一边改,台下的人一边看一边猜。等会议结束,没人记得箭头谁指向谁,只记得“好像讲了一个方案”。后来…

2026/10/15 8:25:33 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 7:53:34 阅读更多 →