본문 바로가기
임베디드 개발/TMS320F2838x (C28x)

CCS ] Breakpoint 사용법

by eteo 2023. 2. 12.

 

 

링크 :

https://software-dl.ti.com/ccs/esd/documents/ccs_breakpoint_watchpoint_c2000.html

 

Hardware Breakpoints and Watchpoints in CCS for C2000 devices

 

software-dl.ti.com

 

 

 

Breakpoint 탭에 들어가면 다음과 같은 세부 기능을 사용할 수 있다.

 

  • Breakpoint : Software Breakpoint
  • Hardware breakpoint : halt execution of the processor at a pre-defined place in the code.
  • Hardware watchpoint : allow execution to halt when a read or write access is made to a data variable address.
  • Count Event : can be used to measure clock cycles between two points in the code.
  • Data Access Count : can be used to determine the number of times a data variable address has been accessed.

 

Software breakpoint를 제외한 4가지 기능은 모두 on chip hardware resource를 사용하므로 동시에 사용할 수 있는 개수의 한계가 있다. 이는 코어별로 정해져있으며 C28x의 경우 두 개의 hardware breakpoint를 쓸 수 있다.

 

 

 

 

❗여기서 hardware breakpoint와 software breakpoint의 차이는?

실행 코드를 플래시 메모리에 다운로드 후 코드 수행 중에 사용하는 것이 hardware breakpoint이고, 코드를 RAM상에 실행시킨 상태에서 사용하는 것이 software breakpoint이다. 보통 hardware breakpoint는 코어에서 지원하는 개수 만큼의 제한이 있지만 software breakpoint는 개수 제한없이 쓸 수 있다.

 

 

 

 

그럼 breakpoint는 잘 아는 기능이니 나머지 watchpoint, count event, data access count에 대해서 알아보자.

 

 

 

 

 

Watchpoint

 

 

 

Location에는 주소값 또는 심볼, 전역변수명을 넣을 수 있다.

 

읽기 엑세스가 있을 때 중단할지 쓰기 엑세스가 있을 때 중단할 지 선택한다.

 

 

 

우클릭 후 Breakpoint Properties 에 들어가서 특정값(With Data Value)이 읽기/쓰기 될 때만 중단되도록 설정할 수 있고 Data Size(16bit, 32bit)와 Mask를 설정할 수도 있다.

 

예를들어 아래와 같이 설정하면 0x300000 번지에 0x101 값이 쓰일 때만 Halt한다.

 

 

 

 

 

 

 

 

Count Event

 

 

 

Breakpoint를 하나 더 설정하고

 

 

 

Breakpoint Properties 의 Action을 remain Halted가 아니라 Refresh All windows로 선택한다.

 

중단점의 실행 주기를 계산하는 데 유용하다.

 

 

 

 

 

 

 

Data Access Count

 

 

Location에 메모리 주소, 변수명 등을 입력한다.

 

Refresh window를 해주어야 화면에 업데이트가 반영된다.

 

Reset Count on Run을 true로 하면 중단 이후 재실행 때마다 count를 reset할 수 있다.