본문 바로가기

programmer/Embedded

Tasking사용 Infineon linker script 분석 1

제어기 개발을 진행하다 보면 메모리 사용 방법에 대한 고민을 하기 시작해야하는 시점이 온다.

자신이 개발한 소스코드가 하드웨어 메모리 기반으로 최적화 된 성능을 발현 시키고 싶다면.

Linker Script를 사용한 메모리 Positioning을 시도해 보는것이 좋다.(feat. 교통정리)

예를 들어 멀티코어 환경(코어가 2개 이상인 경우)에서 코어에 바로 붙어있는 메모리(near)를 사용하고 모든 코어에서 사용되는 메모리는 LMU를 사용하면 메모리 접근을 최소화 할 수 있다. 

각 메모리 위치별 수행시간 차이를 분석한 정보는 하기 링크에서 확인해 보자.

https://suho413.tistory.com/entry/%EB%A9%94%EB%AA%A8%EB%A6%AC-Section%EB%B3%84-%EC%88%98%ED%96%89%EC%8B%9C%EA%B0%84-%EC%B0%A8%EC%9D%B4-%EB%B6%84%EC%84%9D

Infenion의 각 CPU는 PMI(PSPR), DMI(DSPR)를 각각 가지고있고 LMU RAM을 공용으로 사용한다. PMU는 공통 코드를 저장한다. (각각의 코어에있는 PSPR, DSPR은 다른 코어에서도 사용 가능 하지만 접근하기 위한 연산이 증가하므로 권장하지 않는다)

Core가 3개인 Infenion Memory map 구조

좀더 구체적으로 들어가면 32bit 인피니언 칩셋의 메모리는 0x0000 0000 ~ 0xFFFF FFFF 까지 존재하고 이를 16진수의 앞머리(0x0 0x1 0x2 0x3 ... 0xC 0xD 0xE 0xF)로 'Segments 0~15'로 명명하여 사용한다. 

각 MCU 별 Segment사용이 다를 수 있기 때문에 각 MCU의 User Manual  'Contents of the Segment'를 확인해야 한다.

- Segments 0-4는 사용하지 않고

- Segments 5-7은 PSPR과 DSPR의 변수 영역으로 사용한다.

- Segments 8은 코드영역(ROM)으로 사용되고

- Segments 9는 다시 LMU 변수영역으로 사용된다.

각 메모리 타입 설명 PSPR, DSPR, LMU 설명

 

 

<참고 링크>

https://www.infineon.com/cms/en/product/microcontroller/32-bit-tricore-microcontroller/32-bit-tricore-aurix-tc2xx/aurix-family-tc297ta-adas/

 

AURIX™ Family – TC297TA (ADAS) - Infineon Technologies

 

www.infineon.com

Tc29x User Manual

https://www.infineon.com/dgdl/Infineon-TC27x_D-step-UM-v02_02-EN.pdf?fileId=5546d46269bda8df0169ca09b44623ed

 

Memory Map 간략 설명

https://www.infineon.com/dgdl/Infineon-AURIX_Memory_Maps-Training-v01_00-EN.pdf?fileId=5546d46269bda8df0169ca77879b255b

 

DSPR, PSPR 용어 설명

https://www.infineon.com/dgdl/ap3216810_TriCore_Performace_Optimization.pdf?fileId=db3a304336797ff90136a131cf343b05

Memory_Access_Performance 예)

https://www.infineon.com/dgdl/Infineon-AURIX_Memory_Access_Performance_1_KIT_TC297_TFT-Training-v01_00-EN.pdf?fileId=5546d46272e49d2a0172e73cd4290238

*MyInfenion 맴버라면 더욱 많은 정보를 받아 볼 수 있다.(회사 기준으로 라이센스를 발급해준다.)

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