nRF5 SDK (10) - nrfjprog 명령어 활용 예시

Updated:

10. nrfjprog 명령어 활용 예시 🍯

이번 포스트에서는 nRF Command Line Tool 의 주요 명령어 활용 방법을 간단하게 정리해보려고 한다. 물론, 이전 포스트 에서 설명했듯이, 본 포스트에서 소개하는 nrfjprog 명령어에 대한 설명은 nordic 관련 홈페이지 혹은 매뉴얼 문서에 잘 정리되어있다.

10.1 메모리 초기화

  • 명령어 예시: nrfjprog –erase -f nrf52

--erase 명령어는 nordic 칩을 초기화 하기 위한 명령어로, 내부 flash 메모리에 저장된 정보를 모두 지우기 위해 사용된다고 보면 된다. 위 명령어를 사용하면 칩에 저장된 소스 코드 뿐 아니라 flash 메모리 영역도 모두 초기화 된다.

NOTICE: 위 명령어에서 -f nrf52 부분은 --family nrf52 의 약자로 nRF Command Line Tool 을 이용해 제어하는 칩이 nRF52 Series 제품군임을 debugger 에 알려주는 부분이라고 보면 된다.


10.2 소스코드 업로드

  • 명령어 예시: nrfjprog -f nrf52 –program C:\path\filename.hex –verify

--program 은 소스 코드를 업로드하기 위해 사용하는 키워드이며, 프로그램이 최초로 업로드 될 때에는 (혹은 --erase 명령어로 내부 메모리가 완전히 초기화가 되었을 경우) 위 명령어 예시와 같이 입력할 경우 펌웨어 소스 코드를 업로드 수 있다 (위 예시에서 filename.hex 파일이 빌드 후에 생성된 소스 코드 파일명을 가리킨다).

단, 일반적인 경우에는 현재 nRF Command Line Tool 버전에서는 nRF_Command_Line_Tools_v1.4 문서에 기술되어있듯이, flash 메모리 영역이 비어있지 않은 경우 아래 명령어 예시 2 의 --sectorerase 같이 --program 키워드와 메모리 초기화 매개변수를 함께 사용해야 한다.

  • 명령어 예시 2: nrfjprog -f nrf52 –program C:\path\filename.hex –sectorerase –verify

메모리 초기화 매개변수로는 --sectorerase, --chiperase, --sectoranduicrerase, --qspisectorerase, --qspichiperase 정도가 있는데…📂 개인적으로 테스트 했을 때는 --sectorerase 매개변수를 이용해서 업로드를 할 경우에 flash 메모리 영역에 보관해놓은 데이터는 지워지지 않는 것을 확인했다 (경우에 따라서 아닐수도 있음.)

10.2.1 배치 파일 만들어 활용하기

이전 포스트에서 설명한 것처럼, --program 키워드를 이용하면 배치 파일 (.bat⚙️)을 생성해서 소스코드 파일을 쉽게 업로드 할 수 있다. 배치 파일은 다음의 코드와 같이 메모장 (notepad)에 nrfjprog 명령어를 입력한 뒤, 저장할때 .txt 대신 .bat 형식으로 저장하는 것만으로도 쉽게 생성할 수 있을 것이다.

nrfjprog -f nrf52 --program D:\nRF5_SDK_17.1.0_ddde560\examples\peripheral\gfx\pca10056\blank\ses\Output\Release\Exe\gfx_pca10056.hex --sectorerase --verify

nrfjprog -f nrf52 --reset

위의 코드는, 이전 포스트 에서 테스트 했던 gfx 예제의 소스 코드를 업로드하기 위한 배치 파일이다. 위와 같이 배치파일을 만든 후에, 이를 실행시켰을 때 정상적으로 프로그램이 업로드 되는 것을 확인하였다.

NOTICE: 또한, 위의 배치 파일 코드를 보면 알겠지만, --program 명령어로 소스 코드를 업로드한 이후에는 --reset 명령을 입력해줘야 업로드 한 펌웨어 프로그램이 정상 동작을 시작한다. 참고할 것 ❗

Comments