728x90
반응형
맨 위로 올라가기
What is Debugger and Programmer.

 

마이크로컨트롤러 개발에서 Debugger와 Programmer는 중요한 역할을 하는 도구이다.
이들은 마이크로 컨트롤러 기반의 시스템 개발 및 테스트 과정에서 필수적이다.

 

■ 디버거 (Debugger)

디버거는 소프트웨어 개발 과정에서 발생하는 오류(버그)를 찾아내고, 수정하는 데 사용되는 도구이다.
마이크로컨트롤러 개발에서 디버거의 주요 기능은 다음과 같다.

  1. 코드 실행 추적:
    디버거를 사용하여 개발자는 마이크로컨트롤러에서 실행되는 프로그램의 각 단계(Step)를 한 단계씩 실행하고 관찰할 수 있다. 이를 통해 코드가 어떻게 동작하는지 정확히 이해할 수 있다.
  2. 변수 및 메모리 검사:
    실행 중인 프로그램의 변수 값, 메모리 상태 등을 검사하고 변경할 수 있다.
    이는 프로그램의 상태를 파악하고 문제가 발생하는 원인을 찾는 데 유용하다.
  3. 중단점 설정:
    개발자는 코드의 특정 지점에 중단점(break-point)을 설정할 수 있다.
    이를 통해 프로그램이 해당 지점에서 멈추고, 그 시점에서의 변수 값이나 프로그램의 상태를 검토할 수 있다.
  4. 실행 흐름 제어:
    프로그램의 실행을 시작, 중지, 재개할 수 있으며, 단계별 실행(Step into, over, return 등) 을 통해
    프로그램의 흐름을 제어할 수 있다.

 

■ 프로그래머 (Programmer)

프로그래머는 마이크로컨트롤러에 소프트웨어 코드를 업로드하는 데 사용되는 장치이다.
이 도구의 주요 기능은 다음과 같다.

 

  1. 프로그램 업로드:
    개발된 소프트웨어를 마이크로컨트롤러의 메모리(일반적으로 FLASH(ROM))에 업로드 한다.
    이는 마이크로컨트롤러가 프로그램을 실행할 수 있도록 하는 핵심 단계이다.
  2. 메모리 관리:
    마이크로컨트롤러의 메모리를 관리하고, 필요한 경우 소프트웨어를 수정하거나 업데이트하기 위해 메모리를
    지우고 다시 프로그래밍 한다.
  3. 호환성 및 인터페이스:
    다양한 마이크로컨트롤러와 호환되며, USB, 직렬 연결, JTAG, SWD 등 다양한 인터페이스를 지원한다.
  4. 펌웨어 관리:
    일부 고급 프로그래머는 마이크로컨트롤러의 펌웨어 업데이트와 관리 기능을 제공한다.

디버거와 프로그래머는 종종 하나의 장치에서 통합되어 제공되기도 한다.
예를 들어, ST-Link와 같은 도구는 마이크로컨트롤러에 코드를 업로드하는 프로그래머의 기능과 코드 디버깅을 위한
디버거 기능을 모두 제공한다. 이러한 통합 도구는 개발 과정을 간소화하고 효율성을 높여준다.

 


Description of the Official Manual

 

ST-Link/V2는 STM8 및 STM32 마이크로컨트롤러를 위한 In-Circuit Debugger/Programmer이다.

*In-Circuit은 특정 장치나 시스템이 작동 중인 회로(즉, 회로 내)에 직접 연결되어 있을 때 사용된다.

 

Single Wire Interface Module(SWIM)과

JTAG/Serial  Wire Debugging(SWD) Interface는

어떤 STM8 또는 STM32 마이크로컨트롤러와도 Application Board에서 운영되는 통신을 용이하게 한다.

*Single Wire Interface Module(SWIM):
- SWIM은 주로 STMicroelectronics의 STM8 마이크로컨트롤러 시리즈에서 사용되는 프로그래밍 및 디버깅 인터페이스이다. SWIM은 이름에서 알 수 있듯이 단일 와이어(한 개의 신호선)을 사용하여 마이크로컨트롤러와 통신한다.
이 인터페이스는 마이크로컨트롤러에 프로그램을 업로드하고, 메모리를 읽고 쓰며, 디버깅 중에 프로세서의 실행을 제어할 수 있게 해준다.
- SWIM을 사용하는 것은 마치 한 줄의 전화선을 통해 데이터를 보내고, 받고, 대화하는 것과 같다.
단일 와이어를 통해 마이크로컨트롤러와 통신하면서, 필요한 모든 정보를 전달하고 제어할 수 있다.

 

* JTAG/Serial Wire Debugging(SWD) Interface

- JTAG(Joint Test Action Group)과 SWD는 ARM 기반 마이크로컨트롤러,
예를 들어 STM32 시리즈에서 사용되는 디버깅 및 프로그래밍 인터페이스이다.
JTAG은 복수의 신호선(보통 4개 이상)을 사용하는 반면, SWD는 더 적은 수의 신호선(2개)를 사용한다.
이들 인터페이스를 통해 개발자는 마이크로컨트롤러의 메모리에 접근하고, 코드를 업로드하며, 디버깅을 수행할 수 있다.
- JTAG과 SWD를 사용하는 것은 마치 다기능 리모컨을 사용하여 복잡한 전자 장치를 제어하는 것과 비슷하다.
JTAG은 여러 버튼(신호선)을 갖춘 리모컨처럼 다양한 기능을 제공하지만, SWD는 더 단순화된 버전이며 필수적인 기능에
초점을 맞춘 리모컨과 같다. 이 리모컨을 통해 마이크로컨트롤러의 다양한 기능을 제어하고 정보를 교환할 수 있다.

2024.01.07 - [Embedded System] - JTAG(Joint Test Action Group)

 

USB Full-Speed Interface는 PC와의 통신을 가능하게 하며 다음을 통해 이루어진다.

* ST Visual Develop(STVD), ST Visual Program(STVP), IAR, STM32CubeIDE, STM32CubeProgrammer 등.

 

Feature.

- USB 커넥터에 의해 공급되는 5V 전원

- USB 2.0 Full-Speed 호환 인터페이스

- SWIM 기능(Single wire interface module)

- JTAG/SWD 기능(Serial wire debugging)

- Direct Firmware Upload 기능 지원(DFU)

 

ST-Link/V2 product contents

 

  • A: USB Standard to Mini Cable
  • B: ST-Link/V2 Debugging and Programming
  • C: SWIM Low-Cost Connector
  • D: 한쪽 끝에 표준 ERNI 커넥터가 있는 SWIM flat ribbon
  • E: 20Pin 커넥터가 있는 JTAG 또는 SWD 플랫 리본

 

Hardware Configuration
ST-Link/V2는 고성능 Arm Cortex- M3 코어를 탑재한 STM32F103C8 장치를 중심으로 설계되었다.
이 장치는 TQFP48 패키지로 제공된다.

 

 

  • A: STM32 JTAG and SWD target Connector
  • B: STM8 SWIM target connector
  • D: Communication activity LED
728x90
반응형

'Firmware & Embedded > ARM' 카테고리의 다른 글

ST-Link Debugging  (0) 2024.01.10
JTAG(Joint Test Action Group)  (0) 2024.01.07
Startup code  (0) 2024.01.07
Linker Script - Memory  (0) 2024.01.07
Code Formatter Profile  (0) 2024.01.06

+ Recent posts