콘텐츠로 이동

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 메모리 로그 등) 변경 없음 — 데이터 포맷 호환

관련 자료