nRF52832는 노르웨이에있는 Nordic Semiconductor의 SoC입니다. 기본적으로 Bluetooth 5.2를 지원 및 NFC, Zigbee 등 PAN 프로토콜을 지원합니다. SoC의 간단한 스펙을 알아봅시다.
- 64 MHz Arm Cortex-M4 with FPU
- 512 KB Flash, 128 KB RAM
- UART, SPI, TWI, PDM, HS-SPI, I2S, PWM
- 12-bit ADC
- USB 2.0
...
SoC의 코어 CPU가 ARM Cortex-M4입니다. Real Time OS에 적합한 CPU를 이용하며 기본적인 하드웨어 프로토콜(UART, SPI, Etc) 및 12-bit ADC를 지원합니다.
nRF52832에서 사용할 Library 및 Driver는 Nordic Semiconductor의 홈페이지에서 다운로드 합니다.
위 링크에 접속하시면 SDK 및 SoftDevice를 다운받을 수 있습니다. 현재 최신 버전은 17.0.2 입니다. 기본적으로 모든 SoftDevice역시 같이 다운받게 되어 있습니다. 다운을 원하시지 않으면 ✔ 표시를 클릭해 해제하면 됩니다.
맨 아래로 Downloads file을 클릭합니다.
SDK를 다운받고 압축을 해제하면 아래와 같은 디렉토리들을 보실 수 있습니다. (굵은 글자는 자주 방문할 디렉토리 입니다.) 각 디렉토리의 간단한 설명은 아래와 같습니다.
📁components: nRF보드를 구성하는 요소 및 라이브러리정의
📁 config: nRF보드의 flash적재를 위한 flash_placement.xml 및 링커스크립트
📁 documentation: nRF보드 문서
📁 examples: 각종 예제
📁 external: FreeRTOS, lwip 같은 써드파티 및 외부 모듈
📁 external_tools: CMSIS config 프로그램 (JAVA)
📁 integration: 구버전 모듈 통합을 위한 헤더파일
📁 modules: 드라이버 및 모듈 파일
📃 license.txt: 라이센스 텍스트
Nordic SDK에서 'nrf_drv'로 시작하는 가진 모듈은 구버전이며 'nrfx'로 시작하는 모듈이 신버전 입니다. 이 구버전 프로젝트와 신버전 프로젝트의 통합을 위해 integration 디렉토리가 필요합니다. 또한 Nordic에서는 'nrfx' 모듈만 github에서 다운 받을 수 있습니다.
🔗 Nordic nrfx github repository
레파지토리의 구조와 modules 디렉토리 구조가 같네요.
Segger Embedded Studio는 독일 Segger에서 만든 IDE(Integrated Development Environment)입니다. 기본적으로 상업용을 제외하면 무료로 사용가능 합니다만... 개인적인 취향은 Jetbrain의 CLion을 더 이쁘지만 CLion은 유료 라이센스를 구매해야 합니다.
Embedded Studio는 Segger사의 홈페이지에서 다운로드가 가능합니다. 또한 다운받은 이후 Nordic 패키지를 설치하겠습니다.
Embedded Studio는 ARM 과 RISC-V 있습니다. nRF52832의 CPU는 ARM 아키텍쳐이므로 ARM 버전 EmStudio를 사용하며, 자신의 운영체제 맞는 버전을 다운 받습니다.
EmStudio의 Tools > Package Manager...
를 클릭합니다.
Package Manager에서 nRF CPU Support Package
를 찾고 클릭한뒤 설치를 시작합니다.
IDE에서 SDK를 편리하게 사용하기위해 Macro를 설정 하겠습니다. 우선 Tools > ⚙️ options...
를 클릭합니다.
아래와 같이 Building > Global Macros
탭을 열어 아래와 같이 설정합니다.
매크로는 위에 보이는것 다음과 같이 설정합니다.
MACROS_KEY = MACROS_VALUE
저는 D 드라이브에 SDK라는 디렉토리를 생성한뒤 SDK를 저장했습니다.
nRF5_SDK_17 = D:/SDK/nRF5_SDK_17.0.2_d67dde
매크로를 이용하려면 아래와 같은 규칙으로 사용합니다.
$(MACROS_KEY)
위와 같이 작성한뒤 OK
를 클릭하고 저장합니다. 방금 저장한 Macro는 EmStudio 전반에 걸쳐 사용할 수 있습니다. 방금 설정한 Macro는 아래와 같이 사용할 수 있습니다.
SDK의 경로를 Macro를이용해 include 할 디렉토리등을 깔끔하게 선언 했습니다.
Project Explorer
탭 에서 Project 'PROJECT_NAMAE'
을 우클릭 혹은 Alt + Enter
를 이용해 프로젝트 고유 설정에서 Macro 변수를 사용할 수 있습니다.