嵌入式开发:用VS Code插件构建文档与代码一体化工作区
2026/9/2 23:59:20 网站建设 项目流程

嵌入式开发日常里,最容易被忽视的其实是“文档查看”这件事:写代码时翻数据手册、看原理图截图、记录调试结论,通常要在 PDF 阅读器、图片查看器、记事本之间来回切换。这次我们来看一个更顺手的组合方案:把 PDF 阅读、PNG 图片预览、Markdown 笔记、Mermaid 流程图和 LaTeX 公式渲染全部放进嵌入式 IDE 的工作区里,减少窗口切换,让硬件资料和代码保持同一套组织逻辑。

这个方案不是某个独立的大软件,而是基于 VS Code 这类嵌入式开发常用 IDE 的插件组合。它最核心的价值在于把“文档阅读”和“代码开发”放到同一个工作区:数据手册、寄存器截图、设备树说明、调试笔记、协议流程图、硬件计算公式都能在同一界面里打开和预览。对做单片机开发、驱动调试、硬件验证、嵌入式 Linux 的人来说,最大的收益是少切窗口、少找文件,笔记和源码可以放在同一个目录里一起走版本管理。

文章会按“环境准备 -> 插件安装 -> 功能测试 -> 性能观察 -> 问题排查”的顺序展开。整个过程不涉及模型部署,不依赖 GPU,门槛主要在 IDE 版本和插件市场访问是否正常。你可以照着一套流程验证下来,再判断这套方案值不值得长期使用。

1. 核心能力速览

能力项说明
方案类型IDE 工作区增强组合,由编辑器加插件实现
实现载体VS Code 等嵌入式开发常用 IDE,配合插件
PDF 阅读在 IDE 内直接打开 PDF 数据手册,支持翻页、缩放、文本搜索
PNG 图片预览直接点击图片文件预览,也可以从 Markdown 中以相对路径引用
Markdown 预览侧边实时预览,支持标题、表格、任务列表、代码块、目录
Mermaid 渲染在 Markdown 预览中渲染流程图、时序图、类图、状态图等常用图表
LaTeX 渲染通过 KaTeX 或 MathJax 渲染行内公式与块级公式
导出能力可将 Markdown 导出为 HTML、PDF、PNG 等常见格式
硬件门槛无 GPU 要求,普通办公电脑即可
适合场景嵌入式开发笔记、驱动文档、协议分析、硬件调试记录、技术博客素材整理

2. 适用场景与使用边界

这套方案适合大多数嵌入式开发者,尤其是这几类场景。第一类是 MCU 和嵌入式 Linux 驱动开发,开发过程中需要频繁查阅芯片数据手册和寄存器描述,把 PDF 直接拖进 IDE 里打开,旁边就是源码窗口,查某个寄存器时不用反复切换应用。第二类是硬件调试记录,调试过程中常常要保存逻辑分析仪截图、示波器截图,把这些 PNG 统一放到项目目录的 assets 下,再在 Markdown 里写一段调试结论,截图和结论放在一起,比散落在桌面强很多。第三类是协议分析与文档沉淀,比如 I2C、SPI、UART、CAN 这类通信协议,用 Mermaid 画时序图或者状态机,直接写进 README 或开发文档里,后续维护时一眼就能看懂。

它和专门的文档工具有明显边界。如果你需要复杂排版、多人协同编辑、严格的批量模板套用,使用 Word 或在线文档平台会更合适。IDE 内预览更适合“看代码的同时快速看资料”这种场景,不适合做最终交付文件的精细排版。另外,IDE 内打开超大型 PDF 时,内存占用和翻页流畅度通常不如专门的 PDF 阅读器,所以一套工作流里不一定只有一种工具,IDE 内预览负责快速查阅,正式阅读或批注仍然可以用专业工具。

使用边界上要注意资料授权。数据手册、原理图、客户文档、第三方库文档如果涉及保密或版权约定,不要随意放进公开仓库或外部文档系统。团队内部使用时要确认资料使用范围,对外发布或交付前要做脱敏和授权确认。

3. 环境准备与前置条件

在动手之前,先确认基础环境。

  • 操作系统:Windows、Linux、macOS 都可以,嵌入式开发中 Windows 和 Linux 最常见。
  • IDE 版本:建议使用 VS Code 1.70 以上版本,版本太老可能无法安装部分插件。如果是 Eclipse、STM32CubeIDE、Keil 等 IDE,原理类似,但插件生态和安装方式不完全相同,需要按实际情况调整。
  • 网络条件:插件市场访问正常,或者可以离线下载 vsix 文件安装。
  • 磁盘空间:插件占用很小,留出几百 MB 空间即可。如果还要用导出 PDF 功能,需要本机装有 Chrome 浏览器。
  • 常用插件:Markdown Preview Enhanced、vscode-pdf、Markdown All in One。如果使用 VS Code 内置 Markdown 预览,可以补装 Markdown Preview Mermaid Support。

先检查 IDE 版本,命令行输入:

code --version

确保能正常输出版本号。然后检查现有插件列表:

code --list-extensions

这一步是为了确认哪些插件已经存在,避免重复安装。

4. 安装部署与启动方式

插件的安装方式很简单。直接打开 VS Code 扩展面板,搜索插件名,点击安装即可。也可以用命令行安装,适合多台机器批量配置。

# Markdown Preview Enhanced,核心预览增强扩展 code --install-extension shd101wyy.markdown-preview-enhanced # PDF 查看扩展,例如 tomoki1207.pdf code --install-extension tomoki1207.pdf # Markdown 编辑效率工具,提供快捷键、列表补全、表格格式化 code --install-extension yzhang.markdown-all-in-one # VS Code 内置 Markdown 预览的 Mermaid 支持扩展,可选 code --install-extension bierner.markdown-mermaid

安装完成后,建议把几个常用的 Markdown 预览设置写进用户设置。这里给一份可以直接参考的 settings.json 片段:

{ "markdown-preview-enhanced.previewTheme": "github-light.css", "markdown-preview-enhanced.codeBlockTheme": "github.css", "markdown-preview-enhanced.mathRenderingOption": "KaTeX", "markdown.preview.fontSize": 14, "markdown.math.enabled": true }
  • markdown-preview-enhanced.previewTheme控制预览主题,github-light 适合代码阅读习惯。
  • markdown-preview-enhanced.codeBlockTheme控制代码块主题。
  • markdown-preview-enhanced.mathRenderingOption指定用 KaTeX 渲染 LaTeX 公式,渲染速度比 MathJax 更快。
  • markdown.math.enabled是 VS Code 内置预览对数学公式的支持开关。

启动方式分两种。Markdown 文件打开后,如果点右上角的拆分预览图标,或按Ctrl + K V,可以打开左侧编辑、右侧预览的分屏模式。如果直接用内置 Markdown 预览,按Ctrl + Shift + V打开独立预览页。PDF 文件直接在资源管理器中点击,如果是刚才安装的 PDF 扩展,通常会在编辑器标签页里直接打开,而不是弹出外部程序。PNG 图片也是一样,点击后会在编辑器内打开图片预览。

如果用的是 Eclipse、STM32CubeIDE 这类不能直接装 VS Code 插件的 IDE,可以有两种替代思路。一种是把文档编辑工作放到 VS Code,代码工程仍然留在原来的 IDE 里,二者用同一个 Git 仓库管理。另一种是查找对应 IDE 的插件市场,有些基于 Eclipse 的 IDE 支持安装 Eclipse Markdown 插件,但体验通常不如 VS Code 组合完整。

5. 功能测试与效果验证

环境配置好后,建议按下面几个步骤逐项验证,确认每个功能真正可用。

5.1 PDF 阅读测试

先找一个实际项目中使用的 PDF 数据手册,比如芯片参考手册或数据表。把它拖到 VS Code 工作区里,点击打开。

测试目的:确认 IDE 内能直接打开 PDF,而不是弹出外部阅读器。

操作步骤:

  1. 在资源管理器中展开目录,点击 PDF 文件。
  2. 查看编辑器区域是否能显示 PDF 内容。
  3. 尝试翻页、缩放,选中 PDF 中的文本,看能否复制。

预期结果:PDF 在编辑器标签页中打开,可以正常翻页,英文文本通常可以选中复制。如果点击后没有反应,检查 PDF 扩展是否安装,或者文件本身是否损坏。

这里要特别注意:IDE 内 PDF 查看适合快速查阅,不适合大量批注。如果你习惯在 PDF 上画重点,可以继续用专业 PDF 阅读器。这个功能解决的核心问题是“查手册不用切窗口”。

5.2 PNG 图片预览测试

把逻辑分析仪截图、示波器截图、原理图截图、PCB 截图放入项目的 assets 目录,在资源管理器中点击 PNG 文件。

测试目的:确认 IDE 能打开图片,并能在 Markdown 中通过相对路径引用图片。

操作步骤:

  1. 在项目目录建一个assets文件夹,放入一张图片,例如uart_timing.png
  2. 点击图片预览,确认能正常显示。
  3. 新建一个 Markdown 文件,用相对路径插入图片:
![UART 时序截图](./assets/uart_timing.png)
  1. 打开 Markdown 预览,确认图片能显示。

图片预览本身是 VS Code 的基础能力,一般不需要额外插件。问题通常出现在 Markdown 相对路径引用上。判断标准很简单:预览里图片不显示,先去检查文件路径是否正确,再看图片名是否包含中文或空格,建议全部改成英文小写加下划线。

5.3 Markdown 笔记与任务清单测试

Markdown 是这套方案的主线,PDF 和 PNG 都是围绕它组织的。测试时重点看任务清单、表格、目录这几项。

新建test.md,写入:

# 调试任务 ## 任务进度 - [x] 完成时钟初始化 - [ ] 排查 UART DMA 中断 - [ ] 验证低功耗模式 ## 寄存器记录 | 寄存器 | 地址 | 用途 | | --- | --- | --- | | RCC->CR | 0x40023800 | 时钟控制 | | USART1->BRR | 0x40011008 | 波特率配置 | ## 待确认 - [ ] CAN 过滤器配置

打开预览后,任务列表应该显示为可勾选的复选框,表格正常显示。这一步主要验证 Markdown Preview Enhanced 或内置预览的基本渲染是否正常。

如果表格列宽不整齐,可以在 VS Code 中安装 Markdown All in One 后,用快捷键格式化表格。常用的快捷键是Shift + Alt + F格式化整个文件,也可以选中表格后右键格式化。

5.4 Mermaid 流程图渲染测试

这是整套组合里最能提升文档可读性的功能之一。把下面内容追加到test.md

## UART 发送流程 ```mermaid flowchart TD A[初始化 UART] --> B[配置波特率] B --> C{检查 TX 空闲} C -- 是 --> D[写入发送寄存器] C -- 否 --> C D --> E[等待发送完成] E --> F[清除中断标志] ```

保存后,打开 Markdown 预览。预期结果是把flowchart TD渲染成一张从上到下的流程图。如果用的是 VS Code 内置 Markdown 预览,需要确保bierner.markdown-mermaid扩展已安装。如果用的是 Markdown Preview Enhanced,Mermaid 代码块通常会被自动渲染。

如果图表没有渲染,优先检查三点。第一,代码块语言标签是否严格写成mermaid。第二,Mermaid 语法是否正确,比如节点名称不能用中文括号。第三,是否在同一文档里存在多个 Markdown 预览扩展,扩展之间可能相互冲突。

再测一个时序图,协议分析里很常用:

## I2C 读操作时序 ```mermaid sequenceDiagram participant Master participant Slave Master->>Slave: START + Slave Address + R/W=1 Slave-->>Master: ACK Master->>Slave: Register Address Slave-->>Master: ACK Slave->>Master: Data Master-->>Slave: NACK Master->>Slave: STOP ```

时序图能渲染出来,说明 Mermaid 支持的常用图表类型基本正常。后续画状态机图、类图、甘特图,思路是一样的。

5.5 LaTeX 公式渲染测试

嵌入式开发里用到公式的场景不少,比如串口波特率计算、ADC 采样值换算、PID 参数调整、电机运动学计算。在test.md里写入公式:

## 串口波特率计算 $$BaudRate = \frac{f_{PCLK}}{16 \times (USARTDIV)}$$ 内联公式示例:$USARTDIV = 546.875$ ## ADC 电压换算 $$V_{ADC} = \frac{ADC\_Value}{4095} \times V_{REF}$$

打开预览后,块级公式应该居中显示,内联公式嵌在文字中。如果公式没有渲染,最常见的坑是$$$的位置写错,LaTeX 命令拼写错误,或者预览引擎没有启用数学渲染。

Markdown Preview Enhanced 通过mathRenderingOption设置渲染引擎,KaTeX 速度快,MathJax 兼容性广。如果某个公式在 KaTeX 下报错,先检查命令是否为常见 LaTeX 命令,复杂度很高的公式建议直接改用 MathJax 渲染。

5.6 导出效果测试

Markdown 写完后,最终可能需要交付 HTML 或 PDF。Markdown Preview Enhanced 提供导出功能。

操作步骤:

  1. 打开要导出的 Markdown 文件。
  2. Ctrl + Shift + P,输入Markdown Preview Enhanced: Export
  3. 选择导出格式,常用的是 HTML、PDF、PNG。

导出 PDF 时,扩展通常会调用本机 Chrome 或 Chromium 完成打印。如果导出失败,检查是否安装 Chrome,以及扩展是否识别到浏览器路径。如果暂时没有 Chrome,可以先导出 HTML,再用浏览器打开 HTML 直接打印成 PDF。

6. 接口 API 与批量任务

6.1 为什么没有 API

这套方案是 IDE 内的工作流组织,不是独立服务,所以没有 HTTP API,也没有批量任务队列。这里的“能力”更多体现在导出和文档生成的自动化上。

6.2 批量导出与文档自动化

如果你有多份 Markdown 文档需要统一交付,最轻量的方式是逐个导出,也可以把导出动作固化成脚本。比如用 Pandoc 做批量转换,把某个目录下所有 Markdown 转成 HTML:

for f in *.md; do pandoc "$f" -o "${f%.md}.html" done

如果希望保留 Mermaid 图和 LaTeX 公式,更稳妥的方案是先用 Markdown Preview Enhanced 导出,而不是直接依赖 Pandoc。Pandoc 对 Mermaid 代码块的处理不如 IDE 扩展直接,批量导出时要注意图表是否被正确渲染。

如果你的团队有文档站,比如 VuePress、docsify、Sphinx,Markdown 文件本身就可以作为文档源文件。嵌入式项目里常见的做法是:代码仓库里维护docs目录,所有 Markdown 都按统一规范编写,提交后由 CI 自动构建成 HTML 文档站。

6.3 建议的发布链路

嵌入式项目文档可以分成三层。第一层是仓库内 README,记录项目怎么编译、怎么烧录、怎么验证。第二层是模块文档,每个外设驱动或独立模块维护一个 Markdown 说明,包含寄存器配置、状态机、时序图。第三层是调试记录,记录实际遇到的现象、排查过程和分析结论。

这三层都可以用同一套 Markdown + Mermaid + LaTeX 方案维护。区别只在于发布粒度:README 直接放在仓库根目录,模块文档放在模块目录下,调试记录可以作为独立文件归档。对外交付需要正式格式时,再从 Markdown 导出 HTML 或 PDF。

7. 资源占用与性能观察

这套方案不涉及 GPU,资源占用主要体现在内存和 CPU 上。不需要特别强的电脑,但如果同时打开很多大型文件,仍然会出现卡顿。

7.1 观察方式

在 Windows 下打开任务管理器,在 macOS 下打开活动监视器,在 Linux 下可以用命令观察:

top -o %MEM

重点观察两个进程:VS Code 主进程和渲染进程。预览面板开得越多,渲染进程的内存占用越高。

7.2 主要资源消耗点

  • PDF 文件:几十 MB 的大手册打开后,内存占用会比较明显,翻页时会有短暂加载。
  • 图片预览:高分辨率 PNG 在编辑器内滚动时,可能会有轻微延迟,图片尺寸过大时更明显。
  • Markdown 预览:预览面板是一个独立渲染页面,打开以后会持续占用内存。
  • Mermaid 图:复杂流程图或时序图,在编辑时如果频繁刷新,字体引擎和布局计算会造成 CPU 短暂升高。
  • LaTeX 公式:大量块级公式同时渲染时,KaTeX 和 MathJax 都有一定的计算成本,KaTeX 通常会快一些。

7.3 降低占用的技巧

  • 不同时打开多个大型 PDF。IDE 内 PDF 查看适合临时查阅,长时间精读还是放到专业阅读器。
  • 截图先用工具压缩。嵌入式开发里截图往往很大,比如 4K 屏幕下的逻辑分析仪截图可能有几 MB,拖进 IDE 后影响滚动流畅度。统一用截图工具或批处理压缩到合适尺寸。
  • 预览用后即关。不要一直挂着多个 Markdown 预览面板,不写文档时把预览关掉。
  • Mermaid 图不要过分复杂。一张图几十个节点、几十条边,预览和后续维护都会费劲。复杂逻辑拆成多张小图。
  • 减少无用插件。VS Code 装得越重,编辑器启动和文件响应越慢。只保留高频使用的扩展。

8. 常见问题与排查方法

问题现象可能原因排查方式解决方案
Mermaid 图不渲染未安装 Mermaid 支持扩展、语法错误、多个预览扩展冲突查看预览控制台报错,检查代码块语言标签安装bierner.markdown-mermaid,或改用 Markdown Preview Enhanced 预览;修正语法
LaTeX 公式不显示数学渲染未开启、公式符号错误、预览引擎不支持检查markdown.math.enabled设置,检查$$$分隔符启用数学渲染;改用 Markdown Preview Enhanced;修正 LaTeX 命令
PDF 打开空白PDF 扩展未安装、插件视图异常、文件损坏重启 VS Code,用外部阅读器打开同一文件验证安装 vscode-pdf 扩展;重新打开文件;确认文件未损坏
PNG 点击无反应图片过大、文件类型异常、插件冲突在系统资源管理器中打开同一图片压缩图片;用浏览器打开;检查文件扩展名
图片在 Markdown 预览里不显示相对路径错误、图片名中文或空格、文件被移动在 Markdown 源码中点击路径确认文件存在统一将图片放assets目录,使用./assets/文件名.png格式
Ctrl+K V 快捷键无效快捷键被占用或未生效在命令面板执行“打开侧边预览”验证功能打开快捷键设置,重新绑定markdown.showPreviewToSide
导出 PDF 失败本机未安装 Chrome、浏览器路径未识别查看导出日志,确认 Chrome 是否存在安装 Chrome;或先导出 HTML,再从浏览器打印为 PDF
Markdown 中文乱码文件编码不是 UTF-8检查编辑器右下角编码提示统一保存为 UTF-8
同目录下打开多个 Markdown 预览卡顿预览面板过多、文件过大关闭多余预览面板一次只打开一个预览;拆分成多个小文件
嵌入式 IDE 无法安装插件IDE 未开放插件市场、网络受限确认 IDE 插件来源下载 vsix 文件离线安装

9. 最佳实践与使用建议

9.1 目录结构规范

嵌入式项目建议把文档和代码放在同一个仓库里,目录结构可以是:

project_root/ ├── README.md ├── docs/ │ ├── datasheet/ │ ├── protocol/ │ └── debug_notes/ ├── assets/ │ ├── uart_timing.png │ ├── adc_circuit.png │ └── logic_analyzer.png ├── src/ ├── inc/ └── test/

要点是图片统一放assets,PDF 资料统一放docs/datasheet,调试记录放docs/debug_notes。这样时间久了文件名不会乱,换人接手时也能快速找到资料。

9.2 写作与协作建议

  • 每个驱动模块或硬件模块维护一个独立 Markdown 文件,文件名用英文小写加下划线。
  • Markdown 里第一行写模块名,第二行写维护人和日期,方便追溯。
  • Mermaid 图只画关键流程,不要画满屏节点。图是给人看的,不是炫技。
  • LaTeX 公式先在本地预览确认渲染正常,再提交到仓库。
  • 文档跟着代码一起走 Git,提交信息写清楚改了什么。硬件资料如果体积大,可以考虑用 Git LFS 管理。
  • 团队协作时约定一套 Markdown 模板,要求每个 README 都包含“功能说明、引脚配置、使用示例、注意事项”这几个小节。
  • 如果团队用飞书或其他平台协作,把这些 Markdown 内容同步到在线文档时,通常需要手动转换格式。飞书对mermaid代码块的解析依赖第三方插件,跨平台发布前先确认目标平台支持。

9.3 版权与安全边界

这套工作流里的资料大多数是芯片数据手册、自己的原理图截图、调试记录。数据手册一般有版权声明,可以内部查阅,但不能随意重新发布到公开博客或公开仓库。原理图、PCB 截图可能涉及公司核心技术,不要放进公开仓库。涉及客户资料、保密协议的文档,更不能混入开源工程。

另外,如果你把调试过程写成博客文章,注意隐藏敏感信息,比如工程路径、内部 IP、序列号、未公开的芯片信息。截图里的芯片丝印、Board ID、调试串口日志等都可能泄露信息,发布前要统一检查。

10. 总结与下一步

这套方案最值得尝试的点,不是单个功能有多强,而是它把嵌入式开发中最常用的四种文档操作合并到了一个 IDE 环境里:PDF 数据手册阅读、PNG 截图查看、Markdown 笔记、Mermaid 和 LaTeX 渲染。实际使用时,最大的收益是注意力不用频繁切换,代码和资料在同一套目录里管理,长期下来比“桌面一堆 PDF 和截图”好维护得多。

建议先按上面第 5 章的步骤做一遍验证,特别是test.md里的 Mermaid 图和 LaTeX 公式,这两项是整套方案是否能跑通的关键。最容易踩的坑有两个:一个是 Mermaid 不渲染,大概率是扩展没装齐或者预览引擎不对;另一个是导出 PDF 失败,大概率是本机没有 Chrome。把这两个问题提前解决,后面的使用就很顺畅。

后续可以继续扩展的方向包括:把 docs 目录接进 docsify 或 VuePress,做成团队内部文档站;把 Markdown 检查加入 CI,统一格式;配合 Doxygen 生成代码注释文档,再把 Doxygen 输出和 Markdown 文档链接起来。先从一个模块的调试记录开始用,用顺了再逐步把整个工程资料搬进来。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询