※ 해당 글은 개인 공부 기록을 남겨놓는 것이 목적임으로 오류가 발생할수 있습니다.
오류 또는 업데이트된 사항이 있다면 댓글로 알려주시면 감사하겠습니다.
ST LINK V2란?
ST LINK V2는 STM32와 STM8 제품에 사용 가능한 디버거 겸 프로그래머(다운로더)이다.
JTAG / SWD 인터페이스를 이용해서 STM8 / STM32 프로그래밍 라이팅 및 디버깅 할 수 있다
임베디드 디버깅 인터페이스
JTAG(Joint Test Action Group)?
디지털 회로에서 디지털 I/O를 위해 직렬 통신 방식으로 출력 데이터를 전송하거나 입력 데이터를 수신하는 방식
대표적인 임베디드 디버거 통신하거나 플래시 메모리에 통합 바이너리 다운로드 인터페이스 방식
JTAG 인터페이스
1. TDI(Test Data In) : 데이터 입력
2. TDO(Test Data Out) : 데이터 출력
3. TCK(Test Clock) : 클럭 신호
4. TMS(Test Mode Select) : 테스트 모드 선택 제어 신호
5. TRST(Test Reset) : 리셋 신호
6. VCC + GND
SWD(Serial Wire Debug)?
SWD는 ARM사의 코어 기반 표준 디버깅 인터페이스 방식
표준 2선 사용
SWD 인터페이스
1. SWDIO(Serial Wire Debug I/O) : 단일 양방향 데이터 핀.
2. SWCLK(Serial Wire Clock) : 클럭 신호
3. TRST(Test Reset) : 리셋 신호
4. VCC 또는 Vref + GND
프로그램 개발이 완료 시 실행이미지가 만들어진다. 프로젝트 익스플로러의 프로젝트 하위 디렉터리에 Binaries라는 디렉터리가 생성. Binaries 디렉터리를 내부를 보면 {프로젝트명}.elf 라는 파일이 생성되어 있다.
elf란 Executable and Linkable Format의 약자로, 이러한 확장자를 갖는 파일은 실행파일 또는 실행이미지라고 부른다.
이 파일이 STM32 ARM CHIP의 내부 플래시 메모리에 씌여지면 절차에 따라 실행되게 된다.
실행이미지를 플래시 메모리에 쓰는 것을 다운로드(download)라고 부른다.
STM32CubeIDE에는 다운로드를 하는 방법으로 툴바 버튼을 클릭하거나 메뉴바의 Run->Run을 실행한다. 또 한가지 방법으로 디버그 기능을 이용하는 것이다.
STM32CUBEIDE 프로젝트 위쪽 창에 나타나는 기능 아이콘
이름 | 단축키 | 역 |
Terminate and relaunch | - | 디버그를 종료한 후 재실행한다. |
Resume | F8 | 다음 브레이크 포인트를 만날 때까지 프로그램을 진행한다. 클릭하여 프로그램이 진행되는 동안에 아이콘은 회색으로 변한다. |
Suspend | - | 진행중인 프로그램을 멈춘다. 프로그램 실행중이 아닐 경우에는 회색으로 변한다. |
Terminate | Ctrl + F2 | 프로그램을 종료한다. 종료후에는 다시 C/C++ Perspective로 화면구성을 변경한다. |
Step Into | F5 | 코드 한 줄씩 실행하되 함수일 경우 그 함수 안으로 들어가 진행한다. |
Step Over | F6 | 코드 한 줄씩 진행하며 함수가 있을 경우 한번에 처리하고 다음 줄로 넘어간다. |
Step Return | F7 | 현재 함수에서 상위 함수로 리턴한다. |
STM32CUBEIDE 프로젝트 우쪽 창에 나타나는 기능 아이콘
종류 | 역할 | ||
Variables | 프로그램의 진행이 멈춰 있는 위치를 기준으로 정의된 변수들과 변수들의 자료형, 저장된 값을 보여준다. | ||
Breakepoints | 사용자가 설정한 브레이크포인트의 리스트를 보여준다. Break point를 사용하려면 해당 코드에 커서를 놓고 F9를 누른다. Break point를 설정한 상태에서 디버깅하게 되면 Break point 커서가 놓여진 코드 전까지 실행한다. |
||
Expressions | 변수 이름을 입력하거나 수행해보고 싶은 명령어를 직접 입력하여 그 결과 값을 관찰할 수 있다. 프로그램이 정지된 시점에서 확인 가능하다. | ||
Registers | 범용 레지스터에 저장된 값을 볼 수 있다. | ||
Live Expressions | 변수 이름을 입력하거나 수행해보고 싶은 명령어를 직접 입력하여 그 결과 값을 관찰할 수 있다. 프로그램이 진행되는 시점에서도 확인 가능하다. | ||
SFRs | 특수목적 레지스터(special function register, SFR)의 값을 볼 수 있다. |
다음 포스팅에서는 SWV와 Live Expressions 실제 사용법에 대해 포스팅 예정이다
'Stm32 > 개인 학습' 카테고리의 다른 글
MSR(Magnetic Strip Reader) 프로토콜 (0) | 2025.01.02 |
---|---|
[PWM] preload register (0) | 2024.12.27 |
Timer[4] Input capture (0) | 2024.07.14 |
HAL 라이브러리 SPI 함수 정리 (0) | 2024.07.07 |
HAL 라이브러리 I2C 함수 정리 (0) | 2024.07.07 |