요청: 임베디드-mcu-toau2c-cortexm
- 날짜: 2026-06-19 10:31:18
- 작업 경로: /Users/ef
요청 본문
세션2-임베디드: toau2c→ARM Cortex-M 크로스컴파일 + 베어메탈 소형 런타임. 한선씨 우선, 프레임회수 금지→정적할당. 직접·왕복검증.
관련 산출
(클로드가 작업 결과를 이어 기록)
산출 (17:42) — 1단계 완료
- mcu/runtime_mcu.c 독립 정적할당 소형런타임(crownyc 트릿ALU 1:1, int64고정, 주소윈도우 리매핑, 프레임회수없음)
- startup_lm3s.c + lm3s6965.ld + toau2c-mcu-build.sh (arm-none-eabi-gcc + qemu lm3s6965evb)
- 한선씨 동반 trit_alu.한선 (자가테스트 6/6)
- 왕복검증: 호스트 6/6, ARM QEMU 3/3 (12 / 55,1 / -25,9) 인터프리터와 비트동일
- 문서: docs.crowny.org/docs/2026-06-19-한선씨-임베디드-mcu-1단계
- 다음: 문자열/배열 풀, GPIO/UART RX 빌트인 → LED blink + UART echo(성공기준)
산출 2 (06-20 19:26) — 성공기준 전부 충족 (이어서 완료)
- 문자열 풀(STR_NEW/PRINT문자열/INPUT/ADD연결, UTF-8 한글) + MMIO 드라이버(쓰기/읽기=POKE/PEEK 재해석, 컴파일러·VM 무수정)
- blink: mcu/blink.한선 실 GPIO Port F PF1 토글+read-back → ARM QEMU set=1 reg=2 / set=0 reg=0 교대
- echo: 입력()/출력값() 라인 echo → ARM QEMU ping→echo:ping, pong→echo:pong
- MMIO 확정: 쓰기(0x4000C000,90)→UART 'Z'
- mcu/test.sh: 호스트왕복 5/5 + ARM 데모, PASS=5 FAIL=0
- 함정: PF0 Stellaris 잠금핀(NMI)→PF1, 16진 수동변환오류 python검산, bg qemu stdin=/dev/null
산출 3 (06-20 22:42) — 배열 + 이식성
- 배열(405~408/415, 별도 하향힙, 리터럴 임시밴드 리매핑) → 호스트+ARM 통과
- 두번째 보드 mps2-an385(동일 런타임, startup/ld만 교체) 배열·echo 동작 = 이식성 증명
- mcu/test.sh PASS=6 FAIL=0 (호스트6 + lm3s blink/echo + mps2 array/echo)
산출 4 (06-21 00:17) — 다 같이(5확장)
- ①Cortex-M0(microbit,16KB,피보144) ④RISC-V rv64(virt) — 동일 runtime_mcu.c 멀티ISA
- ③SysTick 타이머(5틱) ②고정소수점(부동소수 상위경로 미구현 대체, 4.700/4.200/2.916) ⑤flash.sh(openocd,미검증)
- test.sh PASS=7, 4 ISA/코어 검증