Skip to content

嵌入式工具箱 v1.21.1:交付体检修正(verify v1.16.1 / lookup v1.11.0)

Choose a tag to compare

@liujycode liujycode released this 17 Oct 13:27
· 18 commits to main since this release

嵌入式工具箱 v1.21.1:交付体检修正(verify v1.16.1 / lookup v1.11.0)

这一版是"上架前全面体检"的修正版:修掉 1 个规则误报、补齐闭环提示、消除静默与陈旧文案。
功能面(查/验能力)与 v1.21.0 相同,行为更严谨。

一、E13 覆盖判定修正(重要)

  • 初版 E13(v1.16.0)只要"寄存器含写 1 清零(oneToClear)位域"就报——体检时正样本集
    EXTI->PR |= EXTI_PR_P0 | EXTI_PR_P1;(唯一 W1C 位 P0 已被掩码提到)被误报。
  • 修正为只有当写 1 清零位未被本次写入掩码覆盖时才报:读改写会把"没被掩码提到、但当前
    已置位"的标志顺带清零(写 1 = 清零),这才是真正会丢中断的情形;掩码明确提到的位是代码
    本意要动的,不算误伤。
    • 会报:UART0->UARTICR |= 0x10;(UARTICR 有 TXIC/RTIC 两个 W1C 位,只提到 TXIC);
      EXTI->PR |= EXTI_PR_P0;(P1..P15 未提到)。
    • 不会报:UART0->UARTICR = 0x10;(直写);UART0->UARTICR |= TXIC_Msk | RTIC_Msk;
      (掩码覆盖全部 W1C 位);ADSR |= ADF_Msk;(唯一 W1C 位被提到)。
    • 未判定:读改写掩码无法静态求值(如 REG |= flags; 变量)——无法确认覆盖范围,不猜。
  • 正样本集回到 0 报(55 文件 117 处写入)。

二、闭环提示(lookup v1.11.0)

  • lookup 寄存器视图新增"读改写提示":写 1 清零寄存器会显示"读改写会把读回时已置位的标志
    一并写回(写 1 = 清零),可能顺带清掉没提到的标志;清标志请直写目标标志"——与核验器 E13
    的 next 命令("查看该寄存器的写语义")形成闭环。
  • decode --write / set 的 oneToClear 提示同步精确化(原为通用"可能误改状态位")。

三、消除静默与陈旧文案(verify v1.16.1)

  • --define 坏值不再静默:值明显无法求值(不含任何标识符 → 不可能引用其它宏)时给警告
    "该宏按未定义处理"。
  • verify rules、verify --help、README 的"E01–E11"陈旧文案全部更新为"E01–E13"。

四、全面体检记录(交付上架前)

  • CLI 边界矩阵 50 用例:两工具全部子命令 + 异常输入(文件/SVD 不存在、SVD 是目录、
    非 XML/截断 SVD、无参数、未知子命令、坏地址/坏值、字段不存在、坏 --headers、坏
    --define、空文件、BOM+CRLF、GBK 注释、中文/空格路径、空目录、补丁文件不存在)——
    退出码与 JSON 有效性全部符合预期,错误信息带 [E_*] 代码与提示。
  • 闭环命令逐字执行:E13 finding 的 next(结构化 {tool, args, reason})逐字跑通,
    lookup 输出写语义与读改写提示。
  • 安装副本:中性目录运行正常(无 cwd 依赖)。
  • 交付文件扫描:无绝对路径泄漏(D:\ / C:\Users)、无 eval/exec/compile 等禁用 API、
    仅标准库。
  • 语料零回归:九生态(ESP-IDF 224/0/34/190、TI 363/0/300/63、libopencm3 366/3/287/76、
    AVR 33/0/2/31、SAMD 49/0/22/27、Renesas 36/0/26/10、Silabs 309/0/218/91、NXP 3/0/1/2)+
    pico-sdk 47/0/14/33 全部与上版一致。
  • 405 项测试全过;召回 229/229;性能 0.030s/1000 行(目标 ≤ 2.0s)。

安装(不变)

  • Claude Code:/plugin marketplace add liujycode/embedded-toolkit 后 /plugin install embedded-toolkit@embedded-toolkit
  • 其他 Agent:npx skills add liujycode/embedded-toolkit