Vision SDK Usecase 사용 방법
TI/TDA3

Vision SDK Usecase 사용 방법

728x90

테스트 환경

  • Ubuntu 22.04
  • TDA3XEVM
  • PROCESSOR_SDK_VISION_03_08_00_00

Vision SDK는 다양한 Link 모듈 (Capture, Alg, Display 등)을 조합해 하나의 파이프라인을 구성한다. 이 파이프라인은 영상 입력 → 알고리즘 처리 → 디스플레이 출력처럼 HW/SW 모듈의 연결 구조(토폴로지)를 명시한다
usecase이러한 링크들의 연결 구조를 정의한다.

 

"vision_sdk/apps/src/rtos/usecases/" 폴더에 다양한 usecase 예제가 있으니, 참고하면 된다. Vision SDK에서는 usecase를 생성할 수 있는 tool이 존재한다. 본 글은 tool을 사용해서 usecase를 만들고 빌드하는 과정을 설명한다.

패키지 설치

sudo apt-get update 
sudo apt-get install build-essential flex bison graphviz

UsecaseGen 툴 빌드 방법

빌드 실행

cd vision_sdk/tools/vision_sdk_usecase_gen
make
  • 성공 시 bin 폴더 안에 vsdk_linux.out 실행 파일이 생성됨

Usecase 설정 파일 작성

my_config.txt 안 파일에 아래와 같이 작성

UseCase: chains_vipSingleCam_Display 
Capture(IPU1_0) -> Display(IPU1_0)
 
  • UseCase:  파일/함수 접두어로 사용
  • 링크 연결은 -> 로 사용
  • Alg_XXX(DSP1_0)과 같이 알고리즘 포함도 가능
  • IPC 링크는 자동 삽입됨

Usecase 파일 자동 생성

vision_sdk/apps/tools/vision_sdk_usecase_gen/bin 폴더로 이동해 my_config.txt를 기반으로 한 usecase 파일 생성

./vsdk_linux_out -file my_config.txt

출력 디렉토리 지정

기본적으로 bin 폴더 아래 생성되지만, 아래 옵션으로 디렉토리 지정이 가능하다.

./vsdk_linux_out -file my_config.txt -path ./output

이미지 포함 (DOT 기반)

-img 옵션을 추가하면, 아래와 같이 구조에 대한 이미지가 생성된다.

./vsdk_linux_out -file my_config.txt -img

 

생성된 파일 위치 및 구성

기본적으로 다음과 같은 파일들이 생성됨

 

생성된 파일 복사 및 정리

빌드를 위해 생성된. c,. h 파일들을 다음 위치로 복사

vision_sdk/apps/src/rtos/usecases/my_usecase/

SRC_FILES.MK 작성

SRCDIR += $(vision_sdk_PATH)/apps/src/rtos/usecases/my_usecase 
SRCS_$(IPU_PRIMARY_CORE) += \ chains_my_usecase.c \ chains_my_usecase_uc.c

cfg.mk 작성 

NEED_PROC_IPU1_0=yes

Config 파일에 등록

vision_sdk/apps/configs/<MAKECONFIG>/cfg.mk 수정

여기서 MAKECONFIG는 사용 중인 soc 기준으로 변경하면 된다.

본 글은 TDA3XEVM을 사용하기에 tda3xx_evm_bios_all 폴더이다.

UC_LIST += UC_my_usecase

vision_sdk/apps/configs/<MAKECONFIG>/uc_cfg.mk 수정

UC_LIST += UC_my_usecase

chain 등록 

이후  vision_sdk/apps/src/rtos/common 폴더에 원하는 chain에 usecase를 등록 예를 들어 chains_main_bios_misc.c에 메뉴 항목을 추가한다면 아래와 같이 구성한다.

char gChains_menuMiscTests[] = {
    ...
#ifdef UC_my_usecase
    "\r\n x: Run My Usecase",
#endif
    ...
};

void Chains_menuMiscTestRun() {
    ...
#ifdef UC_my_usecase
    case 'x':
        Chains_my_usecase(&gChains_usecaseCfg);
        break;
#endif
}

빌드 진행

make -s -j depend
make -s -j

 

 

728x90

'TI > TDA3' 카테고리의 다른 글

I2C SLAVE MODE  (0) 2025.06.03
CSL Example 프로그램 사용 방법  (0) 2025.04.12
TDA3-EVM PDK Build  (0) 2025.04.12
mflash  (0) 2025.03.19
TDA3xEVM Vision SDK Build  (0) 2025.03.18