• hulk released this 2026-10-25 13:24:20 +08:00 | 0 commits to release/golden since this release

    出厂保底(FW_B)V1.0.3 — 生产实装版原样复制(FACTORY 工厂镜像)

    • 本镜像 = EDDY 双固件 BL + 出厂保底固件(B 槽满槽)+ 末页标志,A 槽整体擦除态:上电判定链直接跳 B 跑出厂固件,无需 OTA 即可独立使用(SWD 整片烧录 0x08000000,64KB)。
    • FW_B 内容 = 生产实装版原样复制(生产仓库 GitLab ceramixnano_eddy_cmake_vscode dev@151828f,v26.1.0.3):LDC1612 驱动电流 GEN(8)(生产 2026-03-23 调参)、命令集 M1~M4 + M999/M9999、旧 8 位寄存器地址 i2c 驱动——与线上实装设备行为一致,唯一差别是链接地址(B 槽 0x0800B000)。
    • BL = bootloader_CeramixNano_EDDY 分支 V0.1.0(4,040B,MD5 1dcc17bf530930a9686afa4dd04d30db,LED=PB1,升级会话期间 SWD 可用)。

    产物

    附件 大小 MD5
    CeramixNano-EDDY_FACTORY_B-V1.0.3_2026-10-25.bin 65,536B(64KB 整片) 30027baef5ad0340c9aa364f74b4d4d9
    • B 满槽 19 页(固件体 12,036B + 0xFF 补页),B 记录 DE C0 13 00 49 EA FF FF(CRC-16/XMODEM = 0xEA49);打包 12 项字节校验全过。
    • 源码:本仓库 release/golden 分支(c7433a8)。

    硬件实测(2026-10-25,全部通过)

    • 整片烧录 + OpenOCD Verify OK;上电判定链 跳 B(SWD 采样 PC=0x0800CA68 ∈ FW_B;A 锚点擦除态、B 记录 CRC 复算一致、flag 0xEEEE 在位);
    • 整片读回 64KB 与本镜像逐字节一致;
    • M999 → v26.1.0.3;M3 涡流原始值 0x0198ECC1(有效读数、无错误位);M4 温度 24.81°C。

    判定值纪律(重要)

    • 保底判定值 = v26.1.0.3:M999 返回 v26.1.0.3 ⇔ 在跑保底固件(升级未生效,重推)。
    • v26.1.0.2(旧 golden,仅存在于 10-24 测试包)与 v26.1.0.3 均永不再用于任何 OTA 升级包版本;后续 A 线正式版本必须 > V1.0.3(dev 线当前同为 V1.0.3,正式发布前须升版)。
    Downloads
  • hulk released this 2026-10-24 21:18:27 +08:00 | 4 commits to release/golden since this release

    CeramixNano EDDY(LDC1612 电涡流传感器单板)出厂保底固件定版。

    Flash 布局(与 CeramixNano-MB 完全相同)

    • BL 8K 0x08000000(专属分支 bootloader_CeramixNano_EDDY V0.1.0,4,040B,MD5 1dcc17bf…;LED=PB1,Ymodem 每烧录一包翻转一次,与 MB 分支并列、版本独立编号;PA14 不占用 ⇒ 升级会话期间 SWD 保持可用)
    • FW_A 运行槽 36K 0x08002000(OTA/Ymodem 接收区,A 记录锚点 0x0800AFFC)
    • FW_B 出厂保底槽 19K 0x0800B000(版本冻结 V1.0.2,B 记录 0x0800FBF8,OTA 不可擦写)
    • 末页 1K(legacy 标志 0xEEEE@0x0800FFFC)

    版本纪律

    • 保底判定值:M999 返回 v26.1.0.2 ⇔ 正在跑 FW_B(升级未生效,重推)。
      出厂版本号 V1.0.2 永不再用于任何 OTA 升级包版本。
    • A 线版本自 V1.0.3 起(板卡码 26)。

    附件

    文件 用途
    *_FACTORY_B-V1.0.2_*.bin 产线整片烧录包(EDDY BL + A 擦除态 + B 满槽 + flag,上电跳 B)
    *_FULL_A-V1.0.3_B-V1.0.2_*.bin 双槽完整镜像(SWD 刷新用)
    *_V1.0.3_APP_*_UPDATE.bin OTA/Ymodem 升级包(12 页,trailer 0x5C09000C)
    *.md5.txt MD5 清单 + 布局摘要

    验收(2026-10-24 硬件实测全过;换 EDDY 专属 BL 后全周期复测通过)

    FACTORY→跳B / FULL→记录路径跳A / PC 模拟 SOC 完整 OTA + 整片读回逐字节一致 /
    OTA 传输中途 SWD 在线可探针 / 擦锚点→legacy 跳A / 毁A体→CRC 拦截落B /
    双坏→停留 BL / OTA 中止(CA)→落B / 非法包拒收→落B。

    Downloads
  • V1.0.2 8d5c33236d

    hulk released this 2026-10-02 23:08:29 +08:00 | 6 commits to main since this release

    变更内容

    IIC 驱动(从 gd32e23x_template_cmake_vscode 模板导入)

    • 出错路径改为 i2c_bus_reset() 整线恢复 + 重试(原来仅 STOP + 清标志),总线被从机拉死时可自恢复
    • 新增 _i2c_wait_flag_timeout / _i2c_wait_flag_clear_timeout 带超时辅助函数,超时打印具体卡死的 flag
    • i2c_scan 增加无响应地址的 AERR 标志清除,避免扫描残留错误影响后续通信
    • 新增 i2c_read_raw()(无子地址读取);通用 i2c_write/i2c_read 改为 16 位寄存器地址(DLPC 风格)
    • 保留本工程 100kHz 速率 / #ifdef DEBUG_VERBOSE 风格 / I2C_DEBUG_UART 扫描输出
    • 移除无引用的 8bit/32bit/display 面板便捷函数
    • TMP112 读取路径修正为 i2c_read_16bits(配合 16 位寄存器地址版 i2c_read 的语义变更)

    文档

    • 协议文档修正:温度上报命令由 M3 笔误更正为 M4;补全 M4/M5/M6/M999/M9999 帧格式与回复示例
    • 新增项目 AGENTS.md(工具链、硬件约定、内存布局与开发进度)

    工具链

    • 新增 DAPLink 专用 OpenOCD 烧录配置与 VS Code 任务(绕过 connect_assert_srst 导致的 Cortex-M23 识别失败)

    硬件验证(GD32E230F8 实测)

    命令 功能 结果
    M1/M2 周期上报开/关 通过(~10ms/帧,停止回 ok)
    M3 LDC1612 涡流原始值 通过(~0x01ADBADC@室温,无错误位,稳定)
    M4 TMP112 温度×10000 通过(27.25~30.45°C,随板温变化合理)
    M5 温度补偿涡流值 通过(补偿系数为 0 时≈M3)
    M6 标定数据(涡流+温度) 通过,CRC 校验正确
    M999 / M9999 版本 / 复位 通过(v23.1.0.2)

    固件产物

    文件 用途 烧录/升级地址
    *_UPDATE.bin OTA / Ymodem 升级包(1KB 页对齐) 由 bootloader 经 RS485 Ymodem 接收
    *_BL.bin 整片烧录镜像(Bootloader + APP + 0xEEEE 标志) 0x08000000
    *.bin 裸 APP 固件 0x08002000
    *.hex 裸 APP 固件(HEX) 0x08002000

    Flash 布局:Bootloader 8KB @0x08000000,APP 54KB @0x08002000,校准预留 1KB @0x0800F800,有效标志 0xEEEE @0x0800FFFC。

    注意:M5 温度补偿系数(TEMP_COMP_COEFF_*)当前为 0,待温漂标定后在下个版本填入。

    Downloads