본문으로 바로가기
728x90
반응형

 EFR32 보드의 예제를 실행할 때 일반 IO를 다루는 예제나 기본 기능 예제는 동작을 하는데 Bluetooth를 사용하는 예제를 사용할 때 실행이 안되는 경우가 있다. 나온지 얼마 안되는 칩이라서 그런지 정보도 많지 않고 쓰는 사람도 많이 보이지는 않았다. 뭐 다른 칩도 마찬가지긴 한데 이거 사용하는 사람이 나처럼 포스팅이나 유튜브를 하는 경우는 흔치 않으니 많이 안써서 그렇다고 보기도 어렵긴 한데 여튼 정보 찾기가 쉽지 않다. 물론 거의 모든 정보는 홈페이지에 가면 다 있긴 한데 이게 찾아서 보고 필요한 내용을 선별하는게 여간 힘들지않다. 당연한 말이지만 학습을 해야 하니 좀 쉬운 길을 찾기 마련이다.

 여튼 서론이 길었고 썬더보드를 이용하여 성능을 확인하고 PCB 설계를 해서 보드를 만들었다. 다운로드를 하기 위해 썬더보드에서 Mini 포트를 이용해서 연결해서 다운로드를 해보았다. 일단 기본 예제로 하드웨어가 정상인지 확인하기 위해 적용했는데 다운로드가 되었다. 그래서 블루투스가 들어간 코드를 사용했는데 실행이 안되는 것이다.

 여담으로 대부분 처음 어떤 보드를 개발할 때 가장 문제가 하드웨어도 검증해야 하고 소프트웨어도 함께 검증해야 하고 게다가 이번 같이 새로운 칩을 사용할 경우는 사용법에 대해서도 검증이 필요해 여간 까다로운게 아니다. 쉬운 예제하나 실행시키는게 거의 절반이라고 해도 과언이 아니다.

 여튼 무슨 문제인지 모르겠어서 몇날 몇일을 해매었다. 결국은 찾았는데 답은 가장 가까운 곳에 있었다. 영어 울렁증이 있는 나로서는 잘 읽어보지 않고 대략적인 경험치와 감으로 문서를 봐왔기 때문에 벌어진 일이었다.

 결론적으로는 예제에 부트로더가 있어서 문제였던 것이었다. 이게 친절히도 적혀있었는데 보면서도 눈이 멀었었다. 결국 예제에서 부트로더를 제거하면 예제가 실행이된다. 아니면 데모를 실행해서 부트로더가 들어가면 되긴 하는데 이건 평가보드에서나 가능한 이야기이다. 여튼 예제를 만들면 친절히도 처음에 Readme.md 파일을 보여주는데 여기에 써있다...

  고로 부트로더를 지우면 실행을 할 수 있다는 말이다. 이유는 부트로더 코드가 없는 상태에서 부트로더 기능이 살려져 있기 때문에 이부분에 코드를 넣던지 아니면 없애야 한다는 말이다. 아직 부트로더를 구현 못하므로 기능을 지우기로 한다.

 .slcp 파일을 열면 Software Componets를 설정할 수 있는데 여기서 부트로더 관련된 기능을 uninstall 시킨다. 해당항목은 일단 블루투스를 통한 부트로더와 부트로더 기능을 죽이면 된다.

 1. installed를 체크해서 install 된 기능만 보이게 한다.

2. Bluetooth에 OTA DFU를 uninstall 시킨다. OTA는 over-the-air이고 DFU는 device firmware update이다. 

3. Bootloader에 Bootloader Application Interface를 uninstall 시킨다. 앞에 2번을 하지 않으면 uninstall 되지 않는다.

4. 핀맵등을 설정하고 기능 설정을 해서 오류를 잡고 다운로드 및 실행 시킨다.

728x90
반응형