본문 바로가기

카테고리 없음

예제로 보는 Pragma setting 7

------------ 'Tasking MDS 세미나'에서 작업했던 내용을 정리합니다. ------------

 

1. 모든 변수들의 align을 4로 설정

#pragma align 4
char var;
char var0;
char var1;
char var2[10];
#pragma align restore

 

2.모든 변수를 near 타입으로 변환

하기 프라그마에서 size 2 속성은 프라그마 설정 안의 변수 사이즈가 2이하인 경우만 Pragma를 적용한다는 파라미터이다. 따라서 var6는 .bss로 LMU에 속한다.

#pragma default_near_size 2
char var3;
char var4;
char var5;
char var6[10];
#pragma default_near_size restore

3. Func2, main 을 all_fun이란 이름으로 정의하고 pflash2에 위치시키기

.c 파일

#pragma section code "all_func"
void func2(void){
	var2[1] = var;
}

int main(void)
{

	func0();
	func1();
	func2();
	printf( "Hello world\n" );
}
#pragma section code restore

lsl 파일

section_layout mpe:vtc:linear
{
	group (run_addr=mem:mpe:pflash2, ordered)
	{
		select ".text.all_func";
	}
	
}

4. func0, func1을 모든 코어의 pspr 메모리에 위치

code 이기때문에 __clone 테그를 입력하면 pspr로  위치된다.

void __clone func0(void){
	var = 10;
	var0 = var;
}
void __clone func1(void){
	var1 = var;
}

 

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