본문 바로가기

programmer/Embedded

Linker Section에 따른 메모리 매핑 공간 3

Map파일을 보다보면 알수 없는 기호들이 있다. lnear, abs18, csa등 알아야하나 싶은 명칭들이 많고 이를 왜 구분하고 사용하는지 모르고 쓰는경우들이 많다.

이번에는 이런 섹션에 따라 매핑되는 공간에 대해 알아보자.

먼저 주소 공간 종류에는 하기와 같은 구분이 있다.

- linear: 4GB의 모든 주소 공간의 지정

- abs18: 각 세그먼트의 처음 16KB(0xX000_000 ~ 0xX000_3FFF)의 주소공간

- abs24: 각 세그먼트의 처음 16KB(0xX000_000 ~ 0xX01F_FFFF)의 주소공간

-csa: Context Save Area로 context가 저장되는 공간.

 

모든 것을 다 안다는것은 좋지만 고닲은 일이다. 이 중에서 딱 linear, abs18 만 보도록하자. 

- linear (4GB 모든 주소 공간의 지정)

.Text : 코드

.bss .zbss .data: 변수

- abs18 (0xX000 0000 ~ 0xX000 3FFF 까지의 공간 == 메모리 주소 앞 16KB 까지)

zdata : near data(초기화 됨)

zrodata : near const data

zbss : near data(초기화 안 됨)

만 기억하자.

이는 이후에 lsl 파일에서 요긴하게 사용하고 map 파일을 분석하는대도 많은 도움을 준다.

 

<lsl 맞보기>

 Space mpe:vtc:linear (MAU = 8bit)
vtc 모든 코어에서 접근 가능

+ Space mpe:tc0:csa (MAU = 8bit)
tc0 : 코어 0에서만 접근 가능.

mpe: 멀티 프로세서

csa : context switching area

 

반응형
사업자 정보 표시
라울앤알바 | 장수호 | 서울특별시 관악구 봉천로 13나길 58-10, 404호(봉천동) | 사업자 등록번호 : 363-72-00290 | TEL : 010-5790-0933 | Mail : shjang@raulnalba.com | 통신판매신고번호 : 2020-서울관악-0892호 | 사이버몰의 이용약관 바로가기