그동안 쌓여 있던 미커밋 파일들을 정리. 소스·자산만 올리고, 개인 데이터와 런타임 상태는 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>
87 lines
3.5 KiB
Markdown
87 lines
3.5 KiB
Markdown
# 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:
|
|
|
|
1. **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.
|
|
|
|
2. **Peripheral Implementation Conflicts**: Our custom Python peripheral implementations were conflicting with the built-in SVD (System View Description) generated peripherals.
|
|
|
|
3. **UART Connection Issues**: Problems with UART socket connections between Renode and the web interface.
|
|
|
|
4. **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.repl` for 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:
|
|
1. `/home/kim/homeclaw/src/gateway/routes-arduino.ts` - Updated Renode session handling
|
|
2. Peripheral mock scripts were updated but ultimately not used in favor of SVD-generated peripherals
|
|
|
|
### Updated Functionality:
|
|
1. **Sketch Code Patching**: Enhanced to remove blocking loops
|
|
2. **Platform Selection**: Now uses built-in SVD-generated platforms
|
|
3. **UART Handling**: Improved connection and data flow
|
|
4. **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:
|
|
|
|
1. Open the web interface
|
|
2. Create a new sketch or use an existing one
|
|
3. Select an STM32 board (e.g., Blue Pill F103C8)
|
|
4. Click the 'Emulator' button to start the Renode simulation
|
|
5. Observe output in the serial monitor
|
|
|
|
## Future Improvements
|
|
|
|
While the current implementation is working, future improvements could include:
|
|
1. Enhancing the serial output handling for better real-time display
|
|
2. Adding more comprehensive peripheral support through SVD files
|
|
3. Improving the user interface feedback during emulator startup
|
|
4. 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. |