From ec13d424177cccf2c38a8a0bbf02d22632c5c6d1 Mon Sep 17 00:00:00 2001 From: jeon Date: Thu, 18 Jun 2026 18:52:45 +0900 Subject: [PATCH] =?UTF-8?q?docs:=20Claude=20Code=20=ED=94=84=EB=A1=9C?= =?UTF-8?q?=EC=A0=9D=ED=8A=B8=20=EB=A9=94=EB=AA=A8=EB=A6=AC=20=EB=B0=B1?= =?UTF-8?q?=EC=97=85(git=20=EB=8F=99=EA=B8=B0=ED=99=94=EC=9A=A9)=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PC 이전 시 메모리가 따라오도록 ~/.claude memory 사본을 doc/claude-memory 에 보관. 새 PC 적용법은 doc/claude-memory/README.md 참고. Co-Authored-By: Claude Opus 4.8 (1M context) --- doc/claude-memory/MEMORY.md | 4 ++++ doc/claude-memory/README.md | 20 +++++++++++++++++++ doc/claude-memory/herv-master-source.md | 14 +++++++++++++ doc/claude-memory/internal-damper-fan-gate.md | 14 +++++++++++++ 4 files changed, 52 insertions(+) create mode 100644 doc/claude-memory/MEMORY.md create mode 100644 doc/claude-memory/README.md create mode 100644 doc/claude-memory/herv-master-source.md create mode 100644 doc/claude-memory/internal-damper-fan-gate.md diff --git a/doc/claude-memory/MEMORY.md b/doc/claude-memory/MEMORY.md new file mode 100644 index 0000000..7eeeaae --- /dev/null +++ b/doc/claude-memory/MEMORY.md @@ -0,0 +1,4 @@ +# Memory Index + +- [HERV 마스터 소스](herv-master-source.md) — 검증된 펌웨어 = D:\Project\nuvoton\HERV_DL_MH_2nd\Program, 댐퍼/팬 회귀 비교 기준 +- [내부댐퍼 팬 게이트](internal-damper-fan-gate.md) — 본체 댐퍼는 팬이 0까지 내려가야 모드별 이동, 명령경로 끼어들면 미동작 diff --git a/doc/claude-memory/README.md b/doc/claude-memory/README.md new file mode 100644 index 0000000..0b78b97 --- /dev/null +++ b/doc/claude-memory/README.md @@ -0,0 +1,20 @@ +# Claude Code 메모리 백업 (git 동기화용) + +이 폴더는 Claude Code 의 프로젝트 메모리 사본입니다. (원본은 사용자 프로필 +`C:\Users\<사용자>\.claude\projects\d--Project-nuvoton-HECO2\memory\` 에 있고 git 밖이라, +PC 이전 시 동기화되도록 여기에 복사해 둠.) + +## 새 PC에서 적용하는 법 +1. 저장소를 **같은 경로** `d:\Project\nuvoton\HECO2` 로 clone (경로가 다르면 자동 연결 안 됨). +2. 이 폴더의 `*.md` 3개를 새 PC의 + `C:\Users\<새사용자>\.claude\projects\d--Project-nuvoton-HECO2\memory\` 로 복사. + (폴더 없으면 생성) +3. 그 폴더의 `MEMORY.md` 가 매 세션 자동 로드되어 아래 사실을 recall. + +> 대화 이력(`*.jsonl`, `claude --resume` 용)은 용량이 커서 여기 포함하지 않음. +> 이 대화 자체를 이어받으려면 프로필의 해당 `.jsonl` 도 같이 복사해야 함. + +## 포함된 메모리 +- `MEMORY.md` — 인덱스 +- `herv-master-source.md` — 검증된 마스터 펌웨어 = `D:\Project\nuvoton\HERV_DL_MH_2nd\Program` +- `internal-damper-fan-gate.md` — 내부댐퍼는 팬이 0까지 내려가야 모드별 이동(게이팅) 원리 diff --git a/doc/claude-memory/herv-master-source.md b/doc/claude-memory/herv-master-source.md new file mode 100644 index 0000000..d8af933 --- /dev/null +++ b/doc/claude-memory/herv-master-source.md @@ -0,0 +1,14 @@ +--- +name: herv-master-source +description: 검증된 마스터 펌웨어 소스 위치 (HECO2 댐퍼/팬 로직 비교 기준) +metadata: + node_type: memory + type: reference + originSessionId: 5209cdb2-53ba-4f8b-9aa0-4a7911424cf1 +--- + +`D:\Project\nuvoton\HERV_DL_MH_2nd\Program` 가 사용자가 지정한 **마스터(검증된) 펌웨어 소스**다. HECO2 펌웨어의 댐퍼/팬 동작이 의심되면 이 트리와 diff 해서 회귀를 찾는다. + +차이 요약: MyMotor.c 의 댐퍼 구동 코드(Damper_Mode/Step_process/Fan_Speed_process 게이팅)는 거의 동일. 통신부가 다름 — 마스터는 `My_Uart.c`(CVnet 월패드), HECO2 는 `My_Homenet.c`(RJ2/홈넷). My_RJ2.c·pwm_duty10000.c 는 동일. My_system.c 는 HECO2 가 크게 다름(DL 각실제어/시나리오 신규). + +마스터 설계 원칙: 명령경로(CVnet/RJ2)는 `Fan_Speed_Setting` 을 절대 호출 안 함 — 팬 타깃은 `Fan_Speed_process`(게이팅) + `Diffuser_Damper_process` 만 관리. 관련 [[internal-damper-fan-gate]]. diff --git a/doc/claude-memory/internal-damper-fan-gate.md b/doc/claude-memory/internal-damper-fan-gate.md new file mode 100644 index 0000000..d71cd20 --- /dev/null +++ b/doc/claude-memory/internal-damper-fan-gate.md @@ -0,0 +1,14 @@ +--- +name: internal-damper-fan-gate +description: 내부댐퍼(본체 6개)는 팬이 0까지 감속해야 모드별로 이동하는 게이팅 설계 +metadata: + node_type: memory + type: project + originSessionId: 5209cdb2-53ba-4f8b-9aa0-4a7911424cf1 +--- + +HECO2 내부댐퍼(본체 6개: EA/OA/BYPASS/SA/RA/공청, `Damper_Mode()` in MyMotor.c)는 운전모드 변경 시 **"팬 타깃0 → 팬이 실제 0 도달 → Damper_Mode 호출(댐퍼 이동) → Step_Status==0x3F 정렬 → 팬 복원"** 순서로 동작한다. 공기 흐르는 중 댐퍼를 안 움직이려는 의도. `Damper_wait_time == 5` 가 "모드전환 진행중" 전용 신호. + +**Why:** 명령경로(대시보드 `My_Homenet.c` CTRL_FAN 등)가 모드전환 감속창에 끼어들어 `Fan_Speed_Setting()` 으로 팬 타깃을 다시 켜면, 팬이 0에 도달 못 해 게이트가 안 열리고 내부댐퍼가 (간헐적으로) 안 움직인다. 2026-06-18 이 버그를 수정함. + +**How to apply:** 모드전환 중 팬은 명령경로와 무관하게 0으로 강제해야 한다. 수정 위치 = MyMotor.c `Fan_Speed_process()` PASS1 직후 정상운전 분기: `if(Damper_wait_time == 5){ Target_Fan1_Speed=0; Target_Fan2_Speed=0; }`. 같은 모드 풍량단수만 변경(wait==0)은 즉시 반응 유지. 마스터 [[herv-master-source]] 는 애초에 명령경로에서 Fan_Speed_Setting 을 호출하지 않아 이 문제가 없었다.