Memory Layout Viewer

사용자 정의 메모리 주소 데이터를 바탕으로 데이터시트급 메모리 맵 비주얼 렌더링

영역 수0
선언된 용량0 B
빈 주소 구간0
충돌 영역0

새 메모리 영역 추가

방향

메모리 영역 목록

시작 주소 끝 주소 크기 설명 색상 방향 삭제

메모리 맵 미리보기

주소 입력과 렌더링 기준

링커 스크립트 검증 체크리스트

FIELD NOTE · MEMORY MAP

링커 스크립트와 메모리 맵을 교차 검증하는 방법

메모리 영역은 시작 주소와 끝 주소가 모두 포함되는 범위로 계산합니다. 시각화는 배치를 이해하기 위한 보조 수단이며, 실제 링크 결과는 map 파일과 ELF 섹션 정보를 기준으로 확인해야 합니다.

주소와 크기 계산

포함 범위의 크기는 End - Start + 1입니다. 반대로 시작 주소와 크기를 알고 있다면 끝 주소는 Start + Size - 1입니다. 예를 들어 0x20000000부터 128 KiB는 마지막 주소가 0x2001FFFF입니다.

실전 사용 순서

  1. 데이터시트의 Flash, SRAM, 주변장치 주소를 입력합니다.
  2. 링커의 ORIGIN과 LENGTH를 같은 단위로 비교합니다.
  3. 겹침과 빈 구간을 확인합니다.
  4. 빌드 후 map 파일의 실제 섹션 크기와 다시 비교합니다.

검증 기준

  • 연속 영역은 이전 끝 주소 + 1이 다음 시작 주소인지 확인합니다.
  • 1 byte 영역과 4 GiB 경계처럼 off-by-one 오류가 쉬운 값을 시험합니다.
  • KiB는 1024 bytes, MiB는 1024² bytes로 계산합니다.
  • 스택과 힙의 성장 방향은 링커와 런타임 구현을 함께 확인합니다.

주의사항

예약 영역이 비어 보인다고 임의로 사용하면 안 됩니다. 부트로더, 옵션 바이트, 보안 영역, ECC, alias 주소 및 bit-band 같은 특수 매핑이 존재할 수 있습니다. 이 도구는 MPU 권한이나 캐시 속성까지 판단하지 않습니다.

FAQ

주소가 겹치면 항상 오류인가요? 일반 RAM/Flash 배치에서는 오류 가능성이 높지만 alias 영역처럼 동일 메모리를 여러 주소에 매핑하는 MCU도 있습니다.

Reserved 구간도 용량에 포함되나요? 주소 공간에는 포함되지만 애플리케이션이 사용할 수 있는 메모리로 계산하면 안 됩니다.

그림 높이가 실제 용량 비율과 다른 이유는? 압축 모드는 작은 영역의 라벨을 읽을 수 있도록 최소 높이를 보장합니다. 정확한 비교에는 표시된 주소와 크기를 사용하세요.

검토 범위: 포함 주소 계산, KiB/MiB 변환, 겹침·공백 판정. 최종 배치는 데이터시트, linker map 및 실제 ELF 정보를 함께 확인합니다.
처리 완료