목적
BLE 개발을 위해 nRF52 의 SDK 를 활용하여 초기 설정
Git
https://github.com/tlaehdtlr/nrf52_ble_base
- 1 commit : Make readme
- 2 commit : Copy BLE template
- 3 commit : Adjust configuration
1. Architecture
1-1. 개발 환경
1-2. 코드 관리, 재사용성
- SDK 자체를 수정하지 않고 직접 작성한 소스만 Git 푸쉬
- 동일한 SDK 버전을 유지하고, segger IDE 의 절대경로 설정
- SDK 수정이 필요한 경우, 해당 모듈 복사 및 링커 설정 활용
2. BLE template porting
nRF5_SDK_17.0.0_9d13099\examples\ble_peripheral\ble_app_template 에 원하는 모델이 없으므로 pca10056 을 포팅 시작
2-1. 파일 복사
- emProject, emSession, flash_placement
- sdk_config.h
- main.c
2-2. 프로젝트 설정 변경
.emproject
- projtect name
- path
- board
- Preprocessor Definition
- memory (현재는 softdevice 만 고려, 추후 bootloader, service 에 따라 조정 필요)

- softdevice 의 release note 참고

- 분명 ram size 가 0x1678 이라고 되어 있지만 막상 저렇게 하면 에러가 나온다
(ram start location 을 0x2260 으로 옮겨라는 에러 메시지)
- 왜 그런지 정확히 설명은 못 하겠다.(.xml을 봤는데 관련 없는거 같다 linker랑은 별개인 것 같음), ToDo 로 남기겠다
- 다만 다른 s140 예제(pca10100, pca10056)를 봐도 다들 2260으로 하고 있다...)
- 예외적으로 ble_app_uart 의 경우 2ae8을 쓰고 있다. (점점 미궁 속으로...)
- 정확한 값을 디버깅하기 위해 참고 3-1 링크의 9번을 확인해보자.
3. 참고
3-1) 메모리 설정 가이드
3-2) Memory resource requirements