GDB에서 RTT
브레이크 포인트로 멈출 수는 있지만, 거기에서 재개시킬 수 없기 때문에, 흘리면서 동작을 보고 싶은 분이 많다.
그러한 때에, SEGGER RTT라고 하는 것이 사용할 수 있을 것 같다.
Debugging with Real Time Terminal
위는 Keil에서의 설명이지만, 그 중에서는 GCC+GDB(eclipse)이므로, 그 환경에서 시험한다.
Makefile
쓰는 방법은 각 사람 다르다고 생각하기 때문에, 이런 느낌으로.
이번에는, printf풍의 API를 사용하고 싶기 때문에, 그것도 추가하고 있다.
C_SOURCE_FILES += \
$(SDK_PATH)/components/drivers_ext/segger_rtt/RTT_Syscalls_GCC.c \
$(SDK_PATH)/components/drivers_ext/segger_rtt/SEGGER_RTT.c \
$(SDK_PATH)/components/drivers_ext/segger_rtt/SEGGER_RTT_printf.c
INC_PATHS += -I$(SDK_PATH)/components/drivers_ext/segger_rtt
소스 파일
헤더 파일.
#include "SEGGER_RTT.h"
로그.
첫 번째 "0"은 Channel과 같습니다.
nRF51822에서 시도한 결과 1로 설정하면 HardFault가 발생했습니다.
SEGGER_RTT_printf(0, "START\r\n");
SEGGER_RTT_printf(0, "err_code = %u\r\n", err_code);
실행
우리는 eclipse이므로, 우선은 보통으로 SEGGER에서의 디버그를 개시시킨다.
그렇다면 SEGGER J-Link Control panel이라는 앱이 일어나지 않을까 생각한다.
(Windows에서 하고 있으면, 그랬다.)
RTT 탭을 선택하고 우측의 「Start」를 누르면 로그 취득을 개시한다.
Start하고 나서 디버그를 개시시키면 좋을 것이다.

SEGGER의 앱을 설치했을 때에 「RTT Viewer」라고 하는 것이 있어, 링크처에서는 그것을 사용하고 있는 것 같다.
Control Panel 앱이 이제 1개 올라서 이상하게 될까 생각했지만, 특히 문제라도 되지 않을 것 같다.
브레이크 포인트를 사용하지 않으면 RTT Viewer만 시작하면 된다고 생각된다.
RTT Viewer를 시작하기 전에도 SEGGER가 버퍼링하고있는 것 같고, nRF51822 기동시의 로그를 나중에 표시할 수 있었다.
덧붙여 로그의 클리어는 탭 위에서 오른쪽 클릭해 「Clear Terminal」을 선택하는 것 같다.
Reference
이 문제에 관하여(GDB에서 RTT), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/hiro99ma/items/c51f4acd00b13b772210
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
C_SOURCE_FILES += \
$(SDK_PATH)/components/drivers_ext/segger_rtt/RTT_Syscalls_GCC.c \
$(SDK_PATH)/components/drivers_ext/segger_rtt/SEGGER_RTT.c \
$(SDK_PATH)/components/drivers_ext/segger_rtt/SEGGER_RTT_printf.c
INC_PATHS += -I$(SDK_PATH)/components/drivers_ext/segger_rtt
헤더 파일.
#include "SEGGER_RTT.h"
로그.
첫 번째 "0"은 Channel과 같습니다.
nRF51822에서 시도한 결과 1로 설정하면 HardFault가 발생했습니다.
SEGGER_RTT_printf(0, "START\r\n");
SEGGER_RTT_printf(0, "err_code = %u\r\n", err_code);
실행
우리는 eclipse이므로, 우선은 보통으로 SEGGER에서의 디버그를 개시시킨다.
그렇다면 SEGGER J-Link Control panel이라는 앱이 일어나지 않을까 생각한다.
(Windows에서 하고 있으면, 그랬다.)
RTT 탭을 선택하고 우측의 「Start」를 누르면 로그 취득을 개시한다.
Start하고 나서 디버그를 개시시키면 좋을 것이다.

SEGGER의 앱을 설치했을 때에 「RTT Viewer」라고 하는 것이 있어, 링크처에서는 그것을 사용하고 있는 것 같다.
Control Panel 앱이 이제 1개 올라서 이상하게 될까 생각했지만, 특히 문제라도 되지 않을 것 같다.
브레이크 포인트를 사용하지 않으면 RTT Viewer만 시작하면 된다고 생각된다.
RTT Viewer를 시작하기 전에도 SEGGER가 버퍼링하고있는 것 같고, nRF51822 기동시의 로그를 나중에 표시할 수 있었다.
덧붙여 로그의 클리어는 탭 위에서 오른쪽 클릭해 「Clear Terminal」을 선택하는 것 같다.
Reference
이 문제에 관하여(GDB에서 RTT), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/hiro99ma/items/c51f4acd00b13b772210
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(GDB에서 RTT), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hiro99ma/items/c51f4acd00b13b772210텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)