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

nRF5 SDK 기반 SES 프로젝트 깔끔하게 생성하는 방법.

by 리치굿맨 2019. 1. 5.



본 글의 설명 폐기


사유 : 더 깔끔하게 제작된 프로젝트 템플릿 2 를 시작점으로 하여 프로젝트 생성하면 됨 상세보기 : https://igotit.tistory.com/2042



 

개요

   

nRF5 SDK 기반하여 자신의 프로젝트 생성시 다운로드 받은 SDK 압축푼곳의 example 내의 특정 예제 프로젝트를 자신의 프로젝트 시작점으로 하는것은 시험 과정에서나 할짓이다. 왜냐하면 노르딕사에서 배포되는 nRF5 SDK 폴더구조를 보면 배포하는 사람 입장(여러 보드 여러 IDE 환경에서 예제 코드 제시해야 하는 입장)에서 편리한 구조를 만들어뒀고 이는 실제 사용자가 자신의 프로젝트를 구현하려는 경우 효율적인 폴더구조 아님. 


본격 자신의 프로젝트 폴더를 생성할때는 프로젝트 단위의 관리되는 방식, 가독성 좋은 폴더구조를 만들어 두는것이 효율적이다.


아래 상세글에서 nRF5 SDK 기반 자신의 프로젝트 폴더 관리 규칙 정리한다.


 


 


 

상세. nRF5 SDK 기반 프로젝트 폴더 관리 규칙 - 1

 

1. 폴더 WORK_MultiNRF 만들기

WORK_MultiNRF 라는 nRF5 SDK 기반 작업하는 모든 프로젝트를 담아두는 폴더임. 

2. 노르딕사에서 다운로드 받은 nRF5 SDK zip 파일과 압축해제 된 폴더는 모두 WORK_MultiNRF 하위에 배치하며 신규 버전의 SDK 도 모두 몰아둔다. 

상기 1, 2가 적용된 폴더 모습.

위 폴더에서 다운로드 받은 nRF5 SDK 의 원본 zip 파일과 압축해제한 폴더가 보인다. 

이 폴더의 D1F123 은 nRF5 SDK 15.0.0 기반으로 작업된 실전 프로젝트 폴더이다. 

중요규칙  

1. SDK 폴더 내부는 수정하지 않고 항상 초기 상태 그대로 유지한다.  즉, 시험목적으로 이 폴더속의 예제 프로젝트 오픈하고 빌더하고 수정하는 짓 하지 않는다. 

2. 과거 버전의 SDK 가 중요 프로젝트에서 사용중이라면 신규 버전의 SDK 다운로드 받았다고 과거버전 SDK 삭제하지 않고 계속 보관한다. 


 


 




 

상세. nRF5 SDK 기반 프로젝트 폴더 관리 규칙 - 2. 깔끔한 프로젝트 폴더 만들기

 

신규 프로젝트 상황예.

nRF5 SDK 버전 : nRF5 SDK 15.2.0  다른 버전이어도 방법 동일. 
타겟보드 : nRF52840 USB Dongle  다른 타겟보드여도 방법 동일. 
프로젝트명 : D1F128 이름은 뭘로 하든 방법 동일. 
IDE :  SEGGER Embedded Studio   KEIL MDK-ARM 이어도 방법 동일.

위와 같은 상황에서 아래와 같은 절차로 신규 프로젝트용 폴더 처리 수행한다. 

1. 신규 폴더 D1F128 생성 


2. D1F128 하위에 신규 폴더 nRF5_SDK_15.2.0_9412b96 만들기 


SDK 중 실제 코딩작업에 필요한 것들만 복사해온다. nRF5 SDK 버전 15.2.0 의 경우에는 아래 선택된 폴더들만 복사해오면됨. 


설명 : SDK 폴더에 있는 example 은 SDK 폴더 전체 용량 500M바이트 중  400Mbyte 나 차지하고 있고, 우리프로젝트에서는 이 모든 example 들이 필요한것 아니므로 복사하지 않는다. 도큐먼트 역시 필요없음. 또한, IAR 이나 keil4 관련 라이센스 처리 파일들도 필요없음. (우리는 IAR 이나 keil4 사용하지 않음.)

3. 사용자 코드 저장용 폴더 만들기.


앞에서 만든 D1F128 -> nRF5_SDK_15.2.0_9412b96 하위에 아래와 같은 구조의 폴더를 신규 만들자. 

A_IDE_SES :  SES 용 프로젝트 파일과 출력파일들이 있게된다. 
A_SRC : 본인이 추가하는 사용자 코드들을 몰아두는 용도. 이들 소스는  KEIL 이든 SES 든 공통으로 사용하게 된다. 
별도로 사용자 코드 몰아두는 추가의 관리 목적이 있는 경우 더 추가해도 된다. 

4. SEGGER Embedded Studio 에서 설정들 정리.

- 헤더파일 인클루트 하는 경로 재설정. 
- 프로젝트명 과 솔루션 명을 본인 프로젝트명(본 예에서는 D1F128) 으로 변경. 


상기 1, 2, 3, 4 까지의 과정 전체 동영상. 


동영상 내용중 불필요한 부분 정정. 

- 동영상 4분 22초 부터 시작되는 프로젝트 옵션의 Include Path 설정하는 부분은 Debug, Release 에서는 하지 않아도 되고 Common 에서 설정해두면 Debug, Release 모두 적용되므로 더 간편한 방식임. 



위 과정까지만 해도 nRF5 SDK 기반의 깔끔한 SES 프로젝트 환경이 구축된다. 

프로젝트 폴더 용량 줄이기


그러나, 여전히 nRF5 SDK 폴더내에는 불필요한 것들이 많이 남아있다. 예를들면 우리가 타겟칩으로 nRF52계열(nRF52840 등)을 이용하는데 nRF5 SDK 에는 nRF51 관련 파일도 많다. 불필요한 파일들이 있으면 깃 관리등에서 쓸데없는 쓰레기 파일들까지 저장처리 해야하므로 이런 불필요한 파일들까지 모두 제거 처리하자.  앞의 과정까지 만들어진 D1F128 전체 용량이 116Mbyte 이다. 불필요한것들 모두 줄여서 용량 감소 시키자. 


1. nRF51 관련 모든 파일, 폴더 삭제 
D1F128 폴더를 파일 탐색기에서 열어서 *51*.* 로 검색하여 모두 삭제 한다. 

2. external 풀더(용량 37Mbyte ) 에서 fprinf 만 남겨두고 모두 삭제. 
- 이후 필요한 것이 있으면 nRF5 SDK 원본에서 필요한 것만 복사해오면 된다. 

3. components 풀더(용량 60Mbyte)속의 아래 것만 남기고 모두 삭제. 
 toolchain, softdevice, libraries, driver_nrf , boards 


위와 같은 과정을 거치면 최종적으로 D1F128 폴더 전체 용량은 65Mbyte 정도로 줄어든다. 압축하면 18Mbyte 정도로 매우 경량화 된다.  아래 동영상에 불필요한 것들 삭제과정 전체보이고 있다. 

 

 


 


연관정보

- 본 프로젝트 만든것을 프로젝트명 igotit_template_nRF52840_SES 로 하여 프로젝트 파일 통째로 다운로드 가능하게 하였고, 본인 프로젝트에 적용하는 방법 설명 하였다. -> 상세보기 : https://igotit.tistory.com/2023





 본 글 포함된 상위 정리글


 https://igotit.tistory.com/244 의 nRF52




첫등록 : 2018년 1월 4일

최종수정 : 


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





태그

,

댓글0


   
현물 |선물 인버스 |선물 USDT     현물 | 선물 USDT |봇제작툴/카피트레이딩     현물 |선물 인버스 |선물 USDT     선물 인버스 |선물 USDT