개요
이전 작업한 아래 링크의 "ex_ble_app_template 기반 내프로젝트 만들기" 한 것은 타겟보드 nRF52840 DK 에만 적용되는 코드들이 있다. 나의 타겟보드에 맞게 재구성 하는 과정 정리.
https://igotit.tistory.com/2308
상세
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
결론.
여기까지가 코딩작업 본격 진행가능한 상태 달성한것. 이후 필요한 기능들 구현 작업 진행한다.
특히 뭘해도 항상 필요한 GPIO 및 시간지연 함수 핀인터럽트 등은 완전환 사용법 숙지해야함. 아래 링크들에 정보있음.
기초 코딩 지식 링크.
GPIO 제어 레지스터 직접 접근 코딩하기 : https://igotit.tistory.com/2314
SDK 시간지연함수 구현 : https://igotit.tistory.com/2323
SDK GPIOTE 구현 : https://igotit.tistory.com/2326
본 글 포함된 상위 정리글
https://igotit.tistory.com/244 의 nRF52
첫등록 : 2019년 10월 17일
최종수정 :
본 글 단축주소 : https://igotit.tistory.com/2339
'임베디드.일렉트로닉스 > nRF52' 카테고리의 다른 글
nRF52. GPIO 오픈드레인 어중띤 특성 주의. (0) | 2019.10.19 |
---|---|
nRF52. 본인 만든 범용 소스들 재활용 가능 구성 (0) | 2019.10.17 |
문제해결. nRF5 SDK. NRF_LOG_INFO not shown in SES Debug Terminal. (1) | 2019.10.07 |
nRF52840. SDK기반 코딩. step by step 2. GPIOTE (0) | 2019.10.06 |
nRF52840. SDK기반 코딩. step by step 1. 시간지연함수 (0) | 2019.10.05 |
댓글