From c007b4e40db00375f440facca3893f1471f8638a Mon Sep 17 00:00:00 2001 From: yuquanjun Date: Fri, 2 Oct 2026 13:06:35 +0800 Subject: [PATCH] feat(tone): ship the 1002 rhythm pack as firmware 0.2.40 Co-authored-by: Cursor --- Global/Global.c | 2 +- device/LCD_ILI9341/Drv_ILI9341_Lcd_Image_SysSet.h | 4 ++-- project/inc/ExtFlash_Tone_Addr.h | 8 ++++---- protocol/bl_uart_parse.c | 4 ++-- tools/gen_sysset_font.py | 4 ++-- tools/pack_extflash_tone_0903.py | 10 +++++----- tools/publish_k1_release.py | 10 +++++----- 7 files changed, 21 insertions(+), 21 deletions(-) diff --git a/Global/Global.c b/Global/Global.c index 647387a..443d58f 100644 --- a/Global/Global.c +++ b/Global/Global.c @@ -111,7 +111,7 @@ int16_t MIC_VOL_MAP[11]= {-9000,-7000,-5000,-3000,-1000,1000,3000,5000,7000,9000 uint8_t TOUCH_AREA_NUM = (sizeof(Touch_Areas)/sizeof(Touch_AreaTypeDef)); -const uint8_t Version[3] = {0,2,39}; /* major.minor.patch — 0.2.39: 0928 节奏包,Hall2 混响与四段 PEQ */ +const uint8_t Version[3] = {0,2,40}; /* major.minor.patch — 0.2.40: 1002 节奏包,1.bin 更新 */ uint8_t Led = 8; bool PressFlag = 0; diff --git a/device/LCD_ILI9341/Drv_ILI9341_Lcd_Image_SysSet.h b/device/LCD_ILI9341/Drv_ILI9341_Lcd_Image_SysSet.h index 4b510ec..3e71091 100644 --- a/device/LCD_ILI9341/Drv_ILI9341_Lcd_Image_SysSet.h +++ b/device/LCD_ILI9341/Drv_ILI9341_Lcd_Image_SysSet.h @@ -49,9 +49,9 @@ extern const SysSetGlyph g_SysSet_TriR; #define SYSSET_LABEL_DX 12 #define SYSSET_VAL_X 119 #define SYSSET_VAL_W 80 -#define SYSSET_PILL_DX 140 +#define SYSSET_PILL_DX 139 #define SYSSET_PILL_DY 14 -#define SYSSET_PILL_W 73 +#define SYSSET_PILL_W 74 #define SYSSET_PILL_H 33 #define SYSSET_PILL_R 6 #define SYSSET_CARD_R 12 diff --git a/project/inc/ExtFlash_Tone_Addr.h b/project/inc/ExtFlash_Tone_Addr.h index 1ac6591..ec2cb8e 100644 --- a/project/inc/ExtFlash_Tone_Addr.h +++ b/project/inc/ExtFlash_Tone_Addr.h @@ -4,10 +4,10 @@ /* Auto-generated by tools/pack_extflash_tone_0903.py — do not hand-edit. */ /* W25Q128 absolute offsets. Boot logo display uses UI0902_BOOT_LOGO_ADDR. */ /* Tone resource pack has no in-bin version field; release tag = EXTFLASH_TONE_RES_VER. */ -#define EXTFLASH_TONE_RES_VER "0928" +#define EXTFLASH_TONE_RES_VER "1002" #define EXTFLASH_TONE_RES_VER_MAJOR 0 -#define EXTFLASH_TONE_RES_VER_MINOR 9 -#define EXTFLASH_TONE_RES_VER_PATCH 28 +#define EXTFLASH_TONE_RES_VER_MINOR 10 +#define EXTFLASH_TONE_RES_VER_PATCH 2 #define EXTFLASH_LOGO_ADDR 0x00000000UL #define EXTFLASH_LOGO_SIZE 52080UL @@ -18,7 +18,7 @@ #define EXTFLASH_CHARGING_H 190 #define EXTFLASH_BIN1_RHYTHM_ADDR 0x0001B8F0UL -#define EXTFLASH_BIN1_RHYTHM_SIZE 509556UL +#define EXTFLASH_BIN1_RHYTHM_SIZE 506913UL #define EXTFLASH_BIN2_SONG_HAITIAN_ADDR 0x0009D07DUL #define EXTFLASH_BIN2_SONG_HAITIAN_SIZE 41914UL diff --git a/protocol/bl_uart_parse.c b/protocol/bl_uart_parse.c index 5c9bb0a..f8a1a0c 100644 --- a/protocol/bl_uart_parse.c +++ b/protocol/bl_uart_parse.c @@ -611,8 +611,8 @@ static void BL_Sendmsg(uint16_t Data1, uint16_t Data2, uint16_t Data3, uint16_t #define AT32_UID_BASE 0x1FFFF7E8UL /* 96-bit unique device ID */ /* 01 04 音源版本:YY.M.D = 音色资源日期(Dream 无版本查询,发版时手改) - * 26.9.8 → 2026-09-08(Doc/音色文件/0908) */ -static const uint8_t SOUND_VER[4] = {26, 9, 8, 0x01}; + * 26.10.2 → 2026-10-02(Doc/音色文件/1002) */ +static const uint8_t SOUND_VER[4] = {26, 10, 2, 0x01}; /* 01 05 UI 资源/界面日期:YY.M.D(与 MCU 逻辑版本 Version[] 分开维护) */ static const uint8_t UI_VER[4] = {26, 9, 9, 0x01}; diff --git a/tools/gen_sysset_font.py b/tools/gen_sysset_font.py index e902ef8..edcdd59 100644 --- a/tools/gen_sysset_font.py +++ b/tools/gen_sysset_font.py @@ -194,7 +194,7 @@ def main(): raise SystemExit( "USB row overflow: label ends %d, left arrow at %d" % (label_end, tril_x) ) - ver_w = text_w("0.2.39", glyphs) + ver_w = text_w("0.2.40", glyphs) gh = glyphs["0"][0].size[1] pill_h = gh + 8 pill_w = ver_w + 18 @@ -377,7 +377,7 @@ def preview(pics, glyphs, back, back_xy, chev, chev_xy, tri_l, tl, tri_r, tr, paste(canvas, tri_l, tl[0], row_y + (tl[1] - (CARD_Y0 + CARD_PITCH))) paste(canvas, tri_r, tr[0], row_y + (tr[1] - (CARD_Y0 + CARD_PITCH))) fill_round(canvas, CARD_X + pill_dx, CARD_Y0 + pill_dy, pill_w, pill_h, 6, (0, 8, 19)) - ver = "0.2.39" + ver = "0.2.40" tw = text_w(ver, glyphs) gh = glyphs["0"][0].size[1] draw_text(canvas, CARD_X + pill_dx + (pill_w - tw) // 2, diff --git a/tools/pack_extflash_tone_0903.py b/tools/pack_extflash_tone_0903.py index 8671bda..33d653d 100644 --- a/tools/pack_extflash_tone_0903.py +++ b/tools/pack_extflash_tone_0903.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -"""Pack external W25Q128 tone/logo image for K1 (0928). +"""Pack external W25Q128 tone/logo image for K1 (1002). Layout (absolute W25Q128 offsets): 0x00000000 logo.bin (legacy pad; boot UI uses UI0902 full-screen logo) @@ -25,7 +25,7 @@ from pathlib import Path ROOT = Path(__file__).resolve().parents[1] # firmware project root REPO = ROOT.parent.parent # 一诺国际吉他 OUT_DIR = ROOT / "tools" / "out" -TONE_TAG = "0928" +TONE_TAG = "1002" OUT_BIN = OUT_DIR / f"extflash_tone_{TONE_TAG}.bin" OUT_RES = OUT_DIR / f"extflash_tone_{TONE_TAG}.res" OUT_ALL_RES = OUT_DIR / f"extflash_ALL_tone{TONE_TAG}_ui0902.res" @@ -34,7 +34,7 @@ OUT_BIN_LEGACY = OUT_DIR / "extflash_tone_0903.bin" OUT_RES_LEGACY = OUT_DIR / "extflash_tone_0903.res" OUT_ALL_LEGACY = OUT_DIR / "extflash_ALL_tone0903_ui0902.res" OUT_HDR = ROOT / "project" / "inc" / "ExtFlash_Tone_Addr.h" -TONE_DIR = REPO / "Doc" / "音色文件" / "0928" +TONE_DIR = REPO / "Doc" / "音色文件" / "1002" OUT_MAP = TONE_DIR / "FLASH_MAP.txt" UI0902_BIN = OUT_DIR / "ui0902_res.bin" @@ -162,8 +162,8 @@ def main() -> None: /* Tone resource pack has no in-bin version field; release tag = EXTFLASH_TONE_RES_VER. */ #define EXTFLASH_TONE_RES_VER "{TONE_TAG}" #define EXTFLASH_TONE_RES_VER_MAJOR 0 -#define EXTFLASH_TONE_RES_VER_MINOR 9 -#define EXTFLASH_TONE_RES_VER_PATCH 28 +#define EXTFLASH_TONE_RES_VER_MINOR {int(TONE_TAG[:2], 10)} +#define EXTFLASH_TONE_RES_VER_PATCH {int(TONE_TAG[2:], 10)} #define EXTFLASH_LOGO_ADDR 0x{by_name['LOGO'][1]:08X}UL #define EXTFLASH_LOGO_SIZE {by_name['LOGO'][2]}UL diff --git a/tools/publish_k1_release.py b/tools/publish_k1_release.py index 4b67b9d..4bb7bea 100644 --- a/tools/publish_k1_release.py +++ b/tools/publish_k1_release.py @@ -30,15 +30,15 @@ BOOT_BIN = ( / "Exe" / "AT32F403ARCT7_BOOT.bin" ) -TONE_RES_VER = "0928" +TONE_RES_VER = "1002" TONE_BIN = PROJ / "tools" / "out" / f"extflash_tone_{TONE_RES_VER}.bin" UI0902_BIN = PROJ / "tools" / "out" / "ui0902_res.bin" -MAP_TXT = REPO / "Doc" / "音色文件" / "0928" / "FLASH_MAP.txt" +MAP_TXT = REPO / "Doc" / "音色文件" / TONE_RES_VER / "FLASH_MAP.txt" TONE_HDR = PROJ / "project" / "inc" / "ExtFlash_Tone_Addr.h" IAP_DIR = REPO / "升级" / "MCU主控升级" OUT_ROOT = REPO / "tools" / "out" -FW_VER = "0.2.39" +FW_VER = "0.2.40" UI0902_RES_BASE = 0x00100000 BOOT_FLASH_ADDR = 0x08000000 APP_FLASH_ADDR = 0x08008000 @@ -91,7 +91,7 @@ def verify_tone_layout(tone: bytes, check_sources: bool = True) -> None: """Refuse to ship ALL.res if logo/charg/1/2/3.bin missing, shifted, or mismatch.""" dab = b"\xABDAB" addrs = read_tone_addrs() - tone_dir = REPO / "Doc" / "音色文件" / "0928" + tone_dir = REPO / "Doc" / "音色文件" / TONE_RES_VER ziliao = None for p in REPO.iterdir(): if p.is_dir() and (p / "logo.bin").is_file() and (p / "Charg.bin").is_file(): @@ -234,7 +234,7 @@ def main() -> None: "说明:", " - Boot 进入 USB IAP 时显示 UI0902_FLASH_MODE;资源未烧录时白字黑底兜底。", " - 开机全屏 Logo、关机充电全屏画面在 UI0902,不在音色包里的 logo.bin/Charg.bin 占位。", - f" - 本包音色来源 Doc/音色文件/0928/(tag {TONE_RES_VER});BIN3 随 2.bin 长度后移。", + f" - 本包音色来源 Doc/音色文件/{TONE_RES_VER}/(tag {TONE_RES_VER});BIN3 随 2.bin 长度后移。", "", "附件: SoundWalkerIAP.exe / 升级步骤.docx / FLASH_MAP.txt", "",