<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <author>
    <name>mumutingyun</name>
  </author>
  <generator uri="https://hexo.io/">Hexo</generator>
  <id>https://mumutingyun.site/</id>
  <link href="https://mumutingyun.site/" rel="alternate"/>
  <link href="https://mumutingyun.site/atom.xml" rel="self"/>
  <rights>All rights reserved 2026, mumutingyun</rights>
  <subtitle>秘密测试中</subtitle>
  <title>陈牧图的个人站点</title>
  <updated>2026-07-21T12:56:41.453Z</updated>
  <entry>
    <author>
      <name>mumutingyun</name>
    </author>
    <content>
      <![CDATA[<p>Welcome to <a href="https://hexo.io/">Hexo</a>! This is your very first post. Check <a href="https://hexo.io/docs/">documentation</a> for more info. If you get any problems when using Hexo, you can find the answer in <a href="https://hexo.io/docs/troubleshooting.html">troubleshooting</a> or you can ask me on <a href="https://github.com/hexojs/hexo/issues">GitHub</a>.</p><h2 id="Quick-Start"><a href="#Quick-Start" class="headerlink" title="Quick Start"></a>Quick Start</h2><h3 id="Create-a-new-post"><a href="#Create-a-new-post" class="headerlink" title="Create a new post"></a>Create a new post</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ hexo new <span class="string">&quot;My New Post&quot;</span></span><br></pre></td></tr></table></figure><p>More info: <a href="https://hexo.io/docs/writing.html">Writing</a></p><h3 id="Run-server"><a href="#Run-server" class="headerlink" title="Run server"></a>Run server</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ hexo server</span><br></pre></td></tr></table></figure><p>More info: <a href="https://hexo.io/docs/server.html">Server</a></p><h3 id="Generate-static-files"><a href="#Generate-static-files" class="headerlink" title="Generate static files"></a>Generate static files</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ hexo generate</span><br></pre></td></tr></table></figure><p>More info: <a href="https://hexo.io/docs/generating.html">Generating</a></p><h3 id="Deploy-to-remote-sites"><a href="#Deploy-to-remote-sites" class="headerlink" title="Deploy to remote sites"></a>Deploy to remote sites</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ hexo deploy</span><br></pre></td></tr></table></figure><p>More info: <a href="https://hexo.io/docs/one-command-deployment.html">Deployment</a></p>]]>
    </content>
    <id>https://mumutingyun.site/2026/07/21/hello-world/</id>
    <link href="https://mumutingyun.site/2026/07/21/hello-world/"/>
    <published>2026-07-21T12:56:41.453Z</published>
    <summary>
      <![CDATA[<p>Welcome to <a href="https://hexo.io/">Hexo</a>! This is your very first post. Check <a href="https://hexo.io/docs/">documentation</a> for]]>
    </summary>
    <title>Hello World</title>
    <updated>2026-07-21T12:56:41.453Z</updated>
  </entry>
  <entry>
    <author>
      <name>mumutingyun</name>
    </author>
    <category term="示波器" scheme="https://mumutingyun.site/tags/%E7%A4%BA%E6%B3%A2%E5%99%A8/"/>
    <content>
      <![CDATA[<h2 id="一、采集板整体架构概述"><a href="#一、采集板整体架构概述" class="headerlink" title="一、采集板整体架构概述"></a>一、采集板整体架构概述</h2><p>示波器采集板的核心任务是：将模拟信号数字化，然后通过不同的数据路径（触发路径与存储&#x2F;显示路径），最终将波形数据传输到处理板进行显示和分析。</p><p>整体数据流如下：</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">ADC采集 → 数字增益 → 低通滤波 → ┬─ 路径1（触发路径）：4倍抽 → 触发比较器 ─┐</span><br><span class="line">                                  │                                        │</span><br><span class="line">                                  └─ 路径2（主数据路径）：前置抽取 → ... → ─┤</span><br><span class="line">                                                                           │</span><br><span class="line">                                                        多路选择器 → GT → 处理板</span><br></pre></td></tr></table></figure><hr><h2 id="二、架构框图（Mermaid-流程图）"><a href="#二、架构框图（Mermaid-流程图）" class="headerlink" title="二、架构框图（Mermaid 流程图）"></a>二、架构框图（Mermaid 流程图）</h2><pre class="mermaid">flowchart TB    subgraph 模拟前端        ADC["🔵 ADC采集<br/>模数转换器"]    end    subgraph 数字预处理        DG["🟢 数字增益<br/>Digital Gain"]        LPF["🟢 低通滤波<br/>Low Pass Filter"]    end    subgraph 路径1: 触发通道        DEC4["🟡 4倍抽<br/>4× Decimation"]        TRIG["🟡 触发比较器<br/>Trigger Comparator"]    end    subgraph 路径2: 主数据通道        PRE["🟠 前置抽取模块<br/>Pre-Decimation"]        SCAN["🔴 Scan<br/>扫描模式"]        RAM["🔴 RAM<br/>缓存存储"]        DDR["🔴 DDR<br/>大容量存储"]        DEMUX["🟣 多路分配器<br/>Demux/Distributor"]        P2S["🟣 并转串模块<br/>Serializer"]        DSP_BLOCK["🟣 DSP<br/>数字信号处理"]        DBI_BLOCK["🟣 DBI<br/>显示总线接口"]    end    subgraph 输出        MUX["🔶 多路选择器<br/>MUX"]        GT_BLOCK["🔶 GT 高速收发器<br/>Gigabit Transceiver"]        BOARD["📊 处理板<br/>Processing Board"]    end    ADC --> DG --> LPF    LPF --> DEC4 --> TRIG --> MUX    LPF --> PRE --> SCAN & RAM & DDR    SCAN & RAM & DDR --> DEMUX --> P2S --> DSP_BLOCK --> DBI_BLOCK --> MUX    MUX --> GT_BLOCK --> BOARD    style ADC fill:#4A90D9,stroke:#2E5A88,color:#fff    style DG fill:#5CB85C,stroke:#3D7A3D,color:#fff    style LPF fill:#5CB85C,stroke:#3D7A3D,color:#fff    style DEC4 fill:#F0AD4E,stroke:#B87A30,color:#fff    style TRIG fill:#F0AD4E,stroke:#B87A30,color:#fff    style PRE fill:#E67E22,stroke:#A85A18,color:#fff    style SCAN fill:#D9534F,stroke:#A33A37,color:#fff    style RAM fill:#D9534F,stroke:#A33A37,color:#fff    style DDR fill:#D9534F,stroke:#A33A37,color:#fff    style DEMUX fill:#8E44AD,stroke:#6A2E82,color:#fff    style P2S fill:#8E44AD,stroke:#6A2E82,color:#fff    style DSP_BLOCK fill:#8E44AD,stroke:#6A2E82,color:#fff    style DBI_BLOCK fill:#8E44AD,stroke:#6A2E82,color:#fff    style MUX fill:#E6B800,stroke:#B39200,color:#333    style GT_BLOCK fill:#E6B800,stroke:#B39200,color:#333    style BOARD fill:#2C3E50,stroke:#1A252F,color:#fff</pre><hr><h2 id="三、各模块功能详解"><a href="#三、各模块功能详解" class="headerlink" title="三、各模块功能详解"></a>三、各模块功能详解</h2><h3 id="1-ADC-采集（模数转换器）"><a href="#1-ADC-采集（模数转换器）" class="headerlink" title="1. ADC 采集（模数转换器）"></a>1. ADC 采集（模数转换器）</h3><table><thead><tr><th>属性</th><th>说明</th></tr></thead><tbody><tr><td><strong>作用</strong></td><td>将模拟输入信号转换为数字信号</td></tr><tr><td><strong>核心指标</strong></td><td>采样率（如 5GSa&#x2F;s）、分辨率（如 8&#x2F;10&#x2F;12 bit）、模拟带宽</td></tr><tr><td><strong>输入</strong></td><td>外部模拟信号（经过前端调理&#x2F;衰减）</td></tr><tr><td><strong>输出</strong></td><td>高速并行数字数据流</td></tr></tbody></table><p>ADC 是整个采集链路的起点。采样率决定示波器的实时带宽（根据奈奎斯特定理，采样率至少为信号最高频率的 2 倍，实际工程中通常需要 5~10 倍）。分辨率则直接影响垂直精度。</p><hr><h3 id="2-数字增益（Digital-Gain）"><a href="#2-数字增益（Digital-Gain）" class="headerlink" title="2. 数字增益（Digital Gain）"></a>2. 数字增益（Digital Gain）</h3><table><thead><tr><th>属性</th><th>说明</th></tr></thead><tbody><tr><td><strong>作用</strong></td><td>对 ADC 输出数据进行数字域幅度调整（放大或缩小）</td></tr><tr><td><strong>原理</strong></td><td>通过乘法器，将数字值乘以一个增益系数</td></tr><tr><td><strong>目的</strong></td><td>配合模拟前端的衰减&#x2F;放大，实现垂直灵敏度档位切换（V&#x2F;div），同时补偿 ADC 量化误差</td></tr></tbody></table><p>在示波器中，用户切换垂直档位（如从 1V&#x2F;div 切换到 100mV&#x2F;div）时，模拟前端会先做粗调，数字增益再做精细调整，确保波形在屏幕上显示合适的幅度。</p><hr><h3 id="3-低通滤波（Low-Pass-Filter）"><a href="#3-低通滤波（Low-Pass-Filter）" class="headerlink" title="3. 低通滤波（Low Pass Filter）"></a>3. 低通滤波（Low Pass Filter）</h3><table><thead><tr><th>属性</th><th>说明</th></tr></thead><tbody><tr><td><strong>作用</strong></td><td>滤除高频噪声和不需要的频率分量</td></tr><tr><td><strong>原理</strong></td><td>FIR&#x2F;IIR 数字滤波器，保留低频成分，衰减高频成分</td></tr><tr><td><strong>目的</strong></td><td>提升信噪比（SNR）、防止混叠、配合等效采样实现带宽限制</td></tr></tbody></table><p>这一步通常在数字域完成后，滤除了带外噪声，为后续的抽取（Decimation）和触发检测提供干净的数据。</p><hr><h3 id="🚩-分岔点对照表"><a href="#🚩-分岔点对照表" class="headerlink" title="🚩 分岔点对照表"></a>🚩 分岔点对照表</h3><table><thead><tr><th></th><th>路径 1（触发路径）</th><th>路径 2（主数据路径）</th></tr></thead><tbody><tr><td><strong>目的</strong></td><td>实时检测触发事件</td><td>存储、处理、显示波形数据</td></tr><tr><td><strong>延迟要求</strong></td><td>极低延迟</td><td>允许较高延迟</td></tr><tr><td><strong>数据量</strong></td><td>仅需判断触发条件</td><td>需要完整波形数据</td></tr><tr><td><strong>处理重点</strong></td><td>比较&#x2F;判决</td><td>存储、抽取、DSP 处理</td></tr></tbody></table><hr><h3 id="路径-1：触发通道"><a href="#路径-1：触发通道" class="headerlink" title="路径 1：触发通道"></a>路径 1：触发通道</h3><h4 id="4-4-倍抽（4×-Decimation）"><a href="#4-4-倍抽（4×-Decimation）" class="headerlink" title="4. 4 倍抽（4× Decimation）"></a>4. 4 倍抽（4× Decimation）</h4><table><thead><tr><th>属性</th><th>说明</th></tr></thead><tbody><tr><td><strong>作用</strong></td><td>每 4 个采样点取 1 个，将数据速率降低 4 倍</td></tr><tr><td><strong>目的</strong></td><td>减少触发通道的数据吞吐量，降低触发比较器的处理压力</td></tr><tr><td><strong>原理</strong></td><td>抽样（抽取因子 &#x3D; 4），等价于将采样率降低为原来的 1&#x2F;4</td></tr></tbody></table><p>触发检测不需要全分辨率数据。通过 4 倍抽取，数据率大幅下降，后续比较器可以在较低频率下可靠工作，同时功耗和资源占用也更低。</p><hr><h4 id="5-触发比较器（Trigger-Comparator）"><a href="#5-触发比较器（Trigger-Comparator）" class="headerlink" title="5. 触发比较器（Trigger Comparator）"></a>5. 触发比较器（Trigger Comparator）</h4><table><thead><tr><th>属性</th><th>说明</th></tr></thead><tbody><tr><td><strong>作用</strong></td><td>将抽取后的数据与用户设置的触发电平进行比较</td></tr><tr><td><strong>核心功能</strong></td><td>检测上升沿、下降沿、脉冲宽度、斜率等触发条件</td></tr><tr><td><strong>输出</strong></td><td>触发标志信号（Trigger Flag），指示触发事件发生的时间和位置</td></tr></tbody></table><p>这是示波器最核心的功能模块之一。比较器不停地监控信号是否越过设定的触发电平，一旦满足触发条件（边沿类型、电平值），就产生触发信号，用于锁定波形显示的时间基准。</p><hr><h3 id="路径-2：主数据通道"><a href="#路径-2：主数据通道" class="headerlink" title="路径 2：主数据通道"></a>路径 2：主数据通道</h3><h4 id="6-前置抽取模块（Pre-Decimation）"><a href="#6-前置抽取模块（Pre-Decimation）" class="headerlink" title="6. 前置抽取模块（Pre-Decimation）"></a>6. 前置抽取模块（Pre-Decimation）</h4><table><thead><tr><th>属性</th><th>说明</th></tr></thead><tbody><tr><td><strong>作用</strong></td><td>根据当前时基档位（Time&#x2F;div），对数据流进行适当比例的抽取</td></tr><tr><td><strong>原理</strong></td><td>大时基（慢扫描）时抽取更多，小时基（快扫描）时抽取更少或不做抽取</td></tr><tr><td><strong>目的</strong></td><td>使数据率匹配后级存储带宽和显示分辨率</td></tr></tbody></table><p>例如：采样率 5GSa&#x2F;s，屏幕水平 1000 点，时基 1μs&#x2F;div（10μs 全屏），需要 50,000 个点。如果不抽取，10μs 内会有 50,000 个点正好匹配；但如果时基是 1ms&#x2F;div（10ms 全屏），会有 50,000,000 个点，就需要大量抽取才能在屏幕上显示。</p><hr><h5 id="前置抽取下面的三条子路径："><a href="#前置抽取下面的三条子路径：" class="headerlink" title="前置抽取下面的三条子路径："></a>前置抽取下面的三条子路径：</h5><table><thead><tr><th>子路径</th><th>全称</th><th>作用</th><th>特点</th></tr></thead><tbody><tr><td><strong>Scan</strong></td><td>扫描模式</td><td>实现滚动显示（类似心电监护仪）</td><td>实时连续刷新，低延迟，用于慢速信号观察</td></tr><tr><td><strong>RAM</strong></td><td>随机存取存储器</td><td>将数据存入 FPGA 内部 Block RAM</td><td>快速缓存，容量较小（KB~MB 级），用于短时捕获</td></tr><tr><td><strong>DDR</strong></td><td>双倍数据率内存</td><td>将数据存入外部 DDR SDRAM</td><td>大容量（GB 级），用于深存储、分段存储、历史波形回放</td></tr></tbody></table><p>三者的分工：</p><ul><li><strong>Scan 模式</strong>：时基较慢时（如 &gt;100ms&#x2F;div），数据实时滚动显示，不需要大容量存储。</li><li><strong>RAM</strong>：正常模式下快速触发捕获，RAM 作为环形缓冲区，一旦触发事件发生，冻结 RAM 内容供读出。</li><li><strong>DDR</strong>：需要深存储（如 100Mpts）时，内部 RAM 装不下，需要外部 DDR 内存来存储超长波形记录。</li></ul><hr><h4 id="7-多路分配器（Demux-Distributor）"><a href="#7-多路分配器（Demux-Distributor）" class="headerlink" title="7. 多路分配器（Demux &#x2F; Distributor）"></a>7. 多路分配器（Demux &#x2F; Distributor）</h4><table><thead><tr><th>属性</th><th>说明</th></tr></thead><tbody><tr><td><strong>作用</strong></td><td>将 scan &#x2F; ram &#x2F; ddr 三条路径的数据汇总并选择当前需要输出的那一路</td></tr><tr><td><strong>控制信号</strong></td><td>根据当前工作模式（扫描&#x2F;正常&#x2F;深存储）决定选通哪条路径</td></tr></tbody></table><p>注意：这里叫”多路分配器”但实际上是起到了<strong>选择器</strong>的作用（从多路中选一路）。它是一个 3 选 1 的开关，决定最终哪条路径的数据进入后续处理。</p><hr><h4 id="8-并转串模块（Serializer-Parallel-to-Serial）"><a href="#8-并转串模块（Serializer-Parallel-to-Serial）" class="headerlink" title="8. 并转串模块（Serializer &#x2F; Parallel-to-Serial）"></a>8. 并转串模块（Serializer &#x2F; Parallel-to-Serial）</h4><table><thead><tr><th>属性</th><th>说明</th></tr></thead><tbody><tr><td><strong>作用</strong></td><td>将并行数据转换为串行数据</td></tr><tr><td><strong>原因</strong></td><td>FPGA 内部处理通常使用宽并行总线（如 128bit @ 156.25MHz），但高速传输需要串行</td></tr><tr><td><strong>目的</strong></td><td>降低引脚数、提高传输速率、适配 GT 串行收发器</td></tr></tbody></table><p>例如：内部 64bit 并行 @ 250MHz &#x3D; 16Gbps，转换成 1bit 串行 @ 16Gbps 通过 GT 发送。</p><hr><h4 id="9-DSP（数字信号处理）"><a href="#9-DSP（数字信号处理）" class="headerlink" title="9. DSP（数字信号处理）"></a>9. DSP（数字信号处理）</h4><table><thead><tr><th>属性</th><th>说明</th></tr></thead><tbody><tr><td><strong>作用</strong></td><td>对波形数据进行数学运算和处理</td></tr><tr><td><strong>典型功能</strong></td><td>数字滤波、FFT 频谱分析、数学运算（加减乘除）、插值（sinx&#x2F;x）、平均&#x2F;峰值检测</td></tr><tr><td><strong>实现方式</strong></td><td>FPGA 内的 DSP48&#x2F;DSP Slice 硬核单元</td></tr></tbody></table><p>常见 DSP 处理包括：</p><ul><li><strong>插值</strong>：当抽取后点数不足时，通过插值平滑波形</li><li><strong>峰值检测</strong>：确保抽取时不丢失窄脉冲信息</li><li><strong>平均</strong>：多次采集求平均，抑制随机噪声</li><li><strong>FFT</strong>：频域分析</li></ul><hr><h4 id="10-DBI（Display-Bus-Interface-显示总线接口）"><a href="#10-DBI（Display-Bus-Interface-显示总线接口）" class="headerlink" title="10. DBI（Display Bus Interface &#x2F; 显示总线接口）"></a>10. DBI（Display Bus Interface &#x2F; 显示总线接口）</h4><table><thead><tr><th>属性</th><th>说明</th></tr></thead><tbody><tr><td><strong>作用</strong></td><td>将处理后的数据打包成适合传输和显示的格式</td></tr><tr><td><strong>功能</strong></td><td>波形数据打包、添加帧头帧尾、可能包含坐标映射信息</td></tr><tr><td><strong>输出</strong></td><td>标准化的数据包&#x2F;帧，通过 GT 发送到处理板</td></tr></tbody></table><p>DBI 负责将 FPGA 内部处理好的裸数据封装成协议帧，处理板收到后可以直接解析并驱动屏幕显示。</p><hr><h3 id="输出与传输"><a href="#输出与传输" class="headerlink" title="输出与传输"></a>输出与传输</h3><h4 id="11-多路选择器（MUX）"><a href="#11-多路选择器（MUX）" class="headerlink" title="11. 多路选择器（MUX）"></a>11. 多路选择器（MUX）</h4><table><thead><tr><th>属性</th><th>说明</th></tr></thead><tbody><tr><td><strong>作用</strong></td><td>选择触发路径（路径 1）或主数据路径（路径 2）的输出送往 GT</td></tr><tr><td><strong>仲裁逻辑</strong></td><td>通常情况下主数据路径输出波形数据；触发路径在需要时传递触发信息或快速预览数据</td></tr><tr><td><strong>功能</strong></td><td>2 选 1 开关</td></tr></tbody></table><p>两条路径在此交汇：正常情况下主数据通道输出完整的波形数据包，触发路径只在特定场景（如触发位置标记、快速触发预览）下才会被选通。</p><hr><h4 id="12-GT（Gigabit-Transceiver-高速串行收发器）"><a href="#12-GT（Gigabit-Transceiver-高速串行收发器）" class="headerlink" title="12. GT（Gigabit Transceiver &#x2F; 高速串行收发器）"></a>12. GT（Gigabit Transceiver &#x2F; 高速串行收发器）</h4><table><thead><tr><th>属性</th><th>说明</th></tr></thead><tbody><tr><td><strong>作用</strong></td><td>高速串行数据发送（如 Xilinx GTP&#x2F;GTX&#x2F;GTH）</td></tr><tr><td><strong>速率</strong></td><td>通常数 Gbps ~ 数十 Gbps（如 10.3125Gbps、25Gbps）</td></tr><tr><td><strong>物理接口</strong></td><td>通过光纤或高速差分线（如 SMA&#x2F;SFP）连接到处理板</td></tr></tbody></table><p>GT 是数据从采集板到处理板的高速桥梁。由于示波器采集板的瞬时数据率极高（例如 5GSa&#x2F;s × 10bit &#x3D; 50Gbps），必须使用多通道 GT 才能将数据实时传输出去。</p><hr><h4 id="13-处理板（Processing-Board）"><a href="#13-处理板（Processing-Board）" class="headerlink" title="13. 处理板（Processing Board）"></a>13. 处理板（Processing Board）</h4><table><thead><tr><th>属性</th><th>说明</th></tr></thead><tbody><tr><td><strong>作用</strong></td><td>接收并解析 GT 传来的数据，完成最终显示和用户交互</td></tr><tr><td><strong>核心组件</strong></td><td>主控 CPU&#x2F;SoC、GPU、显示驱动</td></tr><tr><td><strong>功能</strong></td><td>波形渲染、测量统计、用户界面、远程控制等</td></tr></tbody></table><p>处理板通常是嵌入式 ARM&#x2F;x86 平台 + Linux，运行示波器应用软件，负责将收到的波形数据在屏幕上绘制出来，并响应用户的旋钮&#x2F;按键&#x2F;触摸操作。</p><hr><h2 id="四、数据流速览总结"><a href="#四、数据流速览总结" class="headerlink" title="四、数据流速览总结"></a>四、数据流速览总结</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br></pre></td><td class="code"><pre><span class="line">┌─────────────────────────────────────────────────────────┐</span><br><span class="line">│                    采集板 (Acquisition Board)             │</span><br><span class="line">│                                                         │</span><br><span class="line">│  模拟信号 ──► [ADC] ──► [数字增益] ──► [低通滤波]          │</span><br><span class="line">│                                          │              │</span><br><span class="line">│                    ┌─────────────────────┤              │</span><br><span class="line">│                    ▼                     ▼              │</span><br><span class="line">│              [4倍抽取]             [前置抽取]             │</span><br><span class="line">│                    │                /  |  \              │</span><br><span class="line">│                    ▼             scan ram ddr            │</span><br><span class="line">│              [触发比较器]            \  |  /              │</span><br><span class="line">│                    │              [多路分配器]            │</span><br><span class="line">│                    │                  │                  │</span><br><span class="line">│                    │            [并转串模块]              │</span><br><span class="line">│                    │                  │                  │</span><br><span class="line">│                    │              [DSP]                  │</span><br><span class="line">│                    │                  │                  │</span><br><span class="line">│                    │              [DBI]                  │</span><br><span class="line">│                    │                  │                  │</span><br><span class="line">│                    └──────┬───────────┘                  │</span><br><span class="line">│                           ▼                              │</span><br><span class="line">│                     [多路选择器]                          │</span><br><span class="line">│                           │                              │</span><br><span class="line">│                           ▼                              │</span><br><span class="line">│                     [GT 高速收发]                         │</span><br><span class="line">│                           │                              │</span><br><span class="line">└───────────────────────────┼──────────────────────────────┘</span><br><span class="line">                            │ 光纤 / 高速差分</span><br><span class="line">                            ▼</span><br><span class="line">┌─────────────────────────────────────────────────────────┐</span><br><span class="line">│                    处理板 (Processing Board)              │</span><br><span class="line">│                                                         │</span><br><span class="line">│              [GT 接收] ──► [波形渲染] ──► [屏幕显示]       │</span><br><span class="line">│                                                         │</span><br><span class="line">└─────────────────────────────────────────────────────────┘</span><br></pre></td></tr></table></figure><hr><h2 id="五、关键设计要点"><a href="#五、关键设计要点" class="headerlink" title="五、关键设计要点"></a>五、关键设计要点</h2><ol><li><strong>双路径架构的价值</strong>：触发路径和主数据路径分离，确保触发检测的低延迟与数据存储的高带宽互不干扰。</li><li><strong>多级抽取</strong>：不同的时基档位需要不同的抽取比，前置抽取 + 4 倍抽的级联设计实现了灵活的抽样策略。</li><li><strong>三种存储模式</strong>：Scan（实时滚动）、RAM（快速触发捕获）、DDR（深存储），覆盖了从实时浏览到深度分析的各类应用场景。</li><li><strong>GT 高速传输</strong>：采集板到处理板之间的带宽瓶颈通过 GT 解决，多 lane 绑定可达到 &gt;100Gbps 的总带宽。</li></ol>]]>
    </content>
    <id>https://mumutingyun.site/2026/07/21/%E7%A4%BA%E6%B3%A2%E5%99%A8%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B01/</id>
    <link href="https://mumutingyun.site/2026/07/21/%E7%A4%BA%E6%B3%A2%E5%99%A8%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B01/"/>
    <published>2026-07-21T12:35:35.000Z</published>
    <summary>
      <![CDATA[<h2 id="一、采集板整体架构概述"><a href="#一、采集板整体架构概述" class="headerlink" title="一、采集板整体架构概述"></a>一、采集板整体架构概述</h2><p>示波器采集板的核心任务是：将模拟信号数字化，然后通过不同的数据路径（]]>
    </summary>
    <title>示波器学习笔记1 —— 采集板架构详解</title>
    <updated>2026-07-21T12:56:41.453Z</updated>
  </entry>
  <entry>
    <author>
      <name>mumutingyun</name>
    </author>
    <category term="Hexo" scheme="https://mumutingyun.site/tags/Hexo/"/>
    <category term="博客" scheme="https://mumutingyun.site/tags/%E5%8D%9A%E5%AE%A2/"/>
    <category term="使用指南" scheme="https://mumutingyun.site/tags/%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/"/>
    <content>
      <![CDATA[<h2 id="一、前提：进入-WSL-环境"><a href="#一、前提：进入-WSL-环境" class="headerlink" title="一、前提：进入 WSL 环境"></a>一、前提：进入 WSL 环境</h2><p>所有操作都在 WSL Ubuntu 终端中进行。</p><h3 id="在-VS-Code-终端中进入-WSL（三种方式）"><a href="#在-VS-Code-终端中进入-WSL（三种方式）" class="headerlink" title="在 VS Code 终端中进入 WSL（三种方式）"></a>在 VS Code 终端中进入 WSL（三种方式）</h3><p><strong>方式 1：直接输入命令（最简单）</strong></p><p>在 VS Code 中按 &#96;Ctrl + &#96;&#96; 打开终端，输入：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">wsl</span><br></pre></td></tr></table></figure><p>回车后进入 Ubuntu，你会看到提示符变成 <code>wsluser@...</code>。</p><p><strong>方式 2：新建 WSL 专用终端</strong></p><p>点击终端右上角 <code>+</code> 旁边的 <code>˅</code> 下拉箭头 → 选择 <strong>“Ubuntu (WSL)”</strong></p><p><strong>方式 3：把 WSL 设为默认终端</strong></p><p>按 <code>Ctrl + Shift + P</code> → 搜索 <code>Terminal: Select Default Profile</code> → 选择 <strong>Ubuntu (WSL)</strong>，之后每次打开终端默认就是 Ubuntu。</p><h3 id="进入博客目录"><a href="#进入博客目录" class="headerlink" title="进入博客目录"></a>进入博客目录</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">cd</span> ~/blog</span><br></pre></td></tr></table></figure><h3 id="用-VS-Code-打开文件"><a href="#用-VS-Code-打开文件" class="headerlink" title="用 VS Code 打开文件"></a>用 VS Code 打开文件</h3><p>在 WSL 终端中可以用 <code>code</code> 命令直接在 VS Code 中打开任何文件：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">code ~/blog/source/_posts/文件名.md</span><br></pre></td></tr></table></figure><blockquote><p>前提：VS Code 需安装 <strong>Remote - WSL</strong> 扩展（通常已预装）。</p></blockquote><hr><h2 id="二、电脑端写作与发布"><a href="#二、电脑端写作与发布" class="headerlink" title="二、电脑端写作与发布"></a>二、电脑端写作与发布</h2><h3 id="创建新文章"><a href="#创建新文章" class="headerlink" title="创建新文章"></a>创建新文章</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">cd</span> ~/blog</span><br><span class="line">hexo new <span class="string">&quot;我的第一篇文章&quot;</span></span><br></pre></td></tr></table></figure><blockquote><p>⚠️ 标题不要带 <code>.md</code> 后缀，Hexo 会自动加上。</p></blockquote><p>这会在 <code>source/_posts/</code> 下生成 <code>我的第一篇文章.md</code>，然后可以用 VS Code 打开编辑：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">code <span class="built_in">source</span>/_posts/我的第一篇文章.md</span><br></pre></td></tr></table></figure><h3 id="Markdown-文章头部格式（Front-Matter）"><a href="#Markdown-文章头部格式（Front-Matter）" class="headerlink" title="Markdown 文章头部格式（Front Matter）"></a>Markdown 文章头部格式（Front Matter）</h3><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line">---</span><br><span class="line">title: 我的第一篇文章</span><br><span class="line">date: 2026-07-20 20:00:00</span><br><span class="line">categories:</span><br><span class="line"><span class="bullet">  -</span> 技术</span><br><span class="line">tags:</span><br><span class="line"><span class="bullet">  -</span> Hexo</span><br><span class="line"><span class="section">  - 博客</span></span><br><span class="line"><span class="section">---</span></span><br><span class="line">正文内容从这里开始...</span><br></pre></td></tr></table></figure><h3 id="本地预览"><a href="#本地预览" class="headerlink" title="本地预览"></a>本地预览</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">cd</span> ~/blog</span><br><span class="line">hexo server</span><br></pre></td></tr></table></figure><p>浏览器打开 <code>http://localhost:4000</code> 即可预览。</p><h3 id="发布到线上"><a href="#发布到线上" class="headerlink" title="发布到线上"></a>发布到线上</h3><p><strong>现在不再使用 <code>hexo deploy</code></strong>，而是用 Git 直接推送源码，让 Netlify 自动构建：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">git add -A</span><br><span class="line">git commit -m <span class="string">&quot;描述你改了什么&quot;</span></span><br><span class="line">git push origin main</span><br></pre></td></tr></table></figure><p>推送后 Netlify 会自动检测变更，自己执行 <code>hexo generate</code> 并部署上线（约 1-2 分钟生效）。</p><h3 id="为什么不用-hexo-deploy-了？"><a href="#为什么不用-hexo-deploy-了？" class="headerlink" title="为什么不用 hexo deploy 了？"></a>为什么不用 <code>hexo deploy</code> 了？</h3><p>之前 <code>hexo deploy</code> 会把编译后的 HTML 直接推送到 GitHub，Netlify 拿到 HTML 不知道怎么构建，导致部署失败。</p><p>现在改为推送<strong>源码</strong>到 GitHub，Netlify 在服务器上自己执行 <code>hexo generate</code>，流程正确：</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">你的电脑 ──git push──→ GitHub（源码：.md、_config.yml、主题...）</span><br><span class="line">                              ↓</span><br><span class="line">                        Netlify 自动执行 hexo generate → 部署上线</span><br></pre></td></tr></table></figure><h3 id="hexo-generate-还要用吗？"><a href="#hexo-generate-还要用吗？" class="headerlink" title="hexo generate 还要用吗？"></a><code>hexo generate</code> 还要用吗？</h3><p><strong>发布上线不需要</strong>，Netlify 会替你执行。</p><p><strong>本地预览时需要</strong>：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">hexo generate   <span class="comment"># 生成 static 文件</span></span><br><span class="line">hexo server     <span class="comment"># 启动预览 http://localhost:4000</span></span><br></pre></td></tr></table></figure><p>或者直接 <code>hexo server</code>（它会自动生成后再启动）。</p><blockquote><p>📱 <strong>手机 CMS 例外</strong>：CMS 点”发布”会自动 commit + push 到 GitHub，Netlify 自动构建，全程无需手动操作。</p></blockquote><hr><h2 id="三、📁-文章管理"><a href="#三、📁-文章管理" class="headerlink" title="三、📁 文章管理"></a>三、📁 文章管理</h2><h3 id="重命名文章"><a href="#重命名文章" class="headerlink" title="重命名文章"></a>重命名文章</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">mv</span> ~/blog/source/_posts/旧名称.md ~/blog/source/_posts/新名称.md</span><br><span class="line">code ~/blog/source/_posts/新名称.md    <span class="comment"># 打开后把 title 也改成新名称</span></span><br><span class="line">git add -A &amp;&amp; git commit -m <span class="string">&quot;重命名文章&quot;</span> &amp;&amp; git push origin main  <span class="comment"># 发布</span></span><br></pre></td></tr></table></figure><h3 id="删除文章"><a href="#删除文章" class="headerlink" title="删除文章"></a>删除文章</h3><p><strong>方式 1：命令行</strong></p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">rm</span> ~/blog/source/_posts/文件名.md</span><br><span class="line">git add -A &amp;&amp; git commit -m <span class="string">&quot;删除文章&quot;</span> &amp;&amp; git push origin main</span><br></pre></td></tr></table></figure><p><strong>方式 2：VS Code 中删除</strong><br>在左侧文件资源管理器找到 <code>source/_posts/</code>，右键文件 → Delete，然后终端执行 <code>git add -A &amp;&amp; git commit -m &quot;删除文章&quot; &amp;&amp; git push origin main</code>。</p><p><strong>方式 3：手机 CMS 删除</strong><br>登录 <code>https://mumutingyun.netlify.app/admin/</code>，进入文章后点删除（自动 commit + push，Netlify 自动部署）。</p><hr><h2 id="四、📱-手机端登录后台（Decap-CMS）"><a href="#四、📱-手机端登录后台（Decap-CMS）" class="headerlink" title="四、📱 手机端登录后台（Decap CMS）"></a>四、📱 手机端登录后台（Decap CMS）</h2><ol><li><p>打开手机浏览器，访问：</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">https://mumutingyun.netlify.app/admin/  或</span><br><span class="line">https://mumutingyun.site/admin/</span><br></pre></td></tr></table></figure></li><li><p>点击 <strong>“Login with Netlify Identity”</strong></p></li><li><p>点击 <strong>“Continue with GitHub”</strong></p></li><li><p>用你的 GitHub 账号（<code>mumutingyun</code>）授权登录</p></li><li><p>登录后你可以：</p><ul><li>✏️ 左侧菜单 → “文章” → “新建文章”</li><li>📝 用 Markdown 格式写正文</li><li>🖼️ 上传图片（存到 <code>source/images/</code>）</li><li>📤 点击右上角 “发布” → “立即发布”</li></ul></li><li><p>发布后约 1-2 分钟网站生效</p></li></ol><hr><h2 id="五、Git-远程仓库工作流"><a href="#五、Git-远程仓库工作流" class="headerlink" title="五、Git 远程仓库工作流"></a>五、Git 远程仓库工作流</h2><p><strong>设置 Git 身份（首次执行）：</strong></p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">cd</span> ~/blog</span><br><span class="line">git config user.name <span class="string">&quot;mumutingyun&quot;</span></span><br><span class="line">git config user.email <span class="string">&quot;3194491988@qq.com&quot;</span></span><br></pre></td></tr></table></figure><p><strong>设置远程仓库：</strong></p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">git remote add origin https://github.com/mumutingyun/mumutingyun.github.io.git</span><br></pre></td></tr></table></figure><p>如果已存在先删除：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">git remote remove origin</span><br><span class="line">git remote add origin https://github.com/mumutingyun/mumutingyun.github.io.git</span><br></pre></td></tr></table></figure><hr><h2 id="六、📋-完整工作流速查表"><a href="#六、📋-完整工作流速查表" class="headerlink" title="六、📋 完整工作流速查表"></a>六、📋 完整工作流速查表</h2><table><thead><tr><th>场景</th><th>操作方式</th></tr></thead><tbody><tr><td>💻 电脑写文章</td><td><code>hexo new &quot;标题&quot;</code> → 编辑 <code>.md</code> → <code>git push origin main</code> 发布</td></tr><tr><td>📱 手机写文章</td><td>浏览器打开 <code>/admin/</code> → GitHub 登录 → CMS 编辑 → 点”发布”</td></tr><tr><td>✏️ 重命名文章</td><td><code>mv</code> 改名 → <code>code</code> 修改 title → <code>git push origin main</code></td></tr><tr><td>🗑️ 删除文章</td><td><code>rm</code> 删除 → <code>git push origin main</code>（CMS 删除自动部署）</td></tr><tr><td>🔍 本地预览</td><td><code>hexo server</code> → 访问 <code>http://localhost:4000</code></td></tr><tr><td>🔄 拉取最新</td><td><code>git pull origin main</code></td></tr></tbody></table><hr><h2 id="七、⚠️-重要注意事项"><a href="#七、⚠️-重要注意事项" class="headerlink" title="七、⚠️ 重要注意事项"></a>七、⚠️ 重要注意事项</h2><ol><li><strong>手机端 CMS 发布后</strong>，电脑端需要先 <code>git pull</code> 再写新文章，否则会冲突</li><li><strong>电脑端 <code>hexo deploy</code> 后</strong>，CMS 中也能看到最新内容</li><li><strong>图片上传</strong>：CMS 上传的图片在 <code>source/images/</code>，引用路径为 <code>/images/xxx.jpg</code></li><li><strong>不要同时两边编辑同一篇文章</strong>，会产生 Git 冲突</li><li>如果还没在 Netlify Identity 中添加 GitHub OAuth，选中 <strong>“Let me use my own OAuth app credentials”</strong>，填入：<ul><li>Client ID: <code>Ov23li8fcEG8q7qu3CDP</code></li><li>Client Secret: <code>77292aff48c4e4f657a84389387617f7b1a50eaf</code></li></ul></li></ol><hr><h2 id="八、首次部署检查清单"><a href="#八、首次部署检查清单" class="headerlink" title="八、首次部署检查清单"></a>八、首次部署检查清单</h2><ul><li><input disabled="" type="checkbox"> GitHub 仓库 <code>mumutingyun.github.io</code> 已创建</li><li><input disabled="" type="checkbox"> 代码已 push 到 GitHub</li><li><input disabled="" type="checkbox"> Netlify 已连接仓库，构建命令 <code>hexo generate</code>，发布目录 <code>public</code></li><li><input disabled="" type="checkbox"> Netlify Identity 已启用</li><li><input disabled="" type="checkbox"> Git Gateway 已启用（Netlify Identity → Services）</li><li><input disabled="" type="checkbox"> GitHub OAuth 已配置为外部提供者</li><li><input disabled="" type="checkbox"> <code>https://mumutingyun.netlify.app</code> 能正常访问</li><li><input disabled="" type="checkbox"> <code>https://mumutingyun.netlify.app/admin/</code> 能打开 CMS 登录页</li></ul><hr><h2 id="九、🖥️-在新电脑上搭建写作环境"><a href="#九、🖥️-在新电脑上搭建写作环境" class="headerlink" title="九、🖥️ 在新电脑上搭建写作环境"></a>九、🖥️ 在新电脑上搭建写作环境</h2><p>如果你换了电脑或想在另一台电脑上写文章，不需要重新走完整搭建流程，只需把 GitHub 上的代码拉下来即可。</p><h3 id="前提：新电脑也需要-WSL-Node-js"><a href="#前提：新电脑也需要-WSL-Node-js" class="headerlink" title="前提：新电脑也需要 WSL + Node.js"></a>前提：新电脑也需要 WSL + Node.js</h3><p>在新电脑上先安装基础环境：</p><ol><li>安装 WSL2 + Ubuntu</li><li>安装 nvm + Node.js：<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash</span><br><span class="line"><span class="comment"># 关闭终端重新打开</span></span><br><span class="line">nvm install 24</span><br></pre></td></tr></table></figure></li></ol><h3 id="拉取博客代码"><a href="#拉取博客代码" class="headerlink" title="拉取博客代码"></a>拉取博客代码</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 克隆仓库</span></span><br><span class="line">git <span class="built_in">clone</span> https://github.com/mumutingyun/mumutingyun.github.io.git ~/blog</span><br><span class="line"><span class="built_in">cd</span> ~/blog</span><br><span class="line"></span><br><span class="line"><span class="comment"># 安装依赖（等同于 npm install，自动读取 package.json）</span></span><br><span class="line">npm install</span><br><span class="line"></span><br><span class="line"><span class="comment"># 设置 Git 身份</span></span><br><span class="line">git config user.name <span class="string">&quot;mumutingyun&quot;</span></span><br><span class="line">git config user.email <span class="string">&quot;3194491988@qq.com&quot;</span></span><br></pre></td></tr></table></figure><h3 id="日常写作流程（在任何一台电脑上都一样）"><a href="#日常写作流程（在任何一台电脑上都一样）" class="headerlink" title="日常写作流程（在任何一台电脑上都一样）"></a>日常写作流程（在任何一台电脑上都一样）</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 1. 开工前先拉取最新（防止另一台电脑或手机 CMS 有更新）</span></span><br><span class="line"><span class="built_in">cd</span> ~/blog</span><br><span class="line">git pull origin main</span><br><span class="line"></span><br><span class="line"><span class="comment"># 2. 写文章</span></span><br><span class="line">hexo new <span class="string">&quot;文章标题&quot;</span></span><br><span class="line">code <span class="built_in">source</span>/_posts/文章标题.md</span><br><span class="line"></span><br><span class="line"><span class="comment"># 3. 本地预览</span></span><br><span class="line">hexo server</span><br><span class="line"><span class="comment"># 浏览器打开 http://localhost:4000</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># 4. 发布上线</span></span><br><span class="line">git add -A</span><br><span class="line">git commit -m <span class="string">&quot;描述改动&quot;</span></span><br><span class="line">git push origin main</span><br></pre></td></tr></table></figure><h3 id="⚠️-跨电脑协作注意事项"><a href="#⚠️-跨电脑协作注意事项" class="headerlink" title="⚠️ 跨电脑协作注意事项"></a>⚠️ 跨电脑协作注意事项</h3><ol><li><strong>写之前一定要 <code>git pull</code></strong>，否则可能和另一台电脑或手机 CMS 的更新冲突</li><li><strong><code>node_modules/</code> 已经被 <code>.gitignore</code> 忽略</strong>，不会上传到 GitHub。所以克隆后必须执行 <code>npm install</code> 才能运行</li><li><strong><code>package.json</code> 和 <code>package-lock.json</code> 会同步</strong>，如果你在其中一台电脑安装了新插件（<code>npm install xxx --save</code>），另一台电脑 <code>git pull</code> 后再 <code>npm install</code> 就能同步</li><li><strong><code>_config.yml</code> 中不要写 Token</strong>。用 HTTPS 推送时如果遇到认证问题，可以在 URL 中临时嵌入 Token，但不要 commit 包含 Token 的配置文件</li></ol>]]>
    </content>
    <id>https://mumutingyun.site/2026/07/20/%E6%93%8D%E4%BD%9C%E6%8C%87%E5%8D%97/</id>
    <link href="https://mumutingyun.site/2026/07/20/%E6%93%8D%E4%BD%9C%E6%8C%87%E5%8D%97/"/>
    <published>2026-07-20T12:48:14.000Z</published>
    <summary>
      <![CDATA[<h2 id="一、前提：进入-WSL-环境"><a href="#一、前提：进入-WSL-环境" class="headerlink" title="一、前提：进入 WSL 环境"></a>一、前提：进入 WSL 环境</h2><p>所有操作都在 WSL Ubuntu 终端中进]]>
    </summary>
    <title>操作指南</title>
    <updated>2026-07-21T12:56:41.453Z</updated>
  </entry>
</feed>
