본문 바로가기

OS/vxworks

SBC310 AMP 설정

SBC310에서 AMP 모드로 동작시 각각의 코어들이 메모리를 공유하여 데이터를 주고 받을 수 있다. 커널 Configuration에서는 설정을 할수 없고(BSP Version 2.0/1.3 버전까지는...) BSP 폴더내의 rsSBC310.h를 열어 조작해야한다. 코드를 열어 INCLUDE_SM_HIGH_MAP을 설정해 주면된다. 이로써 Core0과 Core1은 SBC_SHARED_MEM_ADRS 주소를 통해 SBC_SHARED_MEM_SIZE 만큼의 공유 영역을 가지게 된다.

 

  1. /* Define to move the intercore shared */
    /* memory component to the top of      */
    /* core 1 physical memory              */

    #define INCLUDE_SM_HIGH_MAP

    #ifdef INCLUDE_SM_HIGH_MAP
    #define SBC_SHARED_MEM_ADRS    0xF8000000
    #define SBC_SHARED_MEM_SIZE    0x04000000

    #else /* INCLUDE_SM_HIGH_MAP */
    #define SBC_SHARED_MEM_ADRS    0xFEE00000
    #define SBC_SHARED_MEM_SIZE    0x00100000
    #endif /* INCLUDE_SM_HIGH_MAP */

 

우측 콘솔이 Core0이고 좌측 콘솔이 Core1이다. 우측콘솔에 임의의 값을 넣었을때 좌측콘솔에서도 변경된 값을 확인할 수가 있다.

 

AMP_CORE01.JPG

 

0xFEE00000 의 영역을 사용하지 않은 이유는, 해당 영역을 시스템 자원들도 사용하기 때문에 사용자가 사용할시 예기치 않은 상황이 발생할 수 있기 때문이다.

이 글은 스프링노트에서 작성되었습니다.