Initial commit: 펌웨어 플래시 도구 (WPF) + 기존 PowerShell 키트

- DB720Flasher: WPF .NET 9 GUI 플래셔
  - 멀티모델 프로파일(flash.json + 빌트인 DB720/DB402S/DB400S/DB400Q/DB300eM)
  - 포트 자동감지(JTAG 우선, 유령 포트 자동 회피), esptool v5 동봉
- flash_app.ps1 / flash_full.ps1 / list_ports.ps1: 기존 PowerShell 키트
- profiles/: 모델별 flash.json 템플릿
- firmware/flash.json: DB720 모델 설정 (서명 실펌웨어 .bin 은 repo 제외)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
insulee
2026-06-23 16:10:40 +09:00
commit 69f4d4754f
25 changed files with 2545 additions and 0 deletions

View File

@@ -0,0 +1,20 @@
{
"_comment": "DB400S(또는 DB400Q) 펌웨어 폴더에 'flash.json'으로 복사해서 쓰세요. DB400Q면 name만 바꾸면 됩니다.",
"name": "DB400S (ESP32)",
"chip": "esp32",
"baud": 921600,
"noStub": false,
"perRegion": false,
"before": "default-reset",
"after": "hard-reset",
"appOnlyErasesOtadata": false,
"regions": [
{ "file": "bootloader.bin", "offset": "0x1000", "kind": "bootloader" },
{ "file": "partition-table.bin", "offset": "0x10000", "kind": "support" },
{ "file": "ota_data_initial.bin", "offset": "0x11000", "kind": "support" },
{ "app": true, "offset": "0x20000" }
],
"consolePortHint": "10C4:EA60",
"downloadModeHint": "TTL(COM2) 연결. SW1 누른 상태에서 SW2 눌렀다 떼고 SW1 떼면 다운로드 모드 진입.",
"notes": "esp32 클래식. 부트로더 0x1000. 스텁 921600 · 한 번에. secure 보드는 부트로더(0x8000 아래) 거부 → --force 또는 앱만."
}

View File

@@ -0,0 +1,20 @@
{
"_comment": "DB402S 펌웨어 폴더에 'flash.json'으로 복사해서 쓰세요(이 _comment 줄은 지워도 됨). 그러면 앱이 폴더만 보고 이 설정대로 플래시합니다.",
"name": "DB402S (ESP32-S3)",
"chip": "esp32s3",
"baud": 921600,
"noStub": false,
"perRegion": false,
"before": "default-reset",
"after": "hard-reset",
"appOnlyErasesOtadata": false,
"regions": [
{ "file": "bootloader.bin", "offset": "0x0000", "kind": "bootloader" },
{ "file": "partition-table.bin", "offset": "0x10000", "kind": "support" },
{ "file": "ota_data_initial.bin", "offset": "0x11000", "kind": "support" },
{ "app": true, "offset": "0x20000" }
],
"consolePortHint": "10C4:EA60",
"downloadModeHint": "TTL(COM2) 연결. SW1 누른 상태에서 SW2 눌렀다 떼고 SW1 떼면 다운로드 모드 진입.",
"notes": "esp32-s3. 부트로더 offset 0x0000(중요). 스텁 921600 · 한 번에 기록. secure 보드는 부트로더(0x8000 아래) 거부 → --force 또는 앱만."
}

28
profiles/DB720.flash.json Normal file
View File

@@ -0,0 +1,28 @@
{
"_comment": "DB720 펌웨어 폴더에 'flash.json'으로 복사해서 쓰세요. (이 키트의 firmware\\ 폴더엔 이미 들어 있습니다 — 여기 건 참고/백업용 템플릿입니다.)",
"name": "DB720 (ESP32-P4)",
"chip": "esp32p4",
"baud": 115200,
"noStub": true,
"perRegion": true,
"connectAttempts": 30,
"flashSize": "16MB",
"flashMode": "dio",
"flashFreq": "80m",
"before": "default-reset",
"after": "hard-reset",
"appOnlyErasesOtadata": true,
"otadataOffset": "0x11000",
"otadataSize": "0x2000",
"regions": [
{ "file": "bootloader.bin", "offset": "0x2000", "kind": "bootloader" },
{ "file": "partition-table.bin", "offset": "0x10000", "kind": "support" },
{ "file": "ota_data_initial.bin", "offset": "0x11000", "kind": "support" },
{ "file": "www_fs.bin", "offset": "0x420000", "kind": "support" },
{ "app": true, "offset": "0x20000" }
],
"flashPortHint": "303A:1001",
"consolePortHint": "10C4:EA60",
"downloadModeHint": "USB-JTAG 케이블 연결. 포트가 안 잡히면 케이블만 다시 꽂으면 됩니다(자동 감지).",
"notes": "secure_release · db250513 서명. 영역별 개별 호출(SDM). 부트로더(0x2000)는 이미 구워진 보드면 거부될 수 있음(정상 → 표준/앱만)."
}