:::: MENU ::::
Posts tagged with: nordic

SES(Segger Embedded Studio)에서 NRF_LOG_INFO 문제

SES환경에서 NRF_LOG_INFO(“Blinky example started!!!”)와 같은 같은 디버그 문구가 Debug Terminal에 보이지 않는 이슈 해결 방법

sdk_config.h 파일에서 다음과 같이 기존에 1로 설정되어 있던 값을 0 으로 수정한다.

#define NRF_LOG_DEFERRED 0
#define NRF_FPRINTF_FLAG_AUTOMATIC_CR_ON_LF_ENABLED 0

#define NRF_LOG_BACKEND_RTT_ENABLED 1
#define NRF_LOG_ENABLED 1
이 설정도 되어 있어야 함.

그런데 다음 설정은 0으로 되야 함
#define NRF_LOG_BACKEND_UART_ENABLED 0

그리고 보드가 바뀌면 아래 핀 설정도 같이 해야 함.
#define NRF_LOG_BACKEND_UART_TX_PIN 6


Mac OSX에 nRF52 개발 환경 설정하기

2년전에 작업한 Mac OS X에 nRF51 개발 환경 설정하기 포스팅을 보면서 nRF52 환경을 설정하다가 달라진 점이 있어서 다시 쓰게된 포스팅.

개념은 다음과 같다. 1) gcc 와 툴체인 설치 2) OSX용 nRF5x Command Line Tools 설치 3) SDK 설치.  이 과정에서 gcc 실행파일 위치를 bash_profile에 입력하고, SDK의 gcc 컴파일 설정을 이에 맞게 하면 된다.

gcc 와 툴체인 설치

여기에서 최신 버전 다운로드 및 다음과 같이 압축을 푼다. 설치 위치는 크게 중요하지 않다. 만약 이전에 설치를 했을 경우 ~/usr/local/bin 아래 설치를 했을 수도 있음.

$ mkdir /usr/local/
$ tar -xjf gcc-arm-none-eabi-8-2019-q3-update-mac.tar.bz2 -C /usr/local/

nRF5x Command Line Tools 다운로드 및 설치

위 gcc경로와 nrfjprog, mergehex의 경로를 bash_profile 입력한다.

export PATH=/usr/local/gcc-arm/gcc-arm-none-eabi-8-2019-q3-update/bin:$PATH
export PATH=/usr/local/bin:/usr/local/sbin:/usr/local/nrfjprog:$PATH

SDK 다운로드 및 설치

components/toolchain/gcc/Makefile.posix 파일을 다음과 같이 수정한다. GNU_VERSION은 다음과 같이하면 알 수 있다.

$ arm-none-eabi-gcc –version

GNU_INSTALL_ROOT := /usr/local/gcc-arm-none-eabi-8-2019-q3-update/bin/
GNU_VERSION := 8.3.1
GNU_PREFIX := arm-none-eabi

컴파일 및 다운로드

example 폴더의 예제를 컴파일 및 다운로드 해 본다. 참고로 PCA10040 보드가 nRF52832칩을 사용한 보드이니 이 에제를 사용해야 함.

nRF52832-MDK를 사용할 경우에는 nRF SDK를 nRF52832-MDK를 설치한 위치에 nrf_sdks 아래 copy를 하고, make 파일을 수정해야 한다. 그리고 다운로드를 위해 pyocd도 설치해야 함.

$ make
$ make flash

참고 : https://wiki.makerdiary.com/nrf52832-mdk/nrf5-sdk/


Jlink를 사용한 nRF51 flashing

지난번 nRF51개발 환경 포스팅에 빠진 부분인 flashing 부분

nrfjprog – Programming Tool

nrfjprog는 nRF5x-Command-Line-Tools의 번들 프로그램으로 SWD를 이용해 펌웨어 이미지를 로딩한다.

nrfjprog:

/* Optional: erase target if not already blank */
nrfjprog --family <nRF51/52> -e 
/* Load FW image to target */
nrfjprog --family <nRF51/52> --program _build/<name>.hex
/* Reset and run */    
nrfjprog --family <nRF51/52> -r

JlinkExe:

/* Open Jlink Commander from terminal in _build directory */ 
JLinkExe -device <nRF51/nRF52>
> erase // Optional: erase target if not already blank
> loadfile <name>.hex // loads FW
> r // Reset and halt
> g // Run
> q // Exit

JlinkExe -device nrf51822_xxaa -if swd -speed 4000


Mac OS X에 nRF51 개발 환경 설정하기

1. gcc 설치
여기에서 다운로드 한다.

$ mkdir /usr/local/gcc-arm
$ tar -xjf gcc-arm-none-eabi-5_4-2016q3-20160926-mac.tar.bz2 -C /usr/local/gcc-arm

2. nRF5x-Command-Line-Tools-OSX
여기에서 다운로드 한다.
/usr/local/ 에 nrfjprog와 mergehex를 copy한다.

3. .bash_profile 수정

export PATH=/usr/local/bin:/usr/local/sbin:/usr/local/nrfjprog:$PATH

4. Segger Software and documentation pack for Mac OS X 설치
여기에 패키지 파일이 있다.

5. SDK설치 및 Makefile.posix 파일 수정
여기 또는 여기에서 SDK를 다운로드 해서 원하는 곳에서 압축을 푼다.
components/toolchain/gcc/Makefile.posix 이 파일을 gcc 버전에 맞게 수정한다.

GNU_INSTALL_ROOT := /usr/local/gcc-arm/gcc-arm-none-eabi-5_4-2016q3
GNU_VERSION := 5.4.1
GNU_PREFIX := arm-none-eabi

6. 컴파일 및 확인
example 폴더 아래에서 make해서 hex 파일이 생성되는지 확인한다.

$ make

7. 보드와 연결해서 다운로드가 되는지 확인한다.

$ make flash

Nordic에서 출시한 보드

PCA10028

PCA10031

참고
https://devzone.nordicsemi.com/blogs/22/getting-started-with-nrf51-development-on-mac-os-x/
https://aaroneiche.com/2016/06/01/programming-an-nrf52-on-a-mac/
http://www.nordicsemi.com/eng/Products/Bluetooth-low-energy/nRF51822
Getting started with the nRF5 development kit
https://devzone.nordicsemi.com/tutorials/