기존 메모리 구조는 하기 이미지와 같다.
각 코어별 DSPR에 위치 시키기위해서는 __Private#를 사용하면 된다.
/*****************************************************
*
* TASKING_EDU.c
*
* Description : Hello World in C, ANSI-style
*
*/
#include <stdio.h>
char var;
char __private0 var0;
char __private1 var1;
char __private2 var2[10];
void /*__at(0x80000012)*/__private0 func0(void){
var = 10;
var0 = var;
}
void __private1 func1(void){
var1 = var;
}
void __private2 func2(void){
var2[1] = var;
}
int main(void)
{
func0();
func1();
func2();
printf( "Hello world\n" );
}
변경된 메모리 구조(단 var2는 메모리가 크므로 abs18이 아닌 linear에 자동 할당 되었다.)
__clone 모든 DSPR에 설정하는 방법 적용 (모든 코어에서 하나의 Function을 사용하는 경우)
/*****************************************************
*
* TASKING_EDU.c
*
* Description : Hello World in C, ANSI-style
*
*/
#include <stdio.h>
char var;
char __private0 var0;
char __private1 var1;
char __private2 var2[10];
void /*__at(0x80000012)*/__private0 func0(void){
var = 10;
var0 = var;
}
void __clone func1(void){
var1 = var;
}
void __private2 func2(void){
var2[1] = var;
}
int main(void)
{
func0();
func1();
func2();
printf( "Hello world\n" );
}
__clone 결과 마지막 노란색 표시에서 보듯이 tc0, tc1, tc2에 할당 되었다.
반응형