RP2350 마이크로컨트롤러로 386 PC를 돌리는 FRANK 386, 듀얼 칩 보드 지원까지 추가
- FRANK 386은 약 $1짜리 RP2350 마이크로컨트롤러에서 386 PC를 에뮬레이션하는 프로젝트로, VGA와 HDMI 출력, SoundBlaster, Windows 95까지 지원함. 원래 murm386이던 이름을 frank-386으로 바꾸고 릴리스 1.05까지 나온 상태임.
- FRANK Core 2(Core 2U) 듀얼 RP2350 보드 지원이 추가됨. RP2350B를 master, RP2350A를 slave로 쓰는데, stock pico2 헤더가 PICO_RP2350A를 선언해 GPIO 개수를 30개로 묶어버려 링크 버스(GPIO20..42), WS2812(46), PSRAM CS(47)가 0..29로 조용히 겹치므로 전용 board 헤더가 필수임. C2에는 PS/2가 없어 USB HID만 입력으로 씀.
- 측정 도구가 기본 꺼진 상태로 들어감. --autotype(부팅 후 게스트에 스크립트를 타이핑해 작업 부하를 반복 가능하게 만듦), --pc-sample(core 0에서 10kHz SysTick PC 샘플러), --code-profile(게스트 코드 워킹셋), --bb-profile(기본 블록 발견과 재사용), --subsys-profile(서브시스템별 사이클, 왜곡되므로 절대 수치 인용 금지). MIPS 평균값은 항상 컴파일됨.
- 콘솔이 부팅 한 줄 만에 죽던 버그를 고침. uart_init이 baud divisor를 clk_peri 기준으로 한 번만 계산하고 클럭 변경 후 아무도 다시 계산하지 않아, UART가 유일한 디버그 창구인 보드에서 "Configuring overclock" 직후 출력이 끊겼음. flash.sh는 SWD 지원과 SYSINFO.PACKAGE_SEL 기반 프로브 매핑을 추가해 두 반쪽 중 하나에 다른 이미지가 잘못 올라가지 않게 함.
- 저장소는 커밋 259개, 스타 80개, 포크 6개, 브랜치 13개, 태그 4개임. commit-msg 훅으로 AI가 만든 흔적이 남은 커밋 메시지는 거부함.
Hacker News opinions
Windows 96도 돌아가는 것 같던데 진짜 대단하다. 예전에 4MiB에 25MHz 386DX에서 쓰던 Slackware 커널 1.2.13도 한번 돌려봐야겠음.
그 Slackware 돌리려면 20장짜리 플로피 디스크를 어디에 뒀는지부터 찾아야 함.
Win95가 20MHz 386DX에서도 기술적으로는 돌아간다는 걸 몰랐네.
이제 386BSD 꺼내야 할 때인가.
근데 스크린샷은 EGA임.
잘 만들었네. PicoCalc으로 포팅 가능한지 궁금하다.
RS232나 프린터 포트도 에뮬레이션하나? 못 찾겠던데, 그게 되면 옛날 산업 장비 재활용이 가능할 텐데.
안 함. ISA 버스도 에뮬레이션 안 해서 multi-io 카드 꽂을 수도 없음. RP2350 B variant에는 GPIO가 충분하고 5V tolerant라서 하드웨어적으로는 ISA 슬롯을 직결하는 배선 문제일 뿐인데 아쉬움.
가상화나 에뮬레이션은 훨씬 전부터 있었고 USB-RS232 어댑터 사면 됨. 진짜 옛날 PC 하드웨어로 돌아가는 산업 설비라면 RS232가 제일 걱정할 게 아님. 보통 커스텀 ISA 카드에 꽂힌 괴상하게 독점적인 물건이 문제고, 타이밍 루프에 의존하는 베어메탈 소프트웨어도 버스 타이밍이 어긋나면 가만히 있지 않음.
RP2350은 지금 나온 MCU 중에 제일 저평가된 것 같다.
오히려 과대평가 아님? 평범한 MCU고 무선도 없고 딥슬립도 별로임. ESP32나 nRF5x 대신 고를 이유가 없음. PIO가 유일하게 특별한데 그것도 니치하고 특허까지 걸려 있어서 FOSS 포팅은 글렀음. 라즈베리 이름 없었으면 아무도 몰랐을 거임.
유연한 IO 가진 MCU 하나로 이 정도까지 되는 게 신기하다. 성능은 어느 정도 나옴?
MMU도 없이 이걸 어떻게 돌리지.
성능 얘기가 페이지 어디에도 없던데 내가 못 찾은 건가.