본문 바로가기
Embedded/nRF52 BLE 개발 안내서

nRF52 개발환경 구축하기 - SDK를 다운로드 받아보자

by 큐찡 2020. 12. 30.
728x90
반응형

시작하기

시작하기에 앞서 진행되는 모든 개발 과정은 Windows 10 64비트에서 진행됨을 알립니다.

노르딕에서는 프로그래머들의 수월한 개발을 위하여 SDK와 예제에 대한 설명을 영어로 제공해주고 있다.

하지만 영어를 못하는 나에게 노르딕에서 제공하는 예제는 막막한 두려움이 먼저 앞서게 한다.

두려움을 잠깐 덮고 일단 SDK를 다운로드해보도록 하자.

제공되는 SDK의 버전이 다양하다. 하지만 현 시간 기준으로 가장 최신 버전인 17.0.2를 선택하도록 하겠다.

밑으로 내리다 보면 SoftDevice라는 것들이 보인다. 뭔지 모르겠다. 노르딕 사이트를 뒤져보니 내용은 다음과 같다.

SoftDevice는 Nordic Semiconductor에서 개발한 무선 프로토콜을 구현하는 사전 컴파일된 바이너리 소프트웨어이다.

SoftDevice는 소프트웨어로 개발자는 해당 기능에 대한 컴파일 시간 의존성을 최소화합니다.
고유한 하드웨어 및 소프트웨어를 지원하는 프레임워크는 런타임 격리 및 동작에 대한 결정성을 제공합니다.
이러한 특성은 인터페이스를 기능적이고 프로그램적인 인터페이스로 하드웨어 주변기기 추상화와 유사합니다.
SoftDevice API(응용 프로그램 인터페이스)는 응용 프로그램에서 고급 프로그래밍 언어 인터페이스(예: C 헤더 파일)로 사용할 수 있습니다.
SoftDevice 기능 및 성능은 SoftDevice 사양 문서 개정에 따라 변경될 수 있습니다.
SoftDevice 사양은 프로덕션 수준 SoftDevice에서 지원되는 기능을 설명합니다.
SoftDevice의 알파 및 베타 버전은 모든 기능을 지원하지 않을 수 있습니다.
제한 또는 누락에 대한 정보를 찾으려면 릴리스 상태에 대한 자세한 요약이 포함된 SoftDevice 릴리스 노트를 참조하십시오.
지원되는 SoftDevice의 운영 버전은 업데이트 후에도 계속 사용할 수 있으므로 이전 버전의 제품에 대해 완전한 기능을 갖춘 경우 업데이트 릴리스에 대한 인증을 받을 필요가 없습니다.
ANT 관련 SoftDevice는 Dynastream에서 사용할 수 있습니다.
이 사항은 ANT 전용 및 ANT/Bluetooth® Smart combo SoftDevices 모두에 적용됩니다.

내용과 그림으로 유추해보면 SoftDevice는 프로그래머가 직접 스택을 건드리며 개발하는 것이 아닌 노르딕에서 제공하는

nRF API, Protocol API, SV Calls를 통해 개발을 할 수 있게 도와주는 그런 중간 관리자 같은 역할로 보인다.

SoftDevice의 종류가 다양한데 내용을 확인해보면 각자 특성이 다른 듯하다.

여기서는 블루투스라고 적혀있는 것들 중 nRF52832를 지원하며 High-Performance라는 SoftDevice S132 만 선택하고 다운로드했다.

 

다운로드가 완료되고 압축을 해제하니 SDK와 SoftDevice가 보인다.

s132nrf52720 폴더에는 s132_nrf52_7.2.0_softdevice.hex 바이너리 파일이 들어있고 nRF5_SDK_17.0.2_d674dde 폴더에는 여러 개의 폴더가 있지만 여기서 관심 있는 폴더는 오직 examples에 들어있는 내용이다.

소프트웨어의 첫 개발은 "Hello World!" 였다면 하드웨어의 첫 개발은 바로 "LED"가 아닐까?

\examples\peripheral\blinky 폴더로 들어가 보도록 하자.

비슷한 이름의 폴더들이 나열되어 있다. nRF52 DK는 pca10040이라고 적혀있었다. 해당 폴더로 들어가 보자.

선택지가 3개가 나타났다. blank 폴더는 SoftDevice를 제외한 프로젝트이고 s132 폴더는 그것을 포함한 프로젝트라고 한다.

mbr 폴더는 Master Boot Record라고 하는데 애플리케이션, SoftDevice, 부트로더 펌웨어의 in-system 업데이트를 허용하는 인터페이스를 제공하는 것이라고 한다. 뭔지 잘 모르겠으니 여기서는 s132 폴더를 선택하도록 한다.

또다시 선택지들이 등장했다. 이 폴더들을 IDE에 따라 구분되어 있다.

arm5_no_packs는 KEIL µVision

armgcc는 arm gnu

iar은 IAR Embedded Workbench

ses는 SEGGER Embedded Studio

개발환경으로는 기간 및 코드 사이즈 제한이 없고 완전 무료로 제공되는 SEGGER Embedded Studio IDE를 사용해 진행하고자 한다.

 

앞으로

다음에는 SEGGER Embedded Studio IDE(이하 SES) 개발환경을 구축하여 blinky 프로젝트를 실행시키고 컴파일까지 진행하도록 하자.

728x90
반응형

댓글