ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [임베디드] Trace32 API Ping Test
    카테고리 없음 2025. 5. 22. 09:07

    Trace32란?

    : 임베디드 시스템에서 사용하는 디버깅 도구
    임베디드 시스템용 IDE 라고 이해하면 편하다.
    T32를 임베디드 장치에 연결하여 원하는 코드에 Break를 찍을 수도 있고, 특정 변수의 값을 변경할 수도 있다.
    우리 회사에선 트레이스 삼십이 또는 티삼이라고 불리고 있으며, 가끔 티사미 라고 귀엽게 불리기도 한다.
    티사미는 하드웨어 디버깅 장비 + 전용 소프트웨어가 한 세트다!

    Trace32 API

    T32 및 T32 SW를 제어하기 위한 API 또한 사용이 가능하다.
    해당 API를 사용하면 SW를 직접 제어하지 않고도 반복되는 작업을 자동화 할 수 있다.

    Trace32 API 지원 범위
    디버거 연결 및 해제
    타겟 상태 확인 - 타겟이 실행 중인지, 정지상태인지 확인이 가능하다
    메모리 읽기/쓰기 - 타겟 메모리에 접근하여 값을 읽고 쓸 수 있다.
    레지스터 읽기/쓰기 - CPU의 레지스터 주소에 접근하여 값을 읽고 쓸 수 있다.
    Symbol처리 - Symbol 을 접근하고, Symbol의 주소를 읽어올 수 있다.
    Break point 제어 - 소프트웨어/하드웨어 브레이크 포인트를 설정하고 제거할 수 있다.
    PRACTICE 명령어 및 cmm 스크립트 실행
    에러/메세지 로그 파싱
    콜백/이벤트 알림


    Trace32 Ping Test
    1) Config.t32 파일 수정
    - C:/T32에 위치한 config.t32 파일에 TCP 설정에 필요한 코드를 추가한다.
    - 코드에서 어떤 config파일을 볼지 지정이 가능하기 때문에, 여러개의 config 파일을 만들어서 사용해도 된다.
    // 대충 config.t32 파일 수정하는 그림


    2) T32Start S/W 실행 및 API Port 설정
    - T32 SW를 실행시킨 후 테스트를 위한 Simulator를 하나 생성한다.
    - API사용을 위해 Interface - API Port - Use Port를 yes로 설정한다.
    - API Port Value를 config.t32 파일과 동일하게 20000 으로 설정한다.
    // 대충 T32Start 캡쳐짤


    3) T32 API를 사용할 Python Project 생성
    - python project 생성 후 ‘t32api64.dll’ 파일을 Project root path로 복사해온다. 해당 파일은 ~/demo/api/python/legacy 에 있음
    - main.py 생성 후 아래와 같이 코드를 구현하고 테스트한다. (API Guide문서와 동일)

    import ctyps
    import enum
    
    t32api = ctypes.cdll.LoadLibrary(‘t32api64.dll’)
    
    T32_DEV = 1
    
    t32api.T32_Config(“b”NODE=”, b”localhost”)
    t32api.T32_Config(“b”PORT=”, b”20000”)
    t32api.T32_Config(“b”PACKLEN=”, b”1024”)
    
    rc = t32api.T32_Init()
    rc = t32api.T32_Attach(T32_DEV)
    rc = t32api.T32_Ping()
    
    rc = t32api.T32_Exit()


    4) T32 SW의 ‘B:area’ 에서 Ping이 들어오는 것을 확인할 수 있다!



    끄읕!
    일은 API 한테 시켜놓고 탱자탱자 놀 수 있는 프로그램을 만들어보자!!
    일명 노사미 프로젝트!  키킥

Designed by Tistory.