Neatbo.

本地覆盖率、固件与Notebook交付检查

在本地读取LCOV计数、合并稀疏Intel HEX地址并清理Notebook输出,核对完整下载、支持预算与接收工具。

选择能回答具体任务的文件合同

测试运行器已产生覆盖率数据且需要可读汇总时,使用LCOV报告;bootloader与应用需要占用已知不同地址时,使用HEX地址合并;保存的大量显示输出使Notebook难以打开且需要其代码时,使用输出清理。三个工具都不运行测试、不刷写设备、不执行Notebook单元。

运行前选择原始文件。成功下载包含完整结果,表格最多预览200条记录、区段或单元。把原件与产物一起保留,让接收者可以重新核对。

输入与交付
任务提供下载及接收复核
LCOV离线报告一份完整LCOV 1.x tracefileHTML/JSON/CSV;与测试运行器计数比较
Intel HEX地址合并不重叠的原始HEX文件规范HEX/地址映射JSON/CSV;在固件工具核对地址
Notebook输出清理nbformat 4 minor 0–5 .ipynb清理副本/源码清单/CSV;在Jupyter核对源码和附件

读取真实覆盖率并保留未知分支

示例trace含三条DA,其中一条有命中;FN/FNDA定义两个函数,其中一个命中。两条BRDA含一个命中次数和一个“-”。报告为行1/3、函数1/2、分支1/2,另列一个未知分支,不把缺少次数改成0。

LF/LH等声明汇总与真实覆盖点比较。格式合法但过期的计数保留声明/重算差异;无函数记录没有函数分母,显示n/a而非100%。

源路径和函数名称只是文字。完整离线HTML会转义它们,不含执行脚本、不读取对应源文件。每个准确源路径只允许一条记录,重复路径、新版FNL/FNA/FN结束行/MC-DC扩展拒绝。应从原工具导出支持格式,不删除有意义记录。

合并固件导出前解决地址归属

合法HEX记录包含长度、地址、类型、数据与记录校验和,每份文件必须以一个EOF结束。支持00–05、扩展段/线性地址及CS:IP或EIP入口。校验和合法的记录仍可能与其他文件冲突。

每个重复存储地址都使整个合并失败,即便字节完全相同。入口记录类型或数值不同也冲突。应先在链接/构建输入中解决归属,失败不会得到部分合并下载。

稀疏存储不填地址空隙。0xFFFFFFFF处的一个字节只是结束地址为0x100000000的单字节区段,不是4 GiB分配。完整地址映射JSON含准确区段字节,应与接收固件工具的边界一致。工具不验证目标Flash布局、启动行为、应用CRC或固件认证。

恢复Notebook源码而不渲染保存输出

清理器把Notebook作为数据解析,校验支持的单元/输出,删除代码单元outputs并重置execution_count。不渲染HTML/JavaScript MIME、不启动内核。显式选项只控制根metadata.widgets,其他元数据和Markdown/raw附件继续保留。

保留source字符串/字符串数组表示、单元顺序、ID、CRLF及中文。元数据整数、小数保留原数字token,包括123456789012345678901234567890和1.2345678901234567890123456789。JSON排版可能改变,原文件不会覆盖。

cell-sources.json记录每个原始单元source及拼接后UTF-8 SHA-256。到别处执行前,应确认清理副本和清单含预期代码。孤立代理码元源码会拒绝,避免哈希默默替换。输出删除不等于秘密删除:源码、附件、执行时间/信任/自定义元数据可能继续含敏感内容。

按完整预算处理并有意识恢复

支持范围内输入仍可能超过计算或合计输出限制。保留的大量Notebook内容、过多HEX区段或很长LCOV名称均可能放大产物;输出超限没有部分结果。

当前支持预算
工具输入附加预算
LCOV一份已选/粘贴trace≤5 MiB50000覆盖点;1000记录;总输出10 MiB
Intel HEX最多64文件、组合≤2 MiB50000记录;1 MiB存储字节;总输出10 MiB
Notebook已选≤64 MiB;粘贴≤8 MiB200000 JSON值;128层;10000单元;总输出10 MiB
  • LCOV语法失败时核对FN/FNDA名称和所有end_of_record;计数差异单独重算。
  • HEX失败时在原工具修正校验和、长度、EOF,或解决区域重叠与入口声明。
  • Notebook失败时使用完整支持版本、有效结构字段和minor 5唯一ID;取消后原件或较小有效文件可重新运行。
  • 仅在任务语义不受损时拆分。改扩展名或删未知记录不是格式转换。

参考资料

本分类工具使用说明

展开工具,查看操作步骤、可调选项和支持范围,再直接进入工作区。

LCOV离线覆盖率报告读取一份本地LCOV 1.x tracefile,重算覆盖率计数、保留未知分支,并下载完整离线HTML报告。

在不读取源文件路径的情况下检查测试运行器导出的覆盖率。查看真实行、函数和分支计数,识别过期声明汇总,并把独立HTML报告与原始tracefile一起交付。

操作步骤

  1. 粘贴或打开测试运行器导出的完整LCOV 1.x tracefile。
  2. 核对重算汇总、未知分支和声明计数差异。
  3. 下载coverage.html及完整JSON/CSV,在本地打开HTML并保留原始tracefile。

可调选项

保护CSV表格公式式文字
默认开启

能力与限制

  • 一份UTF-8文件或粘贴tracefile,最多5 MiB、50000个覆盖点(DA + FN + BRDA)、1000个完整源文件记录。每个准确源路径只允许一条记录;重复路径明确拒绝,不静默合并测试上下文。已选文件优先;全部下载合计最多10 MiB,表格预览前200条源记录。
  • 支持LCOV 1.x的TN、SF、FN、FNDA、DA、BRDA、LF/LH/FNF/FNH/BRF/BRH及可选VER。FNDA与FN顺序可不同,但每个函数必须同时有位置和次数。次数与分支标识为非负uint64;源行号1–2147483647。可选DA checksum必须为32位十六进制。新版FN结束行、FNL/FNA及MC-DC扩展拒绝。
  • 覆盖率汇总从实际覆盖点重算。声明汇总不一致会在报告中保留差异,不用它充当分母。BRDA“-”保留为未知,计入已发现分支,不改成命中次数0。分母为0显示n/a/null,不显示100%。
  • 完整HTML列出所有覆盖点和计数差异,转义文件、测试和函数文字,不含脚本或读取源路径的链接。JSON将uint64命中次数保存为十进制字符串;CSV包含每条源记录,表格安全保护可能给公式式标签加前缀。不会请求源文件、合并tracefile、运行测试或测量新的覆盖率。
打开LCOV离线覆盖率报告 →
Intel HEX地址合并按稀疏32位地址合并本地Intel HEX 00–05文件,先核对记录校验和、地址重叠及入口冲突再交付。

仅在存储地址没有重叠时合并bootloader与应用HEX导出。检查完整区段和入口声明,再下载规范HEX与稀疏地址映射,不为大段地址空隙填充数据。

操作步骤

  1. 选择原始bootloader/应用HEX文件,或粘贴一份完整HEX进行检查。
  2. 检查存储范围、区段边界和入口类型;任何重叠都会在下载前失败。
  3. 下载merged.hex、完整地址映射JSON及区段报告,刷写前用接收固件工具复核。

可调选项

保护CSV表格公式式文字
默认开启

能力与限制

  • 粘贴一份HEX文件,或选择最多64份UTF-8文件,组合最多2 MiB;已选文件优先。最多50000条非空记录、1 MiB实际存储字节,稀疏地址与跨度无关。全部完整产物合计最多10 MiB;区段预览前200条。
  • 支持00数据、01 EOF、02扩展段地址、03 CS:IP入口、04扩展线性地址、05 EIP入口。长度、校验和、记录地址与各类型数据长度必须准确。每份文件需要一个EOF;其后记录、非法十六进制/空白、重复入口记录与未知类型拒绝。接受空行和可选开头UTF-8 BOM。
  • 地址范围0x00000000–0xFFFFFFFF,超出范围的数据拒绝。同一存储地址重复出现即整体失败,即便字节相同也不合并。保留一致的入口声明,类型或数值不同则冲突。失败不提供部分结果。
  • 输出为16字节数据记录及扩展线性地址,保留入口记录类型。地址映射JSON包含每个连续区段的准确十六进制字节;报告/CSV给出完整区段范围,结束地址不包含在区段内(可为0x100000000)。不填地址空隙、不刷写硬件、不判断设备适配、不认证固件签名、不验证应用CRC。
打开Intel HEX地址合并 →
Notebook输出清理与源码恢复清除本地nbformat 4 Notebook的输出和执行次数,保留单元源码、附件及元数据精确数字。

从大量显示输出导致难以打开的Notebook中恢复代码。在不渲染保存输出的情况下删除它们,明确选择根widget状态策略,并下载清理副本及按单元索引的源码清单。

操作步骤

  1. 打开原始.ipynb而不渲染保存输出,或粘贴小份支持格式的Notebook。
  2. 选择是否清除根widget状态,核对输出删除数和执行次数重置数。
  3. 下载cleaned.ipynb与cell-sources.json,在Jupyter打开清理副本并核对源码/附件,再自行决定是否执行。

可调选项

清除根metadata.widgets状态
默认开启

其他元数据和附件继续保留;这不是自动敏感信息清理。

保护CSV表格公式式文字
默认开启

能力与限制

  • 一份已选UTF-8 .ipynb文件最多64 MiB,或粘贴JSON最多8 MiB;已选文件优先。支持nbformat 4 minor 0–5,最多200000个JSON值、128层、10000个单元。全部下载合计最多10 MiB,表格显示前200个单元。保留的大量源码、附件或元数据仍可能超过输出预算。
  • 支持代码、Markdown和raw单元,以及保存的stream/error/display_data/execute_result输出。校验结构字段、minor 5唯一ID、source表示和已知元数据字段;重复JSON键、新版单元/输出类型、未知结构扩展与不支持格式版本拒绝。自定义元数据继续作为数据保留。 拼接单元源码的孤立代理码元会拒绝,避免UTF-8哈希默默替换内容。
  • 将每个代码单元的outputs清为空数组、execution_count设为null。显式选项只控制根metadata.widgets。保留source字符串/字符串数组表示、单元顺序、ID、CRLF/中文、Markdown/raw附件、其他元数据与原始大整数/小数token。JSON排版会改变,不覆盖原文件。
  • 不渲染MIME、不运行脚本或单元、不启动内核、不自动去除个人信息。保留的源码、附件、执行时间/信任/自定义元数据可能仍含敏感内容。单元源码JSON保留准确source表示及其拼接后UTF-8 SHA-256,不声称Notebook已经运行或测试通过。
打开Notebook输出清理与源码恢复 →

本文相关工具

LCOV离线覆盖率报告 →读取一份本地LCOV 1.x tracefile,重算覆盖率计数、保留未知分支,并下载完整离线HTML报告。Intel HEX地址合并 →按稀疏32位地址合并本地Intel HEX 00–05文件,先核对记录校验和、地址重叠及入口冲突再交付。Notebook输出清理与源码恢复 →清除本地nbformat 4 Notebook的输出和执行次数,保留单元源码、附件及元数据精确数字。