그동안 쌓여 있던 미커밋 파일들을 정리. 소스·자산만 올리고, 개인 데이터와 런타임 상태는 gitignore로 차단. 추가된 자산: - web-ui/audiomass, web-ui/wavacity — 자체 호스팅 오디오 에디터 - web-ui/drums — 드럼 샘플 - wol-gate — WOL 프록시 컨테이너(Dockerfile + server.js) - glm-1m-fix — GLM 1M 컨텍스트 설치 스크립트(linux/windows) - RENODE_FIXES_SUMMARY*.md, CCTV정보_서울특별시.csv, .claude/plans 수정: - edge_tts_synth.py: rate 인자 추가(말하기 속도 조절) - .smallclaw/config.json: google(gemini) provider 등록 — 키는 vault 참조 - assets/SmallClaw*.png 삭제분 반영 gitignore (중요): - .smallclaw/users/*/workspace/ 전체 차단. 기존 패턴이 memory/uploads와 일부 확장자만 막아서 detective/(고소장·통화녹취·의사소견서·가족관계증명서), generated-media/, music/, pptx/ 등 앱 생성 개인 데이터 403MB가 노출돼 있었음 - .smallclaw/active-sessions.json 차단 — 살아있는 bearer 토큰과 admin 역할이 평문으로 들어있어 커밋 시 게이트웨이 관리자 자격증명이 그대로 공개됨 - google-usage.json, config.json.bak-*, workspace/memory·weather-maps· task_result_*, voice/ 등 런타임 상태도 함께 차단 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
3.5 KiB
Renode STM32 Emulator Fixes - FINAL
This document summarizes the final fixes implemented to resolve issues with the Renode STM32 emulator in the HomeClaw project.
Issues Identified and Resolved
Based on the debugging log and testing, the following issues were identified and resolved:
-
Infinite Loop in Sketch Code: The
while (!Serial)construct in Arduino sketches was causing an infinite loop in Renode because there's no USB Serial stack implementation. -
Peripheral Implementation Conflicts: Our custom Python peripheral implementations were conflicting with the built-in SVD (System View Description) generated peripherals.
-
UART Connection Issues: Problems with UART socket connections between Renode and the web interface.
-
Platform Description Issues: Incorrect or incomplete platform descriptions were causing the emulator to crash.
Fixes Implemented
1. Enhanced Sketch Code Patching
Updated the sketch code patching logic to remove various forms of blocking loops that prevent execution in Renode:
while (!Serial) {}while (!Serial);while (!Serial) delay(1);
2. Corrected Platform Usage
Updated the Renode session handling to use the built-in platform descriptions with SVD-generated peripherals:
- Using
/home/kim/.local/lib/renode/platforms/cpus/stm32f103.replfor STM32F103 - Leveraging SVD files for automatic peripheral generation
- Properly handling RCC register tags
3. Improved UART Connection Handling
Enhanced the UART socket connection logic with:
- Better error handling
- Proper retry mechanisms
- Connection status verification
4. Enhanced Error Handling and Logging
Added more comprehensive error handling and logging throughout the Renode session management code.
Key Changes Made
Updated Files:
/home/kim/homeclaw/src/gateway/routes-arduino.ts- Updated Renode session handling- Peripheral mock scripts were updated but ultimately not used in favor of SVD-generated peripherals
Updated Functionality:
- Sketch Code Patching: Enhanced to remove blocking loops
- Platform Selection: Now uses built-in SVD-generated platforms
- UART Handling: Improved connection and data flow
- Error Reporting: Better logging and error messages
Verification Results
The fixes have been successfully verified:
- ✅ Renode starts and runs without crashing
- ✅ Firmware executes successfully
- ✅ SVD-generated peripherals are used correctly
- ✅ UART connections can be established
- ✅ HomeClaw service is running with updates
Current Status
The Renode STM32 emulator is now working correctly with the HomeClaw platform. The key insight was to leverage the built-in SVD-generated peripherals rather than trying to implement custom Python peripheral mocks, which was causing conflicts.
Usage
To use the Renode STM32 emulator:
- Open the web interface
- Create a new sketch or use an existing one
- Select an STM32 board (e.g., Blue Pill F103C8)
- Click the 'Emulator' button to start the Renode simulation
- Observe output in the serial monitor
Future Improvements
While the current implementation is working, future improvements could include:
- Enhancing the serial output handling for better real-time display
- Adding more comprehensive peripheral support through SVD files
- Improving the user interface feedback during emulator startup
- Adding support for more STM32 chip variants
These fixes resolve the immediate issues with the Renode STM32 emulator and provide a stable and functional emulation environment.