티스토리 뷰
노르딕 칩과 SDK를 이용해서 예제를 컴파일하는 것을 아래 글에서 진행해보았었는데요. 자신의 컴퓨터 환경에서 빌드될 수 있도록 몇가지를 맞춰주어야하니 살짝 까다로운 부분도 있지만 충분히 어렵지 않게 아래 글을 참조하시면 따라 하실 수 있으실 것 같습니다.
https://hero-space.tistory.com/82?category=1022576
https://hero-space.tistory.com/83?category=1022576
그럼 이제 노르딕 칩 52810에다가 집적 빌드한 software를 올리기 위해 어떤 것들이 필요한지 살펴보도록 하겠습니다.
노르딕에서는 친절하게도 칩에 올릴 수 있는 툴을 제공하고 있습니다. 바로 nrf-connect for Desktop 이라는 어플리케이션인데요 아래 경로에서 다운받을 수 있습니다.
자신의 컴퓨터 환경을 선택해서 다운받고 설치해보도록 하겠습니다. 저는 맥을 사용하므로 맥용으로 받아서 설치하겠습니다.
nrfconnectsms 3.11.0 이 가장 최신이고, 다운 받은 후 실행하면 푸르스름한 화면의 노르딕 창이 뜨게됩니다. 이후 그 안에서 개별적으로 필요한 프로그램을 추가로 인스톨 하면 되는데요. 저는 flash에 필요한 programmer를 다운받아보도록 하겠습니다.
정상적으로 설치되면 Programmer 오른쪽에 Open이라는 버튼이 활성화 됩니다. Open을 눌러서 실행해보도록 하겠습니다.
화면은 왼쪽에 필요한 파일을 넣고, 리로드하고 지울수 있으며 디바이스와 연결할 수 있고 디바이스의 메모리를 읽어 올 수 있게 되어 있습니다. 왼쪽에 제가 빌드한 Software 파일을 올리고 Write하면 될 것으로 보이고, 이전에 빌드한 파일을 불러오도록 하겠습니다.
hex 파일안에 address가 저장되어 있다보니 0x00019000 - 0x000020E4B 로 잡혀있습니다. 30KB 정도인데요, Core name은 Application 입니다. 그리고 SDK를 다운받아서 불러오도록 하겠습니다.
sdk는 s112_7.2.0 버전을 사용하고 MBR과 SoftDevice를 같이 포함하고 있습니다. SoftDevice의 경우 0x00001000 - 0x00018FEB 까지라서 17FEB 의 사이즈인데요 대략 100KB에 가깝습니다. 그리고 mbr은 3KB 정도 되니까 이것만 합쳐도 103KB에 Application 30KB 합치면 133KB가 되네요. 아직 부트로더는 올리지 않았으니, 부트로더가 대략 30~40KB 정도 잡으면 196KB에서 여유공간이 얼마 남지 않게됩니다. 52810의 Flash 사이즈가 192KB 여서 그래도 넉넉하겠거니 생각할 수 있지만 SoftDevie, MBR, Bootloader 등을 넣으면 실제로 가용한 Application 공간이 60KB 정도 되는 것인데, 그중에서도 필수적으로 사용해야할 초기화 코드들을 빼면 많은 기능을 넣기는 쉽지 않아 보입니다. 최초에 칩을 결정할때 어느정도의 기능을 넣을 것인지를 고민하고 칩을 선택해야하는데 우선 52810 자체의 칩의 메모리 용령이 기능을 여러가지 넣기에는 제약적으로 보입니다. 다행히 52810과 52832는 핀팹이 같아서 지금 바꿔도 되기에 지금부터 고민이 필요합니다. 간단한 블루투스 통신 기능을 넣을 것인지, 좀더 활용성 높은 플랫폼과 쓰레딩 구조를 넣어서 Software적으로 높을 확장성을 가져가야할 것인지를 고민해봐야 할 것 같습니다. 우선 임베디드의 꽃이라고 할 수 있는 FreeRTOS와 같은 minimal OS를 넣지 못한다면 싱글쓰레드로, ISR 중심의 코딩이 필요하기에 고민이 되는데요, 부트로더까지 넣어보고 몇가지 절차지향형으로 노르딕칩을 깊이있게 탐구한뒤 빠르게 결정하도록 하겠습니다.
현재 Jlink arm error라는 메시지도 보이고, 실제 디바이스를 연결하기 위해 어떤 연결장비와 소프트웨어가 더 필요한지도 확인이 필요한데요, 이 부분 포함하여 실제 확인과정까지는 다음 시간에 진행해보도록 하겠습니다. 다시 한번 느끼지만 노르딕쪽 SDK는 문서화나 툴이이 많이 준비해논것 같습니다. Dev Zone 도 활성화 되어 있고, 특별한 기술지원 없이도 개발하는데 있어서 아직은 큰 막힘은 없습니다. 양산으로도 적용된 제품들이 많다보니 더욱더 그런 것 같습니다. 그럼 오늘은 여기까지!
'Technology > Bluetooth' 카테고리의 다른 글
nRF칩에서 I2C 연동하기 twi (0) | 2022.05.29 |
---|---|
전력 소비를 줄이는 방법 1 - DCDC vs LDO (0) | 2022.05.28 |
nRF에서 Database 활용하기 - fstorage 편 (0) | 2022.05.16 |
NRF Sleep 후 Wakeup 과 Reset 구별하기 (0) | 2022.05.15 |
전력관리를 위한 System Off/On 슬립 기능 구현 (0) | 2022.05.14 |