IoT에 적합한 RTOS 및 마이크로 컨트롤러 플랫폼을 선택하는 방법

작성자: Jacob Beningo

Digi-Key 북미 편집자 제공

사물 인터넷(IoT) 장치를 개발하는 것은 많은 개발자 또는 기업에서 생각하는 것보다 더 까다로울 수 있습니다. 내장형 시스템을 클라우드에 연결할 경우 시스템의 타이밍 복잡성이 크게 증가합니다. 즉, 개발자가 소프트웨어에서 언제 어떤 코드를 실행할지 결정하는 방법을 효율적으로 관리할 수 있어야 합니다. 맞춤형 스케줄러를 작성하거나 베어 금속 수준에서 타이밍을 처리하는 것을 방지할 수 있는 가장 좋은 방법은 실시간 운영 체제(RTOS)를 사용하여 타이밍 복잡성을 관리하는 것입니다.

많은 개발자가 운영 체제(OS)가 없는 베어 금속 환경을 사용 중이고 주어진 응용 분야에 적합한 RTOS를 선택하는 것이 쉽지 않다는 점이 현재 RTOS를 사용하는 데 문제가 되고 있습니다. RTOS 시장을 대상으로 실시한 간략한 온라인 설문 조사에 따르면 오픈 소스부터 인증된 상업용 RTOS까지 개발자가 사용 가능한 다양한 RTOS가 100개 이상 출시되어 있다고 합니다. 그렇다면 RTOS를 선택하고 시작하려면 어떻게 해야 하겠습니까?

이 기사에서는 응용 분야에 가장 적합한 RTOS를 평가하는 방법을 알아본 다음 사용 가능한 STMicroelectronicsRenesas의 개발 플랫폼을 살펴봅니다.

RTOS를 선택할 때 고려할 요소

실시간 운영 체제는 개발자가 응용 코드를 빌드할 수 있는 기반을 구축합니다. 견고하고 검증된 기반을 토대로 응용 제품을 빌드하기 위해서는 올바른 RTOS를 선택하는 것이 중요합니다. 하지만 단 하나의 파라미터 즉, 비용에만 기반하여 RTOS를 선택하는 경우도 있습니다.

비용은 고려해야 할 중요한 요소이지만 유일한 요소가 되어서는 안 됩니다. 개발 팀이 선택한 RTOS를 이식 또는 구현하는 데 어려움이 있거나 지원이 부족할 경우 프로젝트에서 낭비되는 시간은 차치하고 상용 RTOS의 10배가 넘는 비용을 쉽게 지출할 수 있습니다. 일반적으로 개발 팀에서 응용 분야에 적합한 RTOS를 선택할 때 고려해야 할 8가지 범주가 있습니다. 여기에는 다음이 포함됩니다.

  • 법적 의무 및 노출
  • 성능
  • 특징
  • 비용
  • 에코시스템
  • 미들웨어
  • RTOS 벤더
  • 엔지니어링 환경 설정

각 범주는 각 RTOS에 대해 평가할 여러 가지 기준을 포함할 수 있습니다. 예를 들어, 법적 의무 범주에서 팀은 다음을 고려할 수 있습니다.

  • RTOS 위반 책임
  • 배상
  • 보증
  • 법적인 관점에서 RTOS를 검토해야 할 필요성

성능 범주에서 개발자는 다음을 고려해야 합니다.

  • 실행 가능한 메모리 실장 면적
  • RAM 실장 면적
  • 최고 수준의 결정성
  • 실시간 효율

개발 팀과 경영진은 각각의 기본 범주를 검토하여 RTOS를 평가할 기준을 결정할 수 있습니다. 기준을 설정한 후 케프너 트레고(KT) 매트릭스를 사용하여 다양한 RTOS를 평가할 수 있습니다. 이는 위험의 평가와 우선순위 지정을 중심으로 정보를 수집, 우선순위 지정 및 평가하는 데 도움이 되는 의사결정을 내리기 위한 합리적인 모델입니다. 이 모델에서는 의사결정 과정에서 개인적 편견을 배제하고 최적의 선택으로 결과에 미치는 영향을 최소화할 수 있도록 도와줍니다. KT 매트릭스를 사용하여 RTOS를 선택하는 방법을 알아보겠습니다.

KT 매트릭스를 사용하여 RTOS 선택

그림 1 및 그림 2와 같이 RTOS 선택 KT 매트릭스를 설정할 수 있습니다. 이 설정은 여기서 선택 기준을 선택하여 단일 열에 나열하는 각 선택 범주를 위한 것입니다. 각 기준의 중요성을 1부터 5까지 순위로 평가하여 기준의 가중치를 식별할 수 있습니다. 여기서 5가 중요성이 가장 높고(예: 비용) 1이 가장 낮습니다(예: 법적 의무). 그런 다음 각 팀원이 고려 중인 각 RTOS에 대한 각 기준의 중요성을 평가하기 위한 열을 생성할 수 있습니다. 그런 다음 각 기준에 가중치를 적용하여 합산할 수 있습니다. 그러면 수치로 환산된 편향되지 않은 결과가 생성됩니다. 값이 가장 높은 RTOS가 기준에 가장 적합한 RTOS입니다.

그림 1: RTOS 선택 KT 매트릭스의 상부이며 책임 노출, RTOS 성능, 기능 및 비용 평가를 포함합니다. (이미지 출처: Beningo Embedded Group)

그림 2: RTOS 선택 KT 매트릭스의 하부이며 에코시스템, 미들웨어, 벤더 및 비즈니스 평가를 포함합니다. (이미지 출처: Beningo Embedded Group)

그림 1 및 그림 2에 표시된 예는 평가 중인 기준의 수적 측면에서 매우 포괄적입니다. 이는 대부분의 개발 팀에서 평가하고자 하는 범위를 초과할 수 있습니다. 하지만, 가중치를 0으로 설정하거나 스프레드시트에서 행을 숨겨서 기준의 번호를 쉽게 제거할 수 있습니다.

RTOS 개발에 착수할 플랫폼

개발자가 RTOS를 평가할 때 RTOS가 성능 및 기능 요구사항을 충족하는지 여부를 결정하는 데 어려움이 있습니다. 대부분의 경우 개발자가 세부적으로 평가하고 RTOS를 직접 사용해 보지 않고는 알 수 없습니다. RTOS를 사용하는 기존 개발 플랫폼을 활용하면 RTOS를 매우 쉽고 경제적으로 평가할 수 있습니다. 주요 오픈 소스 FreeRTOS 및 Express Logic의 ThreadX 운영 체제를 지원하는 몇 가지 플랫폼에 대해 살펴보겠습니다.

먼저 STMicroelectronics의 STM32Cube 플랫폼을 살펴보겠습니다. STM32Cube 플랫폼은 STMicroelectronics의 STM32CubeMx 및 STM32CubeIDE 개발 환경의 일부로 FreeRTOS를 지원합니다. 이러한 도구를 사용하면 개발자가 FreeRTOS 상자를 선택한 다음 FreeRTOS 구성 도구로 모든 구성 값을 설정하여 FreeRTOS를 활성화할 수 있습니다. 그러면 개발자가 FreeRTOS를 매우 빠르게 실행하여 기능 및 성능 특징을 평가할 수 있습니다.

STMicroelectronics 도구 체인 내에는 선택할 수 있는 많은 개발 기판이 있습니다. 수년 동안 널리 사용되고 있는 신뢰할 수 있는 개발 개판으로는 STM32F429 Discovery 기판(STM32F429I-DISC1)이 있습니다(그림 3).

STM32F429는 최대 168MHz의 속도로 실행되는 Arm® Cortex®-M4 프로세서입니다. 이 마이크로 컨트롤러는 2MB 플래시와 256KB SRAM을 지원하여 고급 응용 제품을 개발하는 데 충분한 코드와 메모리를 제공합니다. 또한 이 개발 기판에는 LCD, 여러 LED 및 확장 가능한 I/O를 포함합니다.

그림 3: STM32F429I Discovery 기판은 Arm Cortex-M4 프로세서를 사용하여 개발자가 RTOS를 평가하는 데 충분한 처리 성능을 제공하는 저비용 개발 기판입니다. (이미지 출처: STMicroelectronics)

머신 러닝을 수행하는 데 필요한 RTOS 기반 IoT 에지 장치를 사용하는 개발자의 경우 STM32F7 Discovery 기판(STM32F746G-DISCO)을 사용하는 것이 좋습니다(그림 4). STM32F7 Discovery 기판은 Arm Cortex-M7 프로세서를 기반으로 하며, 캐시를 포함하고 최대 216MHz 클록 속도로 실행되며 1MB 플래시와 340KB SRAM을 포함합니다. 또한 이 개발 기판에는 4.3인치 480 x 272픽셀 디스플레이, 이더넷, SD 슬롯, USB, 마이크, 스피커 연결부 등이 포함되어 있습니다.

그림 4: STM32F746G Discovery 기판은 Arm Cortex-M7 프로세서를 사용하여 개발자가 RTOS를 평가하고 IoT 에지 장치에 필요한 머신 러닝 유추 기능을 제공하는 저비용 개발 기판입니다. (이미지 출처: STMicroelectronics)

마지막으로 고려할 개발 기판으로는 STM32L0 Nucleo 기판(NUCLEO-L073RZ)이 있습니다(그림 5). STM32L0 Nucleo 기판은 Arm Cortex-M0+를 기반으로 하며, 에너지 소비를 최소화하도록 설계되어 저전력 배터리 작동 IoT 에지 장치에 적합합니다. STM32L0 마이크로 컨트롤러는 최대 24MHz 클록 속도로 실행되며 192KB 플래시와 20KB SRAM을 포함합니다. 이는 RTOS를 실행하려는 사용자가 원하는 최소 특성에 근사합니다. 이 개발 기판은 사용자 스위치 하나와 LED 하나를 포함하는 베어본 기판입니다.

그림 5: NUCLEO-L073RZ STM32L0 개발 기판은 저전력 장치에 우수한 성능을 제공하도록 설계된 Arm Cortex-M0+ 프로세서를 기반으로 합니다. (이미지 출처: STMicroelectronics)

이제 Renesas Synergy™ 플랫폼을 살펴보겠습니다. 이 플랫폼은 내장형 산업에 고유하며 설립된 제공업체의 포괄적인 타사 소프트웨어 및 개발 도구와 함께 제공됩니다.

예를 들어, STMicroelectronics 개발 기판을 사용 중이고 IAR Systems Embedded Workbench 컴파일러 및 개발 환경에서 Express Logic의 ThreadX RTOS를 사용하려는 개발자는 컴파일러용 IAR와 RTOS용 Express Logic이 필요하고 라이선스를 구매해야 합니다. 하지만 개발자가 Renesas Synergy Platform의 일부로 단일 마이크로 컨트롤러를 구입한 경우 이러한 도구와 사용할 RTOS가 다른 미들웨어와 함께 자동으로 제공됩니다.

하이엔드 프로세서에서 ThreadX를 테스트하려는 개발자는 Renesas Synergy SK-S7G2 개발 기판(YSSKS7G2E30)을 선택하는 것이 좋습니다(그림 6). SK-S7G2는 240MHz로 실행되는 Arm Cortex-M4 프로세서를 기반으로 하며, 3MB 플래시와 640KB RAM을 포함합니다. 이 개발 기판은 LCD, 풍부한 LED, I/O 확장, CAN, PMOD 확장 등과 함께 장착되며 직렬 포트 및 추가 I/O에 쉽게 접근할 수 있습니다.

그림 6: Renesas Synergy SK-S7G2 개발 기판은 Express Logic ThreadX RTOS를 비롯한 상용 개발 도구와 함께 제공됩니다. (이미지 출처: Renesas)

ThreadX를 테스트하는 데 사용할 수 있는 대체 개발 기판으로는 Renesas Synergy TB-S5D5(YSTBS5D5E10)가 있습니다(그림 7). TB-S5D5 기판은 1MB 플래시와 384KB SRAM을 갖추고 120MHz로 실행되는 Arm Cortex-M4 프로세서를 포함하는 저비용 개발 기판입니다. 이 개발 기판은 비용 최소화를 위해 최소한의 기능만 제공하고, 사용자 버튼, 정전 용량 방식 터치 및 LED를 포함합니다.

그림 7: Renesas Synergy TB-S5D5 개발 기판은 개발자가 ThreadX를 테스트하는 데 필요한 1MB 코드 플래시와 384KB SRAM을 제공합니다. (이미지 출처: Renesas)

개발자 특히, IoT 응용 분야에 관심이 있는 개발자에게 유용한 다른 옵션으로는 Renesas Synergy AE-Cloud1 IoT 키트, YSAECLOUD1(그림 8 ) 및 Renesas Synergy AE-Cloud2 Cellular IoT 키트, YSAECLOUD2(그림 9)가 있습니다.

Synergy Cloud1 IoT 키트를 사용하면 개발자가 Wi-Fi를 통해 클라우드에 연결할 수 있고, Cloud2 Cellular 키트를 사용하면 셀룰러 네트워크를 통해 연결할 수도 있습니다. 두 개발 기판은 모두 S5D9 프로세서를 기반으로 하며 클라우드에서 모니터링 및 제어 가능한 기판 실장형 센서와 LED를 포함합니다. 또한 키트는 ThreadX를 비롯한 소프트웨어가 미리 설치된 상태로 제공되며 개발자가 RTOS를 통해 전체 연결 솔루션을 테스트할 수 있습니다. 이 기능은 앞서 언급한 KT 매트릭스의 미들웨어 섹션을 평가하는 데 도움이 될 수 있습니다.

그림 8: Renesas Synergy AE-Cloud1 IoT 키트는 Wi-Fi를 통해 클라우드에 연결하는 IoT 장치를 위해 특별히 설계된 개발 기판입니다. 이 기판을 사용하면 AWS(Amazon Web Services), Microsoft Azure 등과 같은 클라우드 제공업체에서 LED를 제어하고 센서 값을 모니터링할 수 있습니다. (이미지 출처: Renesas)

그림 9: Renesas Synergy AE-Cloud2 Cellular IoT 키트는 Wi-Fi 또는 셀룰러 네트워크를 통해 클라우드에 연결하는 IoT 장치를 위해 특별히 설계된 개발 기판입니다. 이 기판을 사용하면 AWS, Azure 등과 같은 클라우드 제공업체에서 LED를 제어하고 센서 값을 모니터링할 수 있습니다. (이미지 출처: Renesas)

플랫폼에 대한 중요 참고 사항: 플랫폼에서 RTOS를 평가할 때 같은 유형 간에 비교해야 합니다. 예를 들어, 168MHz로 실행 중인 STM32F429 Discovery 기판에서 FreeRTOS를 평가할 경우 동일한 개발 기판이나 동일한 클록 속도로 실행 중인 기판을 사용하여 다른 RTOS를 평가해야 합니다.

RTOS 사용을 위한 유용한 정보

모든 RTOS에는 자체적으로 “유용한 정보”가 있지만 RTOS에 일반적으로 적용될 수 있는 몇 가지 중요한 규칙이 있습니다.

  • 작업 및 RTOS 개체를 정적으로 할당합니다. 작업 및 개체를 동적으로 할당하려면 비결정적인 메모리 할당(malloc())을 사용해야 합니다. 이 경우 힙 조각화 문제로 인해 성능이 저하되거나 최악의 경우 시스템 충돌이 발생할 수 있습니다.
  • 응용 분야의 요구사항에 따라 기본 스택 크기를 변경합니다. 대부분의 RTOS는 대부분의 작업에 과도한 크기의 기본 스택 값을 제공하여 RAM이 낭비됩니다. 따라서 기본 스택 크기를 수동으로 구성하되 기능 및 요구사항에 따라 각 작업의 스택 크기를 조정해야 합니다.
  • 작업에서 호출되는 기능이 재진입되어야 합니다. 기능이 여러 작업에서 호출되는 경우 우선순위가 더 높은 작업에 의해 중단되더라도 다른 작업의 데이터가 손상될 위험이 없습니다.
  • 사용 가능한 경우 메모리 블록 풀을 사용합니다. 메모리 블록 풀은 결정론적 동작을 제공하고 실시간에 메모리를 동적으로 할당하는 데 사용할 수 있는 메모리 풀입니다. malloc()를 사용하는 것보다 더 유용한 옵션이지만 대부분의 오픈 소스 운영 체제에는 이 메모리 관리 기능이 포함되어 있지 않습니다.
  • 응용 분야에 사용되는 작업 수를 최소화합니다. RTOS를 사용하여 많은 작업을 생성하고 싶겠지만 필요하지 않은 작업을 생성하려면 작업 제어 블록과 연결된 별도의 스택 공간이 필요하므로 사용 가능한 메모리가 크게 감소할 수 있습니다.

결론

IoT를 사용할 경우 내장형 시스템의 소프트웨어 복잡성이 증가하므로 개발자가 이러한 복잡성을 해결하고 추상화할 수 있도록 RTOS를 사용해야 합니다. 하지만 아무 RTOS나 선택해서는 안 됩니다. 모든 RTOS의 용도가 다 동일하지는 않으므로 RTOS의 개발자의 목적에 부합하지 않을 경우 많은 시간과 노력이 낭비될 수 있습니다.

대신에 개발자는 사전 예방적인 접근 방식으로 RTOS를 선택하고 RTOS의 모든 측면을 신중하게 평가하는 동시에 RTOS 벤더, 문제가 발생한 경우에 이용 가능한 지원 등 주변 고려 사항도 신중하게 확인해야 합니다. KT 매트릭스를 사용하여 고려 중인 RTOS를 신중하게 평가한 다음 선택한 RTOS를 완벽하게 지원하는 마이크로 컨트롤러 플랫폼에서 RTOS를 실행하여 응용 분야에 적합한지 확인하는 것이 좋습니다.

면책 조항: 이 웹 사이트에서 여러 작성자 및/또는 포럼 참가자가 명시한 의견, 생각 및 견해는 Digi-Key Electronics의 의견, 생각 및 견해 또는 Digi-Key Electronics의 공식 정책과 관련이 없습니다.

작성자 정보

Jacob Beningo

Jacob Beningo는 임베디드 소프트웨어 컨설턴트로서 현재 십여 개국 이상의 국가에 있는 고객들과 협력하여 제품 품질, 비용, 출시 기간을 향상시켜 고객의 비즈니스를 극적으로 변화시키고 있습니다. 그는 인기 있는 강연자이자 기술 교육자이며 임베디드 소프트웨어 개발 기술에 대해 200개 이상의 기사를 발표했습니다. 그는 미시간 대학교 공학 석사 학위를 비롯하여 세 개의 학위를 소지하고 있습니다. 월간 Embedded Bytes 뉴스레터를 수신하려면 jacob@beningo.com 및 Jacob Beningo의 웹 사이트인 www.beningo.com으로 언제든지 문의해 주세요.

게시자 정보

Digi-Key 북미 편집자