본문 바로가기
임베디드.일렉트로닉스/nRF52

문제해결. nRF5 SDK. NRF_LOG_INFO not shown in SES Debug Terminal.

by i.got.it 2019. 10. 7.

 

 

문제상황 개요 

nRF5 SDK 에서 제공하는 NRF_LOG_INFO() 류들의 함수는 디버거 터미널에서 보여야 정상인데 NORDIC 사에서 배포한 예제 실행 시 이거 안 보이는 경우 허다함. 이렇게 완성도 부족한 걸 배포하고도 ... 명확하고도 일관된 해결책 제시도 안 하고 있음. 개발자가 알아서 해결해야 함.

 

 

해결책.

- 아래 사항들 조합해서 수정하여 정상 표시되면 됨. 단, 본인이 작성한 코드에 오류 없다는 전제하에..

 

1. sdk_config.h 의 NRF_LOG_DEFERRED 비활성화 한다.  

 

#define NRF_LOG_DEFERRED 0//1

- 보통은 이것만 해도 로그 표현 됨. 이걸로 안되면 아래 다른 것도 시도. 

 

2. NRF_FPRINTF_FLAG_AUTOMATIC_CR_ON_LF_ENABLED 를 비활성화 한다. 

 

2021년 3월 30일 추가.

- 디버그터미널에 보이기 위한 설정 전체  

#define NRF_LOG_ENABLED 1

#define NRF_FPRINTF_FLAG_AUTOMATIC_CR_ON_LF_ENABLED 0
#define NRF_LOG_BACKEND_RTT_ENABLED 1
#define NRF_LOG_BACKEND_UART_ENABLED 0
#define NRF_LOG_DEFERRED 0

 

 

 

기타 아래 개발자 포럼 검색해서 조치사항 확인해 본다. 

https://devzone.nordicsemi.com/

 

Nordic DevZone

 

devzone.nordicsemi.com

아래 영상에서는 nRF5 SDK 15.3.0 에서 배포된 예제 중 ble_app_uart 에서 NRF_LOG_INFO 출력 안 보이는 문제를 sdk_config.h 의 NRF_FPRINTF_FLAG_AUTOMATIC_CR_ON_LF_ENABLED 를 비활성 하여 해결한 사례 

- 어떤 경우에는 NRF_LOG_DEFERRED 를 disable 해야 정상 표현되는 경우도 있었기 때문에 확인해 봤는데 이번 상황에서는 NRF_LOG_DEFERRED 설정 무관하게 NRF_FPRINTF_FLAG_AUTOMATIC_CR_ON_LF_ENABLED 비활성화 해야 정상 표현됨. 

 

 

한편, 본인의 sdk_config.h 에 없다면 NRF_FPRINTF_FLAG_AUTOMATIC_CR_ON_LF_ENABLED 구문(아래 코드블럭)을 추가하여 0으로 한다.  추가할 위치 는 상기 동영상 0분 55초 에 보이는 위치. 

 

#ifndef NRF_FPRINTF_FLAG_AUTOMATIC_CR_ON_LF_ENABLED
#define NRF_FPRINTF_FLAG_AUTOMATIC_CR_ON_LF_ENABLED 0
#endif

 

from : https://devzone.nordicsemi.com/f/nordic-q-a/53337/nrf_log_info-help

 

NRF_LOG_INFO() help - Nordic DevZone

 

devzone.nordicsemi.com

 

 

 

 

2023.01.26 추가. 

PC 하이퍼 터미널로 NRF_LOG_ 출력 위한 설정.  

sdk_config.h 에서 

 

#define NRF_LOG_BACKEND_UART_ENABLED 1// 0

 

즉, 이 값을 1로 설정하면 NRF_LOG_ 출력은 UART 로도 출력되면서 아래 오른쪽 화면처럼 PC 의 하이퍼 터미널에도 출력된다. 단, 대상보드가 PC 로 USB CDC 통신 경로 지원되는 PCA10056 같은 보드여야 한다.  

 

 

 

 

 

제조사 배포 라이브러리에서의 오류 관련 의견.

nRF5 SDK에서의 로그 기능 같은 것에서 오류 좀 있어도 허용가능하다만 주요 기능에서 SDK 완성도 부족하다면 nRF5 도입하는 정식 개발자에게 요구되는 능력은 그들이 만들어낸 SDK 로레벨에서 오류 발견가능하고 해결가능한 능력 필요하다.  이런 오류는 nordic 사만의 문제는 아니다 타 칩 제조사에서도 심각한 버그 있는 것이 배포되고 있음을 자주 경험하게 된다. 웃기게도 취미생활로 대충 만들어 볼 때는 아무 문제를 눈치 채지 못하지만 품질요소가 매우 중요한 것을 구현하다 보면 칩제조사에서 배포된 라이브러리에서 오류 발견하게 되는 경우 꼭 있다. 그 정도가 심각한 것은 SDK 를 수정해야만 정상 작동하는 결과를 만들어낼 수 있다. 이런 문제 해결할 때 큰 도움 받는 곳은 해당칩의 사용자 포럼에서 활동하는 초특급 내공을 가진 개발자들의 해결책 제시이다. 예로 STM32 포럼에서는 천재인가? 싶은 사람들이 해결책을 제시해 주는 글의 도움을 많이 받았다. 한편, nRF52 포럼에서는... STM32 포럼 수준의 고급 개발자들의 답변 제시가 극히 빈약함. 아마도 혼자만 알고 싶든지 혹은 내공 높은 사람이 없든지...

 

 

 

연관 

NRF_LOG_INFO 고속 출력 시 표현 누락됨. 해결책. 

 

nRF5 SDK . NRF_LOG_INFO 고속 출력시 표현 누락 해결책

nRF5 SDK . NRF_LOG_INFO - 디버깅 중에 코드 정상작동 확인에 매우 유용하나, 고속 출력시 표현하지 못하는 오류 있음. 위 상태의 코드를 디버깅 모드에 콘솔에 출력된것 보면 아래. 총 size 31 이고 for

igotit.tistory.com

 

 

 

상위 정리

https://igotit.tistory.com/244 의 nRF52

 

STM32. nRF52. ESP32. EFM8. EFM32. PSoC 활용 정리.

STM32. nRF52. ESP32. EFM8. EFM32. PSoC 총정리 제조사 칩 주요특징 실리콘랩 8bit MCU EFM8 시리즈 32bit EFM32 시리즈 EFM8 싸다. STM STM32 . 최고 항상 만족. Cypress pSoC pSoC6 은 기대해볼만. NORDIC nRF5..

igotit.tistory.com

 


첫 등록 : 2019.10.07

최종 수정 : 2023.08.24

단축 주소 : https://igotit.tistory.com/2328


 

댓글



 

비트코인




암호화폐       외환/나스닥/골드         암호화폐/외환/나스닥/골드
     
현물 |선물 인버스 |선물 USDT       전략매니저(카피트레이딩)         프랍 트레이더 온라인 지원가능. MT4,MT5