XM10 Extension Module SDK v2.4.1¶
릴리즈 날짜: 2026-07-24 | 대상 HW: Rev 2.0 전용 | KIT H10 FW: v2.3.0+
한눈에 보기¶
Rev 2.0 에서 C 표준 라이브러리를 바로잡은 패치 릴리즈입니다. 실수를 출력하는 printf("%f", ...) 와 동적 메모리 malloc() 이 이전에는 조용히 실패했는데, 이번 릴리즈에서 정상 동작합니다. 새 예제나 API 변경은 없습니다.
- 실수
printf(%f)와malloc()이 이제 동작합니다 — 이전에는malloc()과 이를 쓰는 실수printf가 값을 내보내지 못했습니다. (예:printf("cur=%.2f\n", value);) - 여러 태스크에서 써도 안전합니다 —
malloc/printf계열을 여러 태스크가 동시에 불러도 문제가 없습니다. - 빌드 결과 일치 — STM32CubeIDE 로 빌드하든 CMake 로 빌드하든 같은 펌웨어가 나옵니다.
- USB 로그 디코더가 설치형 실행 파일로 — 파이썬 설치 없이 바로 쓰는 XM10 Log Decoder 로 대체되었습니다(아래 참고).
무엇이 바뀌었나 — 실수 printf / malloc (핵심)¶
Rev 2.0 에서 malloc() 과 이를 내부적으로 사용하는 실수 printf(%f, %e, %g)가 값을 출력하지 못했습니다. 이번 릴리즈에서 바로잡아, 아래 코드가 정상 동작합니다.
float value = 3.14f;
printf("cur=%.2f\n", value); // 이제 "cur=3.14" 출력 (이전에는 빈 값/깨짐)
char *buf = malloc(64); // 이제 유효한 포인터 반환
- Rev 1.1 은 영향 없음 — 이 문제는 Rev 2.0 에서만 발생했습니다. Rev 1.1 SDK 는 v2.3.1 그대로입니다.
- 표준 라이브러리 멀티태스크 안전 — 위 수정과 함께,
malloc/free/printf계열이 여러 태스크에서 동시에 호출돼도 안전하도록 처리했습니다. 별도로 신경 쓸 것은 없습니다.
USB 로그 디코더 — XM10 Log Decoder¶
USB 메모리(MSC)에 저장된 로그 파일(.bin)을 CSV 로 변환하는 도구가 설치형 실행 파일로 바뀌었습니다.
- 기존
PythonDecoder/안의 파이썬 스크립트(MSC · Legacy) 대신, Releases 페이지에서XM10LogDecoder_Setup_*.exe를 받아 설치하면 됩니다. 파이썬 설치가 필요 없습니다. - 로그 포맷 버전(신규/구버전)을 자동 인식하고, 여러분이 정의한 임의의 로그 구조도 그대로 CSV 로 풀어줍니다(열 제목 = 여러분이 지정한 필드 이름).
- USB-CDC 로 나오는 데이터를 실시간 수신하는 코드를 직접 짜고 싶다면,
PythonDecoder/CDC/파이썬 샘플이 그대로 남아 있습니다.
자세한 사용법: 리포지토리의
PythonDecoder/README.md참고.
다운로드¶
| 파일 | 대상 보드 |
|---|---|
| Rev2.0.zip 🆕 | XM10 Rev 2.0 (Ethernet / RTC 포함 최신 보드) — v2.4.1 신규 |
| Rev1.1.zip | XM10 Rev 1.1 (초기 개발용 보드) — v2.3.1 과 동일 |
| *XM10LogDecoder_Setup_.exe 🆕 | USB 로그 디코더 (설치형, 파이썬 불필요) |
본인 보드 리비전과 같은 ZIP 을 받아주세요. RJ45 Ethernet 포트가 있으면 Rev 2.0, 없으면 Rev 1.1 입니다.
Rev 1.1 사용자 안내: 이번 v2.4.1 수정(실수
printf·malloc)은 Rev 2.0 에서만 발생하던 문제라 Rev 2.0 전용입니다.Rev1.1.zip은 v2.3.1 과 동일한 파일을 그대로 첨부했으니, Rev 1.1 을 쓰신다면 추가로 받으실 것이 없습니다.
Release 첨부 파일¶
부트로더 · KIT H10 펌웨어 · 컨텐츠 파일은 v2.3.0 과 동일하며, 편의를 위해 v2.4.1 릴리즈에도 같은 파일을 그대로 첨부했습니다 (
AGR_Bootloader.bin/SUIT_H10_Binary_20260716.zip/SUIT_ContentsFiles.zip). 이미 v2.3.0/v2.3.1 기준으로 설치·업데이트하셨다면 추가 작업이 없습니다.
준비물 안내¶
빌드 마무리 단계(업로드용 .bin 생성)가 Python 을 사용합니다. 아직 설치하지 않았다면 개발 환경 구축 의 안내대로 Python 3.10+ 를 설치해 주세요 (PATH 등록 필수).
개선 상세¶
표준 라이브러리 (핵심)¶
- 실수
printf/malloc정상화 — 실수 서식(%f등)과 동적 메모리 할당이 정상 동작합니다. - 멀티태스크 안전 — 여러 태스크가 동시에
malloc/printf를 불러도 문제가 없습니다.
SDK 빌드¶
- CMake · CubeIDE 결과 일치 — CMake 로 빌드할 때 실수
printf관련 설정이 빠지던 문제를 바로잡아, 어느 빌드 방법으로 빌드해도 동일한 펌웨어가 나옵니다.
도구 · 문서¶
- USB 로그 디코더 설치형 실행 파일화 — 위 USB 로그 디코더 참고.
- 디버그 정지 안내 보강 — 디버그 시작 시
main()정지와Break at address "0x0800xxxx" ... no debug information(부트로더 영역) 팝업이 정상 동작임을 트러블슈팅 문서에 추가했습니다.Resume(F8) 로 진행하면 됩니다.
호환성 안내¶
| 항목 | 영향 |
|---|---|
사용자 코드 (Control_Setup / Control_Loop) |
변경 없음 — 재빌드만 하면 실수 printf·malloc 이 정상 동작 |
| API 시그니처 | 변경 없음 |
| Rev 1.1 SDK | v2.3.1 그대로 — 이번 릴리즈 대상 아님 |
| KIT H10 펌웨어·컨텐츠 파일 | v2.3.0 그대로 — 추가 업데이트 불필요 |
| 부트로더 | v1.1.0 그대로 — 재설치 불필요 |
| USB 로그 디코더 | 파이썬 스크립트 → 설치형 실행 파일(Releases). 실시간 CDC 샘플은 유지 |
| 사용자 데이터 (USB 메모리 로그 등) | 변경 없음 — 데이터 포맷 호환 |