Compare commits

...

2 Commits

Author SHA1 Message Date
insulee
e37a03c7ad docs: 펌웨어 .bin 넣는 위치 안내 섹션 추가
clone 시 firmware/ 엔 flash.json 만 있고 서명 .bin 은 제외돼 있어,
어디에 어떤 파일을 넣는지(자동 탐색 firmware/ 또는 [폴더…]) 명확히 안내.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 16:42:00 +09:00
insulee
196b00b91e refactor: 프로젝트명 DB720Flasher → FirmwareFlasher
폴더·csproj·어셈블리명·RootNamespace·코드 namespace·x:Class·app.manifest 전부 변경.
빌드 결과가 네이티브로 FirmwareFlasher.exe 로 나온다(dist 수동 리네임 불필요).
README 빌드/구조 경로도 갱신. 모델명 "DB720"은 그대로 유지.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 16:37:48 +09:00
16 changed files with 37 additions and 17 deletions

View File

@@ -1,4 +1,4 @@
<Application x:Class="DB720Flasher.App" <Application x:Class="FirmwareFlasher.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="MainWindow.xaml"> StartupUri="MainWindow.xaml">

View File

@@ -1,6 +1,6 @@
using System.Windows; using System.Windows;
namespace DB720Flasher; namespace FirmwareFlasher;
public partial class App : Application public partial class App : Application
{ {

View File

@@ -6,8 +6,8 @@
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
<UseWPF>true</UseWPF> <UseWPF>true</UseWPF>
<RootNamespace>DB720Flasher</RootNamespace> <RootNamespace>FirmwareFlasher</RootNamespace>
<AssemblyName>DB720Flasher</AssemblyName> <AssemblyName>FirmwareFlasher</AssemblyName>
<Version>1.0.0</Version> <Version>1.0.0</Version>
<ApplicationManifest>app.manifest</ApplicationManifest> <ApplicationManifest>app.manifest</ApplicationManifest>
<SatelliteResourceLanguages>en</SatelliteResourceLanguages> <SatelliteResourceLanguages>en</SatelliteResourceLanguages>

View File

@@ -1,4 +1,4 @@
<Window x:Class="DB720Flasher.MainWindow" <Window x:Class="FirmwareFlasher.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="펌웨어 플래시 도구" Height="660" Width="960" Title="펌웨어 플래시 도구" Height="660" Width="960"

View File

@@ -7,7 +7,7 @@ using System.Windows.Media.Imaging;
using System.Windows.Threading; using System.Windows.Threading;
using Microsoft.Win32; using Microsoft.Win32;
namespace DB720Flasher; namespace FirmwareFlasher;
public partial class MainWindow : Window public partial class MainWindow : Window
{ {

View File

@@ -1,4 +1,4 @@
namespace DB720Flasher; namespace FirmwareFlasher;
public sealed class ComPortInfo public sealed class ComPortInfo
{ {

View File

@@ -1,4 +1,4 @@
namespace DB720Flasher; namespace FirmwareFlasher;
/// <summary>flash.json 의 한 영역 — 어떤 파일을 flash 어느 주소에 쓰는지.</summary> /// <summary>flash.json 의 한 영역 — 어떤 파일을 flash 어느 주소에 쓰는지.</summary>
public sealed class FwRegion public sealed class FwRegion

View File

@@ -4,7 +4,7 @@ using System.IO;
using System.Text; using System.Text;
using System.Text.RegularExpressions; using System.Text.RegularExpressions;
namespace DB720Flasher; namespace FirmwareFlasher;
public sealed class FlashStep public sealed class FlashStep
{ {

View File

@@ -1,6 +1,6 @@
using System.IO; using System.IO;
namespace DB720Flasher; namespace FirmwareFlasher;
public static class FirmwareCatalog public static class FirmwareCatalog
{ {

View File

@@ -2,7 +2,7 @@ using System.IO.Ports;
using System.Management; using System.Management;
using System.Text.RegularExpressions; using System.Text.RegularExpressions;
namespace DB720Flasher; namespace FirmwareFlasher;
/// <summary> /// <summary>
/// WMI(Win32_PnPEntity)로 COM 포트를 전부 열거하고 VID/PID로 종류만 라벨링한다. /// WMI(Win32_PnPEntity)로 COM 포트를 전부 열거하고 VID/PID로 종류만 라벨링한다.

View File

@@ -1,7 +1,7 @@
using System.IO; using System.IO;
using System.Text.Json; using System.Text.Json;
namespace DB720Flasher; namespace FirmwareFlasher;
/// <summary>빌트인 모델 프로파일 + 폴더 flash.json 로더 + 앱 파일명 자동매칭.</summary> /// <summary>빌트인 모델 프로파일 + 폴더 flash.json 로더 + 앱 파일명 자동매칭.</summary>
public static class ProfileStore public static class ProfileStore

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1"> <assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
<assemblyIdentity version="1.0.0.0" name="DB720Flasher.app" /> <assemblyIdentity version="1.0.0.0" name="FirmwareFlasher.app" />
<!-- DPI 인식: 고해상도에서 또렷하게 --> <!-- DPI 인식: 고해상도에서 또렷하게 -->
<application xmlns="urn:schemas-microsoft-com:asm.v3"> <application xmlns="urn:schemas-microsoft-com:asm.v3">

View File

@@ -23,6 +23,26 @@ ESP32 계열 컨트롤러(DB720·DB402S·DB400S 등)에 펌웨어를 굽는 **Wi
- 새 보드 첫 굽기/복구: **전체** (eFuse 주의) - 새 보드 첫 굽기/복구: **전체** (eFuse 주의)
5. 끝나면 보드 전원 재인가. 5. 끝나면 보드 전원 재인가.
## 펌웨어 파일 넣는 곳
서명된 펌웨어 `.bin`은 보안상 repo·배포본에 **들어 있지 않다**(`.gitignore`로 제외). **직접 넣어야 한다.**
모델 폴더 하나에 아래 파일을 모아 둔다:
```
<펌웨어 폴더>/
├─ flash.json ← 모델 설정 (없으면 앱 "모델" 드롭다운에서 선택)
├─ bootloader.bin
├─ partition-table.bin
├─ ota_data_initial.bin
├─ DIBD*.bin ← 앱 (예: DIBD720Te_…, DIBD402S_…)
└─ www_fs.bin ← DB720 만
```
- 앱은 **exe 옆 `firmware/` 폴더를 자동으로** 찾는다 — 거기에 넣으면 바로 잡힌다.
- 다른 위치에 두려면 앱에서 **[폴더…]** 로 그 폴더를 고른다.
- **"앱만" 모드**는 앱 `DIBD*.bin` 하나만 있으면 된다(부트로더·파티션 등 불필요).
## 지원 모델 ## 지원 모델
| 모델 | 칩 | 부트로더 offset | 포트·방식 | | 모델 | 칩 | 부트로더 offset | 포트·방식 |
@@ -74,14 +94,14 @@ ESP32 USB-JTAG는 보드가 리셋될 때마다 USB를 다시 잡아 **COM 번
요구: **.NET 9 SDK** (Windows), WPF(`net9.0-windows`). 요구: **.NET 9 SDK** (Windows), WPF(`net9.0-windows`).
```powershell ```powershell
dotnet build DB720Flasher\DB720Flasher.csproj dotnet build FirmwareFlasher\FirmwareFlasher.csproj
dotnet run --project DB720Flasher\DB720Flasher.csproj dotnet run --project FirmwareFlasher\FirmwareFlasher.csproj
``` ```
## 배포 (단일 실행본) ## 배포 (단일 실행본)
```powershell ```powershell
dotnet publish DB720Flasher\DB720Flasher.csproj -c Release -r win-x64 ` dotnet publish FirmwareFlasher\FirmwareFlasher.csproj -c Release -r win-x64 `
--self-contained true -p:PublishSingleFile=true -p:IncludeNativeLibrariesForSelfExtract=true --self-contained true -p:PublishSingleFile=true -p:IncludeNativeLibrariesForSelfExtract=true
``` ```
@@ -91,7 +111,7 @@ dotnet publish DB720Flasher\DB720Flasher.csproj -c Release -r win-x64 `
``` ```
firmware-flasher/ firmware-flasher/
├─ DB720Flasher/ WPF 앱 소스 (+ tools/esptool/ 동봉 엔진) ├─ FirmwareFlasher/ WPF 앱 소스 (+ tools/esptool/ 동봉 엔진)
├─ firmware/ 펌웨어 폴더 (flash.json 포함; 서명 .bin 은 git 제외) ├─ firmware/ 펌웨어 폴더 (flash.json 포함; 서명 .bin 은 git 제외)
├─ profiles/ 모델별 flash.json 템플릿 (DB720·DB402S·DB400S) ├─ profiles/ 모델별 flash.json 템플릿 (DB720·DB402S·DB400S)
├─ flash_app.ps1 / flash_full.ps1 / list_ports.ps1 기존 PowerShell 키트 ├─ flash_app.ps1 / flash_full.ps1 / list_ports.ps1 기존 PowerShell 키트