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

nRF52. 예제프로젝트 기반 내 프로젝트 정리하기.

by i.got.it 2019. 10. 17.

 

 

개요 

 

이전 작업한 아래 링크의 "ex_ble_app_template 기반 내프로젝트 만들기" 한 것은 타겟보드 nRF52840 DK  에만 적용되는 코드들이 있다. 나의 타겟보드에 맞게 재구성 하는 과정 정리.

 

https://igotit.tistory.com/2308

 

nRF5 SDK 기반 SES , KEIL 멀티 프로젝트 폴더 구축 및 프로젝트 템플릿3

개요 NORDIC 사에서 배포하는 nRF5 SDK 의 폴더 구성은 사용자(개발자) 입장에서는 좋은 구조 아니다. 본 글에서는 nRF5 SDK 기반으로 코드 구현 및 프로젝트 관리 용이한 프로젝트 작업 폴더 구축 방법 정리. 참..

igotit.tistory.com

 

상세

1. 개발보드 특수 코드들 제거. 

nRF5 SDK 예제의 모든 코드들은 NORDIC 사의 개발보드들인 nRF52840 DK , nRF52840 USB Dongle 등에만 사용가능한 코드들이 있다. 이들 개발보드를 사용하지 않는 경우 다 필요없는 것이므로 제거하고 나의 타켓보드에 맞게 재구성한다. 

 

제거대상들 

- Project item 의 Board definition , Board Support 

- Project Option 에서 Preprocessor Definitions 에서 BOARD_PCA10056 

- sdk_config.h 에서 Board Support 

- 위의 것들 제거한 이후 빌드했을때 보이는 잔재들 제거. 

- 아래 영상에 상기 전체 과정 보임.

 

- SES 프로젝트에서 쓸데없는것들 제거. 

 

- KEIL 프로젝트에서의 쓸데없는것들 제거.  상기 SES와 소스 공유된 프로젝트이므로 앞에서 처리된것은 추가 처리 하지 않아도 됨. 

 

 

2. 나의 타겟보드 관리용 소스파일 추가. 

- 앞에서 NORDIC 사 의 개발보드 전용 코드는 제거했고, 내가 개발중인 타겟보드 관리용 소스파일 추가한다. 

- 소스파일명 : board_mine1.c , board_mine1.h  를 경로 SRC/ 에 추가 하고 프로젝트에도 추가. 타겟보드 특수한 것은 모두 이 파일에 몰아둔다. (파일명은 본인 코딩 스타일 혹은 코딩 룰이 있다면 해당룰에 맞게 정하면됨)

- 아래 영상에 소스파일 추가 하고 기본 함수 init_board_gpio() 추가하는 예 전체 과정. ses, keil 모두. 

 

 

 

3. 함수 main 텅빈것부터 시작. 

- 예제 소스코드에서는 main 함수 내에도 기본 코드들이 작성되어있어 지저분하다. 이를 모두 주석 처리해 두고 텅빈 main 함수 정의하고 앞의 단계2에서 만든 init_board_gpio() 호출하는것만 배치해두고 이후 본인 구현대상을 스텝바이스텝으로 추가 시켜나간다. 

- 아래 영상에 전체과정. 

 

 

4. 본인이 작성할 라이브러리 소스 폴더 별도 할당.

앞의 단계까지 만든 상태에서 바로 main.c 등에서 응용 코드 작성해 나가도 되긴 하나 여기서 중요하면서도 유용한 코딩 습관 하나 익혀두자. 바로 목표하는 기능 구현하려고 코드들이 main.c 와 특정 응용에만 사용되는 코드 형식으로 구현해도 작동하는 코드가 만들어지긴 하나 형식적으로 잘 분리되고 자신이 만든 코드들을 다른 프로젝트에서도 재사용가능한 구조로 함이 당연히 좋은 방식이다. 본 내용 별도 정리함.  ->https://igotit.tistory.com/2340

 

nRF52. 본인 만든 소스들 재활용 가능 구성

개요. 본 내용은 아래 링크 의 4번 항목에서 설명된 것처럼 코드 작업중 범용적인 것들을 범용 라이브러리화 형식 상세 정리. https://igotit.tistory.com/2339 nRF52. 예제프로젝트 기반 내 프로젝트 정리하기...

igotit.tistory.com

 

 

 

 

결론. 

여기까지가 코딩작업 본격 진행가능한 상태 달성한것. 이후 필요한 기능들 구현 작업 진행한다. 

특히 뭘해도 항상 필요한 GPIO 및 시간지연 함수 핀인터럽트 등은 완전환 사용법 숙지해야함. 아래 링크들에 정보있음. 

 

 

기초 코딩 지식 링크. 

GPIO 제어 레지스터 직접 접근 코딩하기 : https://igotit.tistory.com/2314

 

nRF52840. GPIO 코딩. SDK 없이 레지스터 직접 제어

개요. - nRF52840 의 GPIO 제어 코드를 nRF5 SDK 없이 레지스터 직접 접근하여 코딩하는 예 정리. - SDK 없이 레지스터 직접 제어 코드 작성해봐야 하는 이유 . 실활용목적에서는 SDK 기반하여 작성하겠지만 초보..

igotit.tistory.com

 

SDK 시간지연함수 구현 : https://igotit.tistory.com/2323

 

nRF52840. SDK기반 코딩. step by step 1. 시간지연함수

개요 이전에 작업했던 생코딩 GPIO 제어 프로젝트에 SDK 에서 제공하는 시간지연 함수 nrf_delay_ms() 호출하기 위한 설정과정 상세히 보인다. 사전준비 1. sdk없이 만든 GPIO 제어 프로젝트. https://igotit.tist..

igotit.tistory.com

 

SDK GPIOTE 구현 : https://igotit.tistory.com/2326

 

nRF52840. SDK기반 코딩. step by step 2. GPIOTE

개요 - 이전 작업했던 SDK 이후 코딩 이후 SDK 에서 제공되는 GPIOTE 활용하기 위한 설정 정리. 사전준비. 1. nRF52 SDK 기반 코딩 step by step 1. https://igotit.tistory.com/2323 - SDK 제공 시간지연 함수들..

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월 17일 

최종수정 : 

 

본 글 단축주소 : https://igotit.tistory.com/2339

 


 

댓글



 

비트코인




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