지금까지는 무엇이든 최신 버전이 더 최적화가 잘 되어있을 것이라고 생각하여 GNU ARM Toolchain과 이클립스 최신 버전이 나올 때마다 업데이트해 왔습니다. 그런데 SDK12.3의 bootloader_secure를 GCC와 이클립스를 사용하여 빌드 후 플래시하니 작동하지 않았습니다. 이전 포스팅과 마찬가지로 Keil을 사용하면 제대로 작동했습니다. 이번엔 아무리 분석해 봐도 Keil과의 차이점이나 오류를 찾을 수 없었습니다. 마지막에 설마하는 심정으로 툴체인 버전을 글을 쓰는 시점의 최신 버전인 7-2017-q4-major에서 튜토리얼에서 사용된 4.9 2015q3 버전으로 바꿔봤는데 제대로 작동하더군요.
이 링크에 나와있지만 노르딕의 SDK와 소프트디바이스는 GCC 기준으로 모두 4.9 2015q3 버전으로 테스트된 것들입니다. 따라서 왠만하면 4.9 2015q3 버전으로 컴파일하는게 좋습니다.
다만 튜토리얼에서 사용된 이클립스 Neon은 C/C++ 파서(parser)가 너무 구렸는데 이번에 Oxygen으로 업그레이드되면서 파서 기능이 확실히 개선된 것 같습니다. 그래서 이클립스는 예외로 최신 버전을 사용합니다. 사실 이클립스야 사용자 인터페이스만 담당하니까 바꿔도 큰 문제가 될 이유는 없다고 생각합니다.
'BLE > 버그 리포트' 카테고리의 다른 글
nRF_SDK12.3 buttonless_dfu 예제 GCC 프로젝트 버그 (0) | 2018.02.25 |
---|