v3.0.6: RP2040 에뮬레이터 개선 — USB CDC, vendor화, 부팅 감지

- USB CDC 경로 복원: #define Serial Serial1 우회 제거
- rp2040js/avr8js/codemirror/xterm/monaco-editor vendor화
- /vendor 정적 라우팅 추가 (Express 5 catch-all 우회)
- 부팅 완료 타임아웃 감지 (Serial 출력 없어도 8초 후 RAF 전환)
- 리셋 시 Simulator 재생성으로 주변 장치 상태 초기화
- 시리얼 패널의 내부 메시지를 console.log로 이동
This commit is contained in:
kim
2026-06-19 15:49:36 +09:00
parent 23831f79ba
commit 209f3a3aef
192 changed files with 68520 additions and 76 deletions
+44
View File
@@ -0,0 +1,44 @@
import { BasePeripheral } from './peripheral.js';
const FRCE_ON = 0x00;
const FRCE_OFF = 0x04;
const WDSEL = 0x08;
const DONE = 0x0c;
const PSM_BITS_MASK = 0x0001ffff;
export class RPPSM extends BasePeripheral {
constructor() {
super(...arguments);
this.frceOn = 0;
this.frceOff = 0;
this.wdsel = 0;
}
readUint32(offset) {
switch (offset) {
case FRCE_ON:
return this.frceOn;
case FRCE_OFF:
return this.frceOff;
case WDSEL:
return this.wdsel;
case DONE:
// Domains are ready unless forced off (FRCE_ON overrides FRCE_OFF)
return (PSM_BITS_MASK & ~this.frceOff) | (this.frceOn & this.frceOff);
}
return super.readUint32(offset);
}
writeUint32(offset, value) {
switch (offset) {
case FRCE_ON:
this.frceOn = value & PSM_BITS_MASK;
break;
case FRCE_OFF:
this.frceOff = value & PSM_BITS_MASK;
break;
case WDSEL:
this.wdsel = value & PSM_BITS_MASK;
break;
default:
super.writeUint32(offset, value);
break;
}
}
}